

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 設定 VPC 以託管 Amazon EMR 叢集
<a name="emr-vpc-host-job-flows"></a>

您必須先建立 VPC 和子網路，然後才能在 VPC 中啟動叢集。對於公有子網路，您必須建立網際網路閘道並將它連接到子網路。下列指示描述了如何建立可以託管 Amazon EMR 叢集的 VPC。

**為 Amazon EMR 叢集建立具有子網路的 VPC**

1. 在 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 開啟 Amazon VPC 主控台。

1. 在頁面的右上角，選擇適合您的 VPC 的 [AWS 區域](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html)。

1. 選擇**建立 VPC**。

1. 在 **VPC 設定**頁面上，選擇 **VPC 和更多**。

1. 在**自動產生名稱標籤**下，啟用**自動產生**並輸入 VPC 的名稱。這可協助您在建立 VPC 和子網路之後，在 Amazon VPC 主控台中識別 VPC 和子網路。

1. 在 **IPv4 CIDR 區塊**欄位中，為 VPC 使用私有 IP 地址空間，以確保適當的 DNS 主機名稱解析度；否則，您可能遭遇 Amazon EMR 叢集故障。這包括以下 IP 地址範圍：
   + 10.0.0.0 - 10.255.255.255
   + 172.16.0.0 - 172.31.255.255
   + 192.168.0.0 - 192.168.255.255

1. 在 **Number of Availability Zones (AZs)** (可用區域 (AZ) 數量) 中，選擇您要在其中啟動子網路的可用區域數量。

1. 在**公有子網路數量**中，選擇要新增至 VPC 的單一公有子網路。如果叢集使用的資料可在網際網路上使用 (例如，在 Amazon S3 或 Amazon RDS 中)，您只需使用公有子網路，而不需要新增私有子網路。

1. 在 **Number of private subnets** (私有子網路數量) 中，選擇您要新增至 VPC 的私人子網路數量。如果應用程式的資料儲存在您自己的網路中 (例如，在 Oracle 資料庫中)，請選取一或多個。對於私有子網路中的 VPC，所有 Amazon EC2 執行個體都必須擁有至少一個透過彈性網路介面對 Amazon EMR 的路由。在主控台中，我們將會自動為您設定。

1. 在 **NAT 閘道**下，選擇性地選擇新增 NAT 閘道。只有當您具有需要與網際網路通訊的私有子網路時，才需要使用這些閘道。

1. 在 **VPC 端點**下，選擇性地選擇將 Amazon S3 的端點新增至子網路。

1. 確認已勾選**啟用 DNS 主機名稱**和**啟用 DNS 解析**。如需詳細資訊，請參閱[以 VPC 使用 DNS](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html)。

1. 選擇**建立 VPC**。

1. 狀態視窗會顯示進行中的工作。工作完成時，選擇**檢視 VPC** 以導覽至**您的 VPC** 頁面，此頁面會顯示您的預設 VPC 和您剛建立的 VPC。您建立的 VPC 是非預設 VPC，因此 **Default VPC (預設 VPC)** 欄會顯示 **No (否)**。

1. 如果您要將 VPC 與不包含域名稱的 DNS 項目關聯，請導覽至 **DHCP 選項集**，選擇**建立 DHCP 選項集**，然後省略域名稱。建立選項集後，導覽至新的 VPC，在**動作**功能表下選擇**編輯 DHCP 選項集**，然後選取新的選項集。您不能在 DNS 選項設定建立後使用主控台來編輯網域名稱。

   這是一項 Hadoop 和相關應用程式的最佳實務，可確保節點完整網域名稱 (FQDN) 的解析度。若要確保適當的 DNS 解析度，您必須設定包含 DHCP 選項集的 VPC，且其參數設定為以下值：
   + **domain-name (domain-name)** = **ec2.internal**

     如果您的區域是美國東部 (維吉尼亞北部)，請使用 **ec2.internal**。對於其他區域，請使用 {{region-name}}**.compute.internal**。如需 `us-west-2` 的範例，請使用 **us-west-2.compute.internal**。對於 AWS GovCloud (美國西部) 區域，請使用 **us-gov-west-1.compute.internal**。
   + **domain-name-servers (domain-name-servers)** = **AmazonProvidedDNS**

   如需詳細資訊，請參閱《Amazon VPC 使用者指南》**中的 [DHCP 選項集](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html)。

1. VPC 建立之後，移至**子網路**頁面，並記下新 VPC 的其中一個子網路的**子網路 ID**。當您在 VPC 啟動 Amazon EMR 叢集時可以使用此資訊。