EKS での Amazon EMR でインタラクティブエンドポイントを作成するための前提条件 - Amazon EMR

EKS での Amazon EMR でインタラクティブエンドポイントを作成するための前提条件

このセクションでは、EMR Studio が EKS での Amazon EMR クラスターに接続してインタラクティブワークロードを実行するために使用できるインタラクティブエンドポイントを設定するための前提条件について説明します。

AWS CLI

最新バージョンの AWS Command Line Interface (AWS CLI) をインストールするには、「AWS CLI の最新バージョンのインストールまたは更新」の手順を行います。

eksctl のインストール

最新バージョンの eksctl をインストールするには、「kubectl をインストールする」の手順を行います。Amazon EKS クラスターに Kubernetes バージョン 1.22 以降を使用している場合は、0.117.0 より大きいバージョンの eksctl を使用してください。

Amazon EKS クラスター

Amazon EKS クラスターを作成します。クラスターを EKS での Amazon EMR に仮想クラスターとして登録します。このクラスターの要件と考慮事項は次のとおりです。

  • クラスターは EMR Studio と同じ Amazon Virtual Private Cloud (VPC) 内にある必要があります。

  • クラスターには、インタラクティブエンドポイントの有効化、Git ベースのリポジトリのリンク、および Application Load Balancer のプライベートモードでの起動のために、少なくとも 1 つのプライベートサブネットが必要です。

  • EMR Studio と、仮想クラスターの登録に使用する Amazon EKS クラスターの間に少なくとも 1 つの共通のプライベートサブネットが必要です。これにより、インタラクティブエンドポイントが Studio ワークスペースにオプションとして表示され、Studio から Application Load Balancer への接続が有効になります。

    Studio と Amazon EKS クラスターを接続するには、2 つの方法から選択できます。

    • Amazon EKS クラスターを作成し、EMR Studio に属するサブネットに関連付けます。

    • または、EMR Studio を作成し、Amazon EKS クラスターのプライベートサブネットを指定します。

  • Amazon EKS 最適化 ARM Amazon Linux AMI は、EKS での Amazon EMR インタラクティブエンドポイントではサポートされていません。

  • インタラクティブエンドポイントは、バージョン 1.30 までの Kubernetes を使用する Amazon EKS クラスターで動作します。

  • Amazon EKS マネージドノードグループのみがサポートされます。

EKS での Amazon EMR のクラスターアクセスを許可する

EKS での Amazon EMR のクラスターアクセスを許可する」のステップを使用して、EKS での Amazon EMR にクラスター内の特定の名前空間へのアクセスを許可します。

Amazon EKS クラスターでの IRSA の有効化

Amazon EKS クラスターでサービスアカウント (IRSA) の IAM ロールを有効化するには、「Enable IAM Roles for Service Accounts (IRSA)」の手順に従ってください。

IAM ジョブ実行ロールを作成する

EKS での Amazon EMR インタラクティブエンドポイントでワークロードを実行するには、IAM ロールを作成する必要があります。このドキュメントでは、この IAM ロールをジョブ実行ロールと呼びます。この IAM ロールは、インタラクティブエンドポイントコンテナと、EMR Studio でジョブを送信したときに作成される実際の実行コンテナの両方に割り当てられます。EKS での Amazon EMR のジョブ実行ロールの Amazon リソースネーム (ARN) が必要になります。これには次の 2 つのステップが必要です。

Amazon EMR on EKS へのアクセス許可をユーザーに付与する

インタラクティブエンドポイントの作成のリクエストを行う IAM エンティティ (ユーザーまたはロール) には、次の Amazon EC2 および emr-containers アクセス権限も必要です。「Amazon EMR on EKS へのアクセス許可をユーザーに付与する」で説明した手順に従って、EKS での Amazon EMR が、インタラクティブエンドポイントのロードバランサーへのインバウンドトラフィックを制限するセキュリティグループを作成、管理、および削除できるようにするアクセス権限を付与します。

以下の 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 EKS クラスターをAmazon EMR に登録する

仮想クラスターを設定し、ジョブを実行する Amazon EKS クラスター内の名前空間にマッピングします。AWS Fargate 専用クラスターの場合は、EKS での Amazon EMR 仮想クラスターと Fargate プロファイルの両方に同じ名前空間を使用します。

EKS での Amazon EMR 仮想クラスターの設定の詳細については、「Amazon EKS クラスターをAmazon EMR に登録する」を参照してください。

AWS Load Balancer Controller を Amazon EKS クラスターにデプロイする

Amazon EKS クラスターには AWS Application Load Balancer が必要です。Amazon EKS クラスターごとに 1 つの Application Load Balancer コントローラーを設定する必要があります。AWS Application Load Balancer コントローラーのセットアップについては、「Amazon EKS ユーザーガイド」の「Installing the AWS Load Balancer Controller add-on」を参照してください。