EMR Studio を使用して EMR Serverless でインタラクティブワークロードを実行する - Amazon EMR

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 アプリケーションを作成します。

  1. Amazon EMR Serverless の使用を開始する の手順に従ってアプリケーションを作成します。

  2. 次に、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.enabledtrue に設定します。EMR Serverless で Lake Formation を有効にする場合の詳細については、「Amazon EMR での Lake Formation の有効化」を参照してください。