本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定 EMR Serverless 應用程式的 VPC 存取以連線至資料
您可以設定 EMR Serverless 應用程式連線到 VPC 內的資料存放區,例如 Amazon Redshift 叢集、Amazon RDS 資料庫或具有 VPC 端點的 Amazon S3 儲存貯體。您的 EMR Serverless 應用程式對 VPC 內的資料存放區具有傳出連線。根據預設,EMR Serverless 會封鎖對應用程式的傳入存取,以改善安全性。
注意
如果您想要為應用程式使用外部 Hive 中繼存放區資料庫,則必須設定 VPC 存取。如需如何設定外部 Hive 中繼存放區的資訊,請參閱中繼存放區組態。
建立應用程式
在建立應用程式頁面上,您可以選擇自訂設定,並指定 EMR Serverless 應用程式可以使用的 VPC、子網路和安全群組。
VPC
選擇包含您的資料存放區的虛擬私有雲端 (VPC) 名稱。建立應用程式頁面會列出所選 的所有 VPCs AWS 區域。
子網路
選擇 VPC 內包含資料存放區的子網路。建立應用程式頁面會列出 VPC 中資料存放區的所有子網路。同時支援公有和私有子網路。您可以將私有或公有子網路傳遞給應用程式。選擇是否擁有公有或私有子網路有幾個需要注意的相關考量。
對於私有子網路:
相關聯的路由表不得有網際網路閘道。
對於網際網路的傳出連線,如有需要,請使用 NAT Gateway 設定傳出路由。若要設定 NAT 閘道,請參閱 NAT 閘道。
對於 Amazon S3 連線,請設定 NAT Gateway 或 VPC 端點。若要設定 S3 VPC 端點,請參閱建立閘道端點。
如果您設定 S3 VPC 端點並連接端點政策來控制存取,則必須遵循使用受管儲存體記錄 EMR Serverless 中的指示,為 EMR Serverless 提供儲存和提供應用程式日誌的許可。
若要連線至 VPC AWS 服務 以外的其他 ,例如 Amazon DynamoDB,請設定 VPC 端點或 NAT 閘道。若要設定 的 VPC 端點 AWS 服務,請參閱使用 VPC 端點。
注意
當您在私有子網路中設定 Amazon EMR Serverless 應用程式時,我們建議您也為 Amazon S3 設定 VPC 端點。如果您的 EMR Serverless 應用程式位於沒有 Amazon S3 VPC 端點的私有子網路中,則可能會產生與 S3 流量相關聯的額外 NAT 閘道費用。這是因為未設定 VPC 端點時,EMR 應用程式和 Amazon S3 之間的流量不會保留在您的 VPC 內。
對於公有子網路:
這些有網際網路閘道的路由。
您必須確保適當的安全群組組態,以控制傳出流量。
工作者可以透過傳出流量連接到 VPC 內的資料存放區。根據預設,EMR Serverless 會封鎖對工作者的傳入存取。這是為了提升安全性。
當您使用 時 AWS Config,EMR Serverless 會為每個工作者建立彈性網路界面項目記錄。若要避免與此資源相關的成本,請考慮關閉AWS::EC2::NetworkInterface
AWS Config。
注意
建議您跨多個可用區域選取多個子網路。這是因為您選擇的子網路決定可供 EMR Serverless 應用程式啟動的可用區域。每個工作者都會在啟動的子網路上使用 IP 地址。請確定指定的子網路有足夠的 IP 地址,可供您計劃啟動的工作者數量使用。如需子網路規劃的詳細資訊,請參閱 子網路規劃的最佳實務。
子網路的考量和限制
具有公有子網路的 EMR Serverless 不支援 AWS Lake Formation。
公有子網路不支援傳入流量。
安全群組
選擇一或多個可與資料存放區通訊的安全群組。建立應用程式頁面會列出 VPC 中的所有安全群組。EMR Serverless 會將這些安全群組與連接到 VPC 子網路的彈性網路介面建立關聯。
注意
建議您為 EMR Serverless 應用程式建立個別的安全群組。如果安全群組的連接埠在 0.0.0.0/0 或 ::/0 範圍開放至公有網際網路,EMR Serverless 將不會允許您建立/更新/啟動應用程式。這可提供增強的安全性、隔離功能,並讓管理網路規則更有效率。例如,這會封鎖對具有公有 IP 地址的工作者的意外流量。例如,若要與 Amazon Redshift 叢集通訊,您可以定義 Redshift 和 EMR Serverless 安全群組之間的流量規則,如以下範例所示。
範例 — 與 Amazon Redshift 叢集的通訊
-
從其中一個 EMR Serverless 安全群組將傳入流量規則新增至 Amazon Redshift 安全群組。
Type 通訊協定 連接埠範圍 來源 所有 TCP
TCP
5439
emr-serverless-security-group
-
新增來自其中一個 EMR Serverless 安全群組的傳出流量規則。您可以使用兩種方式的其中一種來執行此動作。首先,您可以開啟所有連接埠的傳出流量。
Type 通訊協定 連接埠範圍 目的地 所有流量
TCP
ALL
0.0.0.0/0
或者,您可以將傳出流量限制為 Amazon Redshift 叢集。只有在應用程式必須與 Amazon Redshift 叢集通訊時,這才很有用。
Type 通訊協定 連接埠範圍 來源 所有 TCP
TCP
5439
redshift-security-group
設定應用程式
您可以從設定應用程式頁面變更現有 EMR Serverless 應用程式的網路組態。
檢視任務執行詳細資訊
在任務執行詳細資訊頁面上,您可以檢視任務用於特定執行的子網路。請注意,任務只會在從指定子網路中選取的一個子網路中執行。
子網路規劃的最佳實務
AWS 資源是在子網路中建立,子網路是 Amazon VPC 中可用 IP 地址的子集。例如,具有 /16 網路遮罩的 VPC 最多有 65,536 個可用的 IP 地址,可以使用子網路遮罩分成多個較小的網路。例如,您可以將此範圍分割為兩個子網路,每個子網路使用 /17 遮罩和 32,768 個可用的 IP 地址。子網路位於可用區域內,無法跨區域。
子網路的設計應謹記您的 EMR Serverless 應用程式擴展限制。例如,如果您的應用程式請求 4 個 vCpu 工作者,並且可以擴展到 4,000 個 vCpu,則您的應用程式最多需要 1,000 個工作者,總共需要 1,000 個網路介面。建議您跨多個可用區域建立子網路。這可讓 EMR Serverless 在極少數情況下,在可用區域故障時重試您的任務,或在不同的可用區域中佈建預先初始化的容量。因此,至少兩個可用區域中的每個子網路應具有超過 1,000 個可用的 IP 地址。
您需要遮罩大小小於或等於 22 的子網路,才能佈建 1,000 個網路介面。任何大於 22 的遮罩都不符合要求。例如,/23 的子網路遮罩提供 512 個 IP 地址,而 /22 的遮罩提供 1024,而 /21 的遮罩提供 2048 個 IP 地址。以下是 /16 網路遮罩 VPC 中 /22 遮罩可配置給不同可用區域的 4 個子網路範例。可用和可用的 IP 地址之間有五個差異,因為每個子網路中的前四個 IP 地址和最後一個 IP 地址是由 保留 AWS。
子網路 ID | 子網路地址 | 子網路遮罩 | IP 地址範圍 | 可用的 IP 地址 | 可用的 IP 地址 |
---|---|---|---|---|---|
1 |
10.0.0.0 |
255.255.252.0/22 |
10.0.0.0 - 10.0.3.255 |
1,024 |
1,019 |
2 |
10.0.4.0 |
255.255.252.0/22 |
10.0.4.0 - 10.0.7.255 |
1,024 |
1,019 |
3 |
10.0.8.0 |
255.255.252.0/22 |
10.0.8.0 - 10.0.11.255 |
1,024 |
1,019 |
4 |
10.0.12.0 |
255.255.252.0/22 |
10.0.12.0 - 10.0.15.255 |
1,024 |
1,019 |
您應該評估工作負載是否適合較大的工作者大小。使用較大的工作者大小需要的網路界面較少。例如,使用應用程式擴展限制為 4,000 vCpu 的 16vCpu 工作者,最多需要 250 名工作者,總共需要 250 個可用的 IP 地址來佈建網路介面。 vCpu 您需要遮罩大小小於或等於 24 的多個可用區域中的子網路,才能佈建 250 個網路介面。任何大於 24 的遮罩大小都會提供少於 250 個 IP 地址。
如果您跨多個應用程式共用子網路,則每個子網路的設計應謹記所有應用程式的集體擴展限制。例如,如果您有 3 個應用程式請求 4 個 vCpu 工作者,且每個應用程式可擴展至 4000 個 vCpu,並具有 12,000 個 vCpu 帳戶層級服務配額,則每個子網路將需要 3000 個可用的 IP 地址。如果要使用的 VPC 沒有足夠數目的 IP 地址,請嘗試增加可用 IP 地址的數目。您可以透過將其他無類別域間路由 (CIDR) 區塊與 VPC 關聯來完成此操作。如需詳細資訊,請參閱《Amazon VPC 使用者指南》中的將其他 IPv4 CIDR 區塊與 VPC 建立關聯。
您可以使用線上提供的許多工具之一,快速產生子網路定義並檢閱其可用的 IP 地址範圍。