EMR Studio を使用して EMR Serverless でインタラクティブワークロードを実行する
EMR Serverless インタラクティブアプリケーションを使用すると、EMR Studio でホストされているノートブックを使用して、EMR Serverless で Spark のインタラクティブワークロードを実行できます。
概要
インタラクティブアプリケーションは、インタラクティブ機能が有効になっている EMR Serverless アプリケーションです。Amazon EMR Serverless インタラクティブアプリケーションを使用すると、Amazon EMR Studio で管理されている Jupyter ノートブックを使用してインタラクティブワークロードを実行できます。これにより、データエンジニア、データサイエンティスト、データアナリストは EMR Studio を使用して、Amazon S3 や Amazon DynamoDB などのデータストア内のデータセットでインタラクティブな分析を実行できます。
EMR Serverless のインタラクティブアプリケーションのユースケースには、次のものがあります。
-
データエンジニアは、EMR Studio の IDE エクスペリエンスを使用して ETL スクリプトを作成します。スクリプトはオンプレミスからデータを取り込み、分析のためにデータを変換し、Amazon S3 にデータを保存します。
-
データサイエンティストはノートブックを使用してデータセットを調べ、データセットの異常を検出するように機械学習 (ML) モデルをトレーニングします。
-
データアナリストはデータセットを調査し、ビジネスダッシュボードなどのアプリケーションを更新する日次レポートを生成するスクリプトを作成します。
前提条件
EMR Serverless でインタラクティブワークロードを使用するには、次の要件を満たす必要があります。
-
EMR Serverless インタラクティブアプリケーションは、Amazon EMR 6.14.0 以降でサポートされています。
-
インタラクティブアプリケーションにアクセスし、送信するワークロードを実行し、EMR Studio からインタラクティブノートブックを実行するには、特定のアクセス許可とロールが必要です。詳細については、「インタラクティブワークロードに必要なアクセス許可」を参照してください。
インタラクティブワークロードに必要なアクセス許可
EMR Serverless へのアクセスに必要な基本的なアクセス許可に加えて、IAM ID またはロールに追加のアクセス許可を設定する必要があります。
- インタラクティブアプリケーションにアクセスするには
-
EMR Studio のユーザーアクセス許可と Workspace アクセス許可を設定します。詳細については、「Amazon EMR 管理ガイド」の「EMR Studio ユーザーアクセス許可の設定」を参照してください。
- EMR Serverless で送信するワークロードを実行するには
-
ジョブのランタイムロールを設定する 詳細については、「ジョブランタイムロールを作成する」を参照してください。
- EMR Studio からインタラクティブノートブックを実行するには
-
Studio ユーザーの IAM ポリシーに次の権限を追加します。
-
emr-serverless:AccessInteractiveEndpoints
-Resource
として指定したインタラクティブアプリケーションにアクセスして接続するためのアクセス許可を付与します。このアクセス許可は、EMR Studio Workspace から EMR Serverless アプリケーションにアタッチするために必要です。 -
iam:PassRole
- アプリケーションにアタッチするときに使用する予定の IAM 実行ロールにアクセスするためのアクセス許可を付与します。EMR Studio Workspace から EMR Serverless アプリケーションにアタッチするには、適切なPassRole
アクセス許可が必要です。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "EMRServerlessInteractiveAccess", "Effect": "Allow", "Action": "emr-serverless:AccessInteractiveEndpoints", "Resource": "arn:aws:emr-serverless:
Region
:account
:/applications/*" }, { "Sid": "EMRServerlessRuntimeRoleAccess", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "interactive-execution-role-ARN
", "Condition": { "StringLike": { "iam:PassedToService": "emr-serverless.amazonaws.com" } } } ] } -
インタラクティブアプリケーションの設定
以下の概略的な手順を使用して、AWS Management Consoleの Amazon EMR Studio のインタラクティブ機能を備えた EMR Serverless アプリケーションを作成します。
-
Amazon EMR Serverless の使用を開始する の手順に従ってアプリケーションを作成します。
-
次に、EMR Studio からワークスペースを起動し、コンピューティングオプションとして EMR Serverless アプリケーションにアタッチします。詳細については、EMR Serverless Getting Started ドキュメントのステップ 2 のインタラクティブワークロードタブを参照してください。
Studio Workspace にアプリケーションをアタッチすると、まだ実行されていない場合、アプリケーションは自動的にトリガーを開始します。また、アプリケーションを事前に起動し、ワークスペースにアタッチする前に準備しておくこともできます。
インタラクティブアプリケーションの考慮事項
-
EMR Serverless インタラクティブアプリケーションは、Amazon EMR 6.14.0 以降でサポートされています。
-
EMR Studio は、EMR Serverless インタラクティブアプリケーションと統合されている唯一のクライアントです。EMR Serverless インタラクティブアプリケーションでは、Workspace コラボレーション、SQL Explorer、ノートブックのプログラムによる実行などの EMR Studio 機能はサポートされていません。
-
インタラクティブアプリケーションは Spark エンジンでのみサポートされています。
-
インタラクティブアプリケーションは、Python 3、PySpark、Spark Scala カーネルをサポートしています。
-
1 つのインタラクティブアプリケーションで最大 25 個のノートブックを同時に実行できます。
-
インタラクティブアプリケーションでセルフホスト Jupyter ノートブックをサポートするエンドポイントや API インターフェイスはありません。
-
起動エクスペリエンスを最適化するには、ドライバーとエグゼキューターの事前初期化された容量を設定し、アプリケーションを事前に起動することを推奨します。アプリケーションを事前に起動する場合は、Workspace にアタッチする際に準備が整っていることを確認します。
aws emr-serverless start-application \ --application-id
your-application-id
-
デフォルトでは、
autoStopConfig
はアプリケーションに対して有効になっています。これにより、アイドル時間が 30 分経過するとアプリケーションがシャットダウンされます。この設定は、create-application
またはupdate-application
リクエストの一部として変更できます。 -
インタラクティブアプリケーションを使用する場合は、ノートブックを実行するカーネル、ドライバー、エグゼキューターの事前に初期化された容量を設定することをお勧めします。Spark インタラクティブセッションごとに 1 つのカーネルと 1 つのドライバーが必要なため、EMR Serverless は、事前に初期化されたドライバーごとに、事前に初期化されたカーネルワーカーを維持します。デフォルトでは、EMR Serverless は、ドライバーに事前初期化された容量を指定しない場合でも、アプリケーション全体で 1 つのカーネルワーカーの事前初期化された容量を維持します。各カーネルワーカーは 4 つの vCPU と 16 GB のメモリを使用します。現在の料金については、Amazon EMR の料金
ページを参照してください。 -
インタラクティブワークロードを実行するには、AWS アカウントに十分な vCPU サービスクォータが必要です。Lake Formation 対応のワークロードを実行しない場合は、少なくとも 24 個の vCPU をお勧めします。実行する場合は、少なくとも 28 個の vCPU をお勧めします。
-
EMR Serverless は、60 分を超える時間アイドル状態になっている場合に、ノートブックからカーネルを自動的に終了します。EMR Serverless は、ノートブックセッション中に完了した最後のアクティビティからカーネルアイドル時間を計算します。現在、カーネルアイドルタイムアウト設定を変更することはできません。
-
インタラクティブワークロードで Lake Formation を有効にするには、EMR Serverless アプリケーション を作成するときに、
runtime-configuration
オブジェクトのspark-defaults
分類で設定spark.emr-serverless.lakeformation.enabled
をtrue
に設定します。EMR Serverless で Lake Formation を有効にする場合の詳細については、「Amazon EMR での Lake Formation の有効化」を参照してください。