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 管理ガイド」の「Configure EMR Studio user permissions」を参照してください。
- EMR Serverless で送信するワークロードを実行するには
-
ジョブのランタイムロールを設定する 詳細については、「ジョブランタイムロールを作成する」を参照してください。
- EMR Studio からインタラクティブノートブックを実行するには
-
Studio ユーザーの IAM ポリシーに次の権限を追加します。
-
emr-serverless:AccessInteractiveEndpoints-として指定したインタラクティブアプリケーションにアクセスして接続するためのアクセス許可を付与します。。Resourceこのアクセス許可は、EMR Studio Workspace から EMR Serverless アプリケーションにアタッチするために必要です。 -
iam:PassRole- アプリケーションにアタッチするときに使用する予定の IAM 実行ロールにアクセスするためのアクセス許可を付与します。EMR Studio Workspace から EMR Serverless アプリケーションにアタッチするには、適切なPassRoleアクセス許可が必要です。
-
インタラクティブアプリケーションの設定
以下の概略的な手順を使用して、AWS マネジメントコンソールの 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-idyour-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に設定します。詳細については、「Enabling Lake Formation in Amazon EMR」を参照してください。