

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

# 在 Amazon EMR on EKS 上建立互動端點的先決條件
<a name="prereqs-for-studio"></a>

本章節描述了設定互動端點的先決條件，EMR Studio 可使用該端點連線到 Amazon EMR on EKS 叢集並執行互動式工作負載。

## AWS CLI
<a name="cli-installed"></a>

請依照[安裝或更新至最新版本 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)中的步驟，安裝最新版本的 AWS Command Line Interface (AWS CLI)。

## 安裝 eksctl
<a name="eksctl-install"></a>

請依照[安裝 kubectl](https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html) 中的步驟安裝最新版本的 eksctl。如果為 Amazon EKS 叢集使用 Kubernetes 版本 1.22 或更新版本，請使用 eksctl 0.117.0 以後的版本。

## Amazon EKS 叢集
<a name="eks-cluster"></a>

建立 Amazon EKS 叢集。使用 Amazon EMR on EKS ，將叢集註冊為虛擬叢集。以下是此叢集的要求和考量事項。
+ 叢集必須與 EMR Studio 處於相同的 Amazon Virtual Private Cloud (VPC)。
+ 叢集必須擁有至少一個私有子網路，以啟動互動端點、連結 Git 型儲存庫以及以私有模式啟動 Application Load Balancer。
+ EMR Studio 和用於註冊虛擬叢集的 Amazon EKS 叢集之間必須至少有一個共同的私有子網路。這可確保互動端點在 Studio 工作區中顯示為選項，並啟用從 Studio 到 Application Load Balancer 的連線。

  您可以選擇兩種方法來連接 Studio 和 Amazon EKS 叢集：
  + 建立 Amazon EKS 叢集，並將其與屬於 EMR Studio 的子網路產生關聯。
  + 或者，建立 EMR Studio，並為 Amazon EKS 叢集指定私有子網路。
+ Amazon EMR on EKS 互動端點不支援 Amazon EKS 優化的 ARM Amazon Linux AMI。
+ 僅支援 [Amazon EKS 受管節點群組](https://docs.aws.amazon.com/eks/latest/userguide/managed-node-groups.html)和 Karpenter 佈建節點。

## 為 Amazon EMR on EKS 授予叢集存取權
<a name="emr-eks-cluster-virtual"></a>

使用[為 Amazon EMR on EKS 授予叢集存取權](https://docs.aws.amazon.com/emr/latest/EMR-on-EKS-DevelopmentGuide/setting-up-cluster-access.html)中的步驟，將 Amazon EMR on EKS 存取權授予給叢集中的特定命名空間。

## 在 Amazon EKS 叢集上啟用 IRSA
<a name="activate-iam-roles"></a>

若要在 Amazon EKS 叢集上啟用服務帳戶的 IAM 角色 (IRSA)，請按照[啟用服務帳戶的 IAM 角色 (IRSA)](https://docs.aws.amazon.com/emr/latest/EMR-on-EKS-DevelopmentGuide/setting-up-enable-IAM.html) 中的步驟進行操作。

## 建立 IAM 作業執行角色
<a name="iam-role"></a>

必須建立 IAM 角色，才能在 Amazon EMR on EKS 互動端點上執行工作負載。在本文件中，我們將 IAM 角色稱為*作業執行角色*。此 IAM 角色會同時指派給互動端點容器和您使用 EMR Studio 提交作業時所建立的實際執行容器。您將需要 Amazon EMR on EKS 之作業執行角色的 Amazon Resource Name (ARN)。這需要兩個步驟：
+ [建立適用於作業執行的 IAM 角色。](https://docs.aws.amazon.com/emr/latest/EMR-on-EKS-DevelopmentGuide/creating-job-execution-role.html)
+ [更新作業執行角色的信任政策。](https://docs.aws.amazon.com/emr/latest/EMR-on-EKS-DevelopmentGuide/setting-up-trust-policy.html)

## 授予使用者對 Amazon EMR on EKS 的存取權
<a name="iam-permission"></a>

提出建立互動端點請求的 IAM 實體 (使用者或角色) 也必須擁有下列 Amazon EC2 和 `emr-containers` 許可。請遵循 [授予使用者對 Amazon EMR on EKS 的存取權](setting-up-iam.md) 中描述的步驟，授予這些許可，以允許 Amazon EMR on EKS 建立、管理和刪除安全群組，這些安全群組會將傳入流量限制到互動端點的負載平衡器。

下列 `emr-containers` 許可允許使用者執行基本的互動端點操作：

```
"ec2:CreateSecurityGroup",
"ec2:DeleteSecurityGroup",
"ec2:AuthorizeSecurityGroupEgress",
"ec2:AuthorizeSecurityGroupIngress",
"ec2:RevokeSecurityGroupEgress",
"ec2:RevokeSecurityGroupIngress"

"emr-containers:CreateManagedEndpoint",
"emr-containers:ListManagedEndpoints",
"emr-containers:DescribeManagedEndpoint",
"emr-containers:DeleteManagedEndpoint"
```

## 向 Amazon EMR 註冊 Amazon EKS 叢集
<a name="register-eks-cluster"></a>

設定虛擬叢集，並將其映射至 Amazon EKS 叢集中您要執行作業的命名空間。僅限 AWS Fargate叢集，請針對 Amazon EMR on EKS 虛擬叢集和 Fargate 設定檔使用相同的命名空間。

如需有關設定 Amazon EMR on EKS 虛擬叢集的資訊，請參閱 [向 Amazon EMR 註冊 Amazon EKS 叢集](setting-up-registration.md)。

## Amazon EKS 叢集的 Deploy AWS Load Balancer 控制器
<a name="load-balancer-controller"></a>

Amazon EKS 叢集需要 An AWS Application Load Balancer。只需為每個 Amazon EKS 叢集設定一個 Application Load Balancer 控制器。如需有關設定 AWS Application Load Balancer控制器的資訊，請參閱《*Amazon EKS 使用者指南*》中的[安裝 AWS Load Balancer控制器附加元件](https://docs.aws.amazon.com/eks/latest/userguide/aws-load-balancer-controller.html)。