本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定無EMR伺服器應用程式的VPC存取以連線至資料
您可以設定 EMR Serverless 應用程式連線到 內的資料存放區VPC,例如 Amazon Redshift 叢集、Amazon RDS 資料庫或具有VPC端點的 Amazon S3 儲存貯體。您的 EMR Serverless 應用程式具有傳出連線,可連線至您 內的資料存放區VPC。根據預設,無EMR伺服器會封鎖對應用程式的傳入存取,以改善安全性。
注意
如果您想要為應用程式使用外部 Hive 中繼存放區資料庫,則必須設定VPC存取權。如需如何設定外部 Hive 中繼存放區的資訊,請參閱中繼存放區組態。
建立應用程式
在建立應用程式頁面上,您可以選擇自訂設定,並指定 EMR Serverless 應用程式可以使用的 VPC、子網路和安全群組。
VPCs
選擇包含您的資料存放區的虛擬私有雲端 (VPC) 名稱。建立應用程式頁面會列出VPCs所選 的所有 AWS 區域。
子網路
選擇 中VPC包含您資料存放區的子網路。建立應用程式頁面會列出 中資料存放區的所有子網路VPC。同時支援公有和私有子網路。您可以將私有或公有子網路傳遞給應用程式。選擇是否擁有公有或私有子網路有幾個相關的考量事項需要注意。
對於私有子網路:
注意
當您在私有子網路中設定 Amazon EMR Serverless 應用程式時,建議您也為 Amazon S3 設定VPC端點。如果您的 EMR Serverless 應用程式位於沒有 Amazon S3 VPC端點的私有子網路中,則可能會產生與 S3 流量相關聯的額外NAT閘道費用。這是因為未設定VPC端點VPC時,您的EMR應用程式與 Amazon S3 之間的流量不會保留在您的 內。
對於公有子網路:
它們具有通往網際網路閘道的路由。
您必須確保適當的安全群組組態,以控制傳出流量。
工作者可以透過VPC傳出流量連線到 內的資料存放區。根據預設,無EMR伺服器會封鎖對工作者的傳入存取。這是為了提高安全性。
當您使用 時 AWS Config,EMRServerless 會為每個工作者建立彈性網路介面項目記錄。若要避免與此資源相關的成本,請考慮關閉AWS::EC2::NetworkInterface
AWS Config。
注意
建議您跨多個可用區域選取多個子網路。這是因為您選擇的子網路會決定可供 EMR Serverless 應用程式啟動的可用區域。每個工作者都會在其啟動的子網路上使用 IP 地址。請確定指定的子網路有足夠的 IP 地址,可供您計劃啟動的工作者數量使用。如需子網路規劃的詳細資訊,請參閱子網路規劃的最佳實務。
子網路的考量和限制
EMR 具有公有子網路的無伺服器不支援 AWS Lake Formation。
公有子網路不支援傳入流量。
安全群組
選擇一個或多個可以與資料存放區通訊的安全群組。建立應用程式頁面會列出 中的所有安全群組VPC。 EMR無伺服器將這些安全群組與連接到VPC子網路的彈性網路介面建立關聯。
注意
建議您為 EMR Serverless 應用程式建立個別的安全群組。 EMR如果安全群組的連接埠在 0.0.0.0/0 或 ::/0 範圍上開放至公有網際網路,則無伺服器將不允許您建立/更新/啟動應用程式。這可提供增強的安全性、隔離功能,並讓管理網路規則更有效率。例如,這會封鎖對具有公有 IP 地址的工作者的意外流量。若要與 Amazon Redshift 叢集通訊,您可以定義 Redshift 和無EMR伺服器安全群組之間的流量規則,如以下範例所示。
範例 — 與 Amazon Redshift 叢集通訊
-
從其中一個無EMR伺服器安全群組將傳入流量規則新增至 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 中可用 IP 地址的子集VPC。例如,VPC具有 /16 網路遮罩的 最多有 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 網路遮罩中 4 個子網路的範例,其中 /22 VPC 遮罩可配置給不同的可用區域。由於每個子網路中的前四個 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.4.0 - 10.0.7.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 |
您應該評估工作負載是否最適合較大的工作者大小。使用較大的工作者大小需要的網路介面較少。例如,使用 16 vCpu 名具有 4,000 個應用程式擴展限制的工作者 vCpu ,最多需要 250 名工作者,總共 250 個可用的 IP 地址來佈建網路介面。您需要遮罩大小小於或等於 24 的多個可用區域中的子網路,才能佈建 250 個網路介面。任何大於 24 的遮罩大小都會提供少於 250 個 IP 地址。
如果您跨多個應用程式共用子網路,則每個子網路的設計都應謹記您所有應用程式的集體擴展限制。例如,如果您有 3 個應用程式請求 4 vCpu 名工作者,且每個應用程式可以擴展至 4000 vCpu 個,並以 12,000 個vCpu帳戶層級服務為基礎的配額為基礎,則每個子網路都需要 3000 個可用的 IP 地址。如果您想要VPC使用的 IP 地址數量不足,請嘗試增加可用的 IP 地址數量。您可以建立其他無類別網域間路由 (CIDR) 區塊與 的關聯,藉此達成此目的VPC。如需詳細資訊,請參閱《Amazon VPC 使用者指南》中的將其他IPv4CIDR區塊與 建立關聯VPC。
您可以使用線上提供的許多工具之一,快速產生子網路定義並檢閱其可用的 IP 地址範圍。