

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

# 設定 Amazon EMR 叢集的網路存取
<a name="studio-notebooks-emr-networking"></a>

在您開始使用 Amazon EMR 或 EMR Serverless 進行 Studio 中的資料準備任務之前，請確定您或您的管理員已設定您的網路，以允許 Studio 和 Amazon EMR 之間的通訊。一旦啟用了此通訊，您就可以選擇：
+ [使用 EMR Serverless 準備資料](studio-notebooks-emr-serverless.md)
+ [使用 Amazon EMR 進行資料準備](studio-notebooks-emr-cluster.md)

**注意**  
對於 EMR Serverless 使用者，最簡單的設定涉及在 Studio UI 中建立應用程式，而無需修改**虛擬私有雲端 (VPC)** 選項的預設設定。此方法可讓您在 SageMaker 網域的 VPC 內建立應用程式，無需額外的聯網組態。如果選擇此選項，您可以略過下列聯網設定區段。

聯網指示會根據 Studio 與 Amazon EMR 是在私有 [Amazon 虛擬私有雲端](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) (VPC) 內部署，還是透過網際網路進行通訊而有所不同。

根據預設，Studio 或 Studio Classic 會在具有[網際網路存取](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-notebooks-and-internet-access.html#studio-notebooks-and-internet-access-default)的 AWS 受管 VPC 中執行。使用網際網路連線時，Studio 和 Studio Classic 會透過網際網路存取 AWS 資源，例如 Amazon S3 儲存貯體。但是，如果您有安全要求來控制對資料和任務容器的存取，建議您設定 Studio 或 Studio Classic 和 Amazon EMR，以便無法透過網際網路存取資料和容器。若要控制對資源的存取或在沒有公有網際網路存取的情況下執行 Studio 或 Studio Classic，您可以在加入 [Amazon SageMaker AI 網域](gs-studio-onboard.md)時指定 `VPC only` 網路存取類型。在此案例中，Studio 和 Studio Classic 透過私有 [VPC 端點](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html)與其他 AWS 服務建立連線。如需在 `VPC only` 模式下設定 Studio 或 Studio Classic 的相關資訊，請參閱[將 VPC 中的 SageMaker Studio 或 Studio Classic 筆記本連線至外部資源](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-notebooks-and-internet-access.html#studio-notebooks-and-internet-access-vpc-only)。

前兩節描述如何確保 Studio 或 Studio Classic 與 VPC 中 Amazon EMR 之間的通訊，而無需公有網際網路存取。最後一節涵蓋如何確保在 Studio 或 Studio Classic 與 Amazon EMR 之間使用網際網路連線進行通訊。在無需存取網際網路的情況下連線 Studio 或 Studio Classic 及 Amazon EMR 之前，請務必先為 Amazon Simple Storage Service (資料儲存)、Amazon CloudWatch (記錄與監控) 及 Amazon SageMaker Runtime (微調角色型存取控制 (RBAC)) 建立端點。

若要連線 Studio 或 Studio Classic 和 Amazon EMR：
+ 如果 Studio 或 Studio Classic 和 Amazon EMR 位於不同的 VPCs 中，無論是在同一 AWS 帳戶或不同帳戶中，請參閱 [Studio 及 Amazon EMR 位於不同的 VPC 中](#studio-notebooks-emr-networking-requirements-cross-vpc)。
+ 如果 Studio 或 Studio Classic 和 Amazon EMR 位於相同的 VPC 中，請參閱 [Studio 與 Amazon EMR 位於相同的 VPC 中](#studio-notebooks-emr-networking-requirements-same-vpc)。
+ 如果您選擇透過公有網際網路連線 Studio 或 Studio Classic 與 Amazon EMR，請參閱 [Studio 和 Amazon EMR 透過公有網際網路進行通訊](#studio-notebooks-emr-networking-requirements-internet)。

## Studio 及 Amazon EMR 位於不同的 VPC 中
<a name="studio-notebooks-emr-networking-requirements-cross-vpc"></a>

若要允許 Studio 或 Studio Classic 與 Amazon EMR 部署在不同 VPC 中時彼此通訊：

1. 首先，透過 VPC 對等互連連線您的 VPC。

1. 更新每個 VPC 的路由表，以在 Studio 或 Studio Classic 子網路與 Amazon EMR 子網路之間雙向路由網路流量。

1. 設定您的安全群組以允許傳入和傳出流量。

無論資源部署在單一 AWS 帳戶 （單一帳戶使用案例） 或跨多個 AWS 帳戶 （跨帳戶使用案例），連線 Studio 或 Studio Classic 和 Amazon EMR 的步驟都相同。

1. 

**VPC 對等互連**

   建立 [VPC 對等互連](https://docs.aws.amazon.com/vpc/latest/peering/working-with-vpc-peering.html)以促進兩個 VPC (Studio 或 Studio Classic 及 Amazon EMR) 之間的聯網。

   1. 從您的 Studio 或 Studio Classic 帳戶中，在 VPC 儀表板上，選擇**對等互連**，然後選擇**建立對等互連**。

   1. 建立您的請求，將 Studio 或 Studio Classic VPC 與 Amazon EMR VPC 進行對等互連。在另一個 AWS 帳戶中請求對等互連時，請在**選取要對等的另一個 VPC** 中選擇**另一個帳戶**。

      對於跨帳戶對等互連，管理員必須接受來自 Amazon EMR 帳戶的請求。

      當對等私有子網路時，您應該在 VPC 對等連線層級啟用私有 IP DNS 解析。

1. 

**路由表**

   在 Studio 或 Studio Classic 子網路與 Amazon EMR 子網路之間雙向傳送網路流量。

   在您建立對等互連之後，管理員 (在進行跨帳戶存取權的每個帳戶上) 可以將路由新增至私有子網路路由表，以在 Studio 或 Studio Classic 與 Amazon EMR 子網路之間路由流量。您可以透過前往 VPC 儀表板每個 VPC 的**路由表**區段來定義這些路由。

   下列 Studio VPC 子網路的路由表圖顯示透過對等互連從 Studio 帳戶到 Amazon EMR VPC IP 範圍 (此處 `2.0.1.0/24`) 的傳出路由範例。  
![\[Studio VPC 子網路的路由表，顯示透過對等連線從 Studio 帳戶到 Amazon EMR VPC IP 範圍 (此處2.0.1.0/24) 的傳出路由\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/studio/emr/studio-notebooks-emr-return-route.png)

   下列 Amazon EMR VPC 子網路的路由表示透過對等連線從 Amazon EMR VPC 到 Studio VPC IP 範圍 (此處 `10.0.20.0/24`) 的傳回路由範例。  
![\[Amazon EMR VPC 子網路的路由表，其中顯示透過對等互連從 Amazon EMR 帳戶到 Studio VPC IP 範圍 (此處 10.0.20.0/24) 的傳回路由\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/studio/emr/studio-notebooks-emr-outbound-route.png)

1. 

**Security groups (安全群組)**

   最後，Studio 或 Studio Classic 網域的安全群組必須允許傳出流量，而 Amazon EMR 主節點的安全群組必須允許來自 Studio 或 Studio Classic 執行個體安全群組的 *Apache Livy*、*Hive* 或 *Presto* TCP 連接埠 (分別為 `8998`、`10000` 與 `8889`) 的傳入流量。[Apache Livy](https://livy.apache.org/) 是透過 REST 介面啟用與 Amazon EMR 互動的服務。

下圖顯示 Amazon VPC 設定的範例，可讓 JupyterLab 或 Studio Classic 筆記本從 Service Catalog 中的 CloudFormation 範本佈建 Amazon EMR 叢集，然後連線到相同 AWS 帳戶中的 Amazon EMR 叢集。圖表提供當 VPCs 無法存取網際網路時，直接連線至各種 AWS 服務所需的端點的額外圖解，例如 Amazon S3 或 Amazon CloudWatch。或者，必須使用 [NAT 閘道](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-working-with)，允許多個 VPC 私有子網路中的執行個體在存取網際網路時共用[網際網路閘道](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Internet_Gateway.html)所提供的單一公有 IP 地址。

![\[架構圖說明簡單的 Amazon VPC 設定範例，可讓 Studio 或 Studio Classic 筆記本從 Service Catalog 中的 CloudFormation 範本佈建 Amazon EMR 叢集，然後連線到相同 AWS 帳戶中的 Amazon EMR 叢集。圖表提供當 VPCs 無法存取網際網路時，直接連線至各種 AWS 服務所需的端點的額外圖解，例如 Amazon S3 或 Amazon CloudWatch。或者，必須使用 NAT 閘道，允許多個 VPC 私有子網路中的執行個體在存取網際網路時共用網際網路閘道所提供的單一公有 IP 地址。\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/studio/emr/studio-notebooks-emr-architecture-singleaccount-vpcendpoints.png)


## Studio 與 Amazon EMR 位於相同的 VPC 中
<a name="studio-notebooks-emr-networking-requirements-same-vpc"></a>

如果 Studio or Studio Classic 與 Amazon EMR 位於不同的子網路中，請將路由新增至每個私有子網路路由表，以在 Studio 或 Studio Classic 與 Amazon EMR 子網路之間路由流量。您可以透過前往 VPC 儀表板每個 VPC 的**路由表**區段來定義這些路由。如果您在相同 VPC 和相同子網路中部署了 Studio 或 Studio Classic 和 Amazon EMR，則不需要在 Studio 與 Amazon EMR 之間路由流量。

無論您是否需要更新路由表，Studio 或 Studio Classic 網域的安全群組都必須允許傳出流量，而 Amazon EMR 主節點的安全群組必須允許來自 Studio 或 Studio Classic 執行個體安全群組的 *Apache Livy*、*Hive* 或 *Presto* TCP 連接埠 (分別為 `8998`、`10000` 與 `8889`) 的傳入流量。[Apache Livy](https://livy.apache.org/) 是透過 REST 介面與 Amazon EMR 啟用互動的服務。

## Studio 和 Amazon EMR 透過公有網際網路進行通訊
<a name="studio-notebooks-emr-networking-requirements-internet"></a>

根據預設，Studio 和 Studio Classic 提供了一個網路介面，允許透過與 SageMaker 網域相關聯的 VPC 中的網際網路閘道與網際網路進行通訊。如果您選擇透過公有網際網路連線至 Amazon EMR，Amazon EMR 必須接受來自其網際網路閘道的 *Apache Livy*、*Hive* 或*Presto* TCP 連接埠 (分別為 `8998`、`10000` 與 `8889`) 的傳入流量。[Apache Livy](https://livy.apache.org/) 是透過 REST 介面啟用與 Amazon EMR 互動的服務。

請注意，允許傳入流量的任何連接埠都代表潛在安全漏洞。請詳閱自訂安全群組，以確保您將漏洞數量降至最低。如需更多資訊，請參閱[使用安全群組控制網路流量](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-security-groups.html)。

或者，請參閱[部落格和白皮書](studio-notebooks-emr-resources.md)以取得如何在 [Amazon EMR 啟用 Kerberos](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-kerberos.html)、在私有子網路設定叢集，以及使用 [Network Load Balancer (NLB)](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html) 存取叢集以僅公開特定連接埠 (透過安全群組進行存取控制) 的詳細演練。

**注意**  
透過公有網際網路連線至 Apache Livy 端點時，我們建議您使用 TLS 確保 Studio 或 Studio Classic 與 Amazon EMR 叢集之間的通訊安全。  
如需使用 Apache Livy 設定 HTTPS 的相關資訊，請參閱[使用 Apache Livy 啟用 HTTPS](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/enabling-https.html)。如需設定啟用傳輸加密的 Amazon EMR 叢集的相關資訊，請參閱[提供用於使用 Amazon EMR 加密對傳輸中的資料進行加密的憑證](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-encryption-enable.html#emr-encryption-certificates)。此外，您需要設定 Studio 或 Studio Classic 以存取您的憑證金鑰，如 [透過 HTTPS 連線至 Amazon EMR 叢集](connect-emr-clusters.md#connect-emr-clusters-ssl) 所指定。