EMR Studio に関する考慮事項 - Amazon EMR

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

EMR Studio に関する考慮事項

考慮事項

EMR Studio を使用する場合は、次の点を考慮してください。

  • EMR Studio は、次の で使用できます AWS リージョン。

    • 米国東部 (オハイオ) (us-east-2)

    • 米国東部 (バージニア北部) (us-east-1)

    • 米国西部 (北カリフォルニア) (us-west-1)

    • 米国西部 (オレゴン) (us-west-2)

    • アフリカ (ケープタウン) (af-south-1)

    • アジアパシフィック (香港) (ap-east-1)

    • アジアパシフィック (ジャカルタ) (ap-southeast-3)*

    • アジアパシフィック (メルボルン) (ap-southeast-4)*

    • アジアパシフィック (ムンバイ) (ap-south-1)

    • アジアパシフィック (大阪) (ap-northeast-3)*

    • アジアパシフィック (ソウル) (ap-northeast-2)

    • アジアパシフィック (シンガポール) (ap-southeast-1)

    • アジアパシフィック (シドニー) (ap-southeast-2)

    • アジアパシフィック (東京) (ap-northeast-1)

    • カナダ (中部) (ca-central-1)

    • ヨーロッパ (フランクフルト) (eu-central-1)

    • 欧州 (アイルランド) (eu-west-1)

    • ヨーロッパ (ロンドン) (eu-west-2)

    • 欧州 (ミラノ) (eu-south-1)

    • 欧州 (パリ) (eu-west-3)

    • 欧州 (スペイン) (eu-south-2)

    • 欧州 (ストックホルム) (eu-north-1)

    • 欧州 (チューリッヒ) (eu-central-2)*

    • イスラエル (テルアビブ) (il-central-1)*

    • 中東 (アラブ首長国連邦) (me-central-1)*

    • 南米 (サンパウロ) (sa-east-1)

    • AWS GovCloud (米国東部) (gov-us-east-1)

    • AWS GovCloud (米国西部) (gov-us-west-1)

    * ライブ Spark UI は、これらのリージョンではサポートされていません。

  • ユーザーが Amazon EC2 で実行されている新しい EMR クラスターを Workspace 用にプロビジョニングできるようにするには、EMR Studio を一連のクラスターテンプレートに関連付けることができます。管理者は、Service Catalog でクラスターテンプレートを定義できます。また、Studio 内でユーザーまたはグループがクラスターテンプレートにアクセスできるのか、できないかを選択できます。

  • Amazon S3 に保存されているノートブックファイルへのアクセス許可を定義する場合、または からシークレットを読み取る場合は AWS Secrets Manager、Amazon EMR サービスロールを使用します。セッションポリシーは、これらのアクセス許可ではサポートされません。

  • 複数の EMR Studio を作成して、異なる VPC 内の EMR クラスターへのアクセスを制御できます。

  • を使用して AWS CLI 、Amazon EMR on EKS クラスターをセットアップします。その後、Studio インターフェイスを使用して、マネージドエンドポイントを使用して Workspace にクラスターをアタッチして、ノートブックジョブを実行できます。

  • Amazon EMR で信頼できる ID の伝達を使用する場合は、EMR Studio にも当てはまるその他の考慮事項があります。詳細については、「Amazon と Identity Center の統合に関する考慮事項EMRと制限事項」を参照してください。

  • EMR Studio では、次の Python マジックコマンドはサポートされていません。

    • %alias

    • %alias_magic

    • %automagic

    • %macro

    • %%js

    • %%javascript

    • %configure を使用した proxy_user の変更

    • %env または %set_env を使用した KERNEL_USERNAME の変更

  • Amazon EMR on EKS クラスターは、EMR Studio の SparkMagic コマンドをサポートしていません。

  • ノートブックのセルに複数行の Scala ステートメントを記述する場合は、最後の行以外のすべての行がピリオドで終わっていることを確認してください。次の例では、複数行の Scala ステートメントで正しい構文を使用しています。

    val df = spark.sql("SELECT * from table_name). filter("col1=='value'"). limit(50)
  • Amazon EMR で使用するオフコンソールアプリケーションのセキュリティを強化するために、アプリケーションホスティングドメインはパブリックサフィックスリスト (PSL) に登録されます。これらのホスティングドメインの例には以下が含まれます: emrstudio-prod.us-east-1.amazonaws.com.rproxy.goskope.comemrnotebooks-prod.us-east-1.amazonaws.com.rproxy.goskope.comemrappui-prod.us-east-1.amazonaws.comセキュリティ強化のため、デフォルトのドメイン名に機密性の高い Cookie を設定する必要がある場合は、__Host- プレフィックスの付いた Cookie を使用することをお勧めします。これは、クロスサイトリクエストフォージェリ (CSRF) 攻撃からドメインを防ぐ際に役立ちます。詳細については、「Mozilla 開発者ネットワーク」の「Set-Cookie」ページを参照してください。

既知の問題

  • 信頼できる ID 伝達が有効になっている IAM Identity Center を使用する EMR Studio は、EMR クラスターのうち、信頼できる ID 伝達を使用するものにのみ関連付けることができます。

  • Studio を作成する前に、ブラウザで FoxyProxy や SwitchyOmega などのプロキシ管理ツールを無効にしてください。アクティブなプロキシを使用している場合、[Create Studio] (Studio の作成) を選択するとエラーが発生し、[Network Failure] (ネットワーク障害) エラーメッセージが表示されることがあります。

  • Amazon EMR on EKS クラスターで実行されるカーネルは、タイムアウトの問題により起動に失敗することがあります。カーネルの起動中にエラーまたは問題が発生した場合は、ノートブックファイルを閉じ、カーネルをシャットダウンしてから、ノートブックファイルを再度開きます。

  • [Restart kernel] (カーネルの再起動) オペレーションは、Amazon EMR on EKS クラスターを使用している場合、期待どおりに機能しません。[Restart kernel] (カーネルの再起動) を選択した後に、Workspace を更新して再起動を有効にします。

  • Workspace がクラスターにアタッチされていない場合、Studio ユーザーがノートブックファイルを開いてカーネルを選択しようとすると、エラーメッセージが表示されます。このエラーメッセージは、[OK]を選択して無視して構いません。ただし、ノートブックコードを実行するには、その前に Workspace をクラスターにアタッチし、カーネルを選択する必要があります。

  • クラスターセキュリティを設定するためのセキュリティ設定を使用して Amazon EMR 6.2.0 を使用している場合は、Workspace インターフェイスがブランクになり、期待どおりに動作しません。クラスターの EMRFS のデータ暗号化または Amazon S3 認可を設定する場合は、サポートされている別のバージョンの Amazon EMR を使用することをお勧めします。EMR Studio は、Amazon EMR バージョン 5.32.0 (Amazon EMR 5.x シリーズ) および 6.2.0 (Amazon EMR 6.x シリーズ) 以降で動作します。

  • Amazon EC2ジョブでEMR実行されている Amazon のデバッグ」を行うと、クラスター上の Spark UI へのリンクが機能しないか、表示されないことがあります。リンクを再生成するには、新しいノートブックセルを作成し、%%info コマンドを実行します。

  • Jupyter Enterprise Gateway は、Amazon EMR リリースバージョン 5.32.0、5.33.0、6.2.0、6.3.0 では、クラスターのプライマリノード上のアイドル状態のカーネルをクリーンアップしません。アイドル状態のカーネルはコンピューティングリソースを消費するため、長時間稼働クラスターが失敗する原因となる可能性があります。次のサンプルスクリプトを使用して、Jupyter Enterprise Gateway のアイドル状態のカーネルのクリーンアップを設定できます。「を使用してプライマリノードに接続する SSH」やステップとしてのスクリプトの送信を行うことができます。詳細については、「Amazon EMR クラスターでコマンドとスクリプトを実行する」を参照してください。

    #!/bin/bash sudo tee -a /emr/notebook-env/conf/jupyter_enterprise_gateway_config.py << EOF c.MappingKernelManager.cull_connected = True c.MappingKernelManager.cull_idle_timeout = 10800 c.MappingKernelManager.cull_interval = 300 EOF sudo systemctl daemon-reload sudo systemctl restart jupyter_enterprise_gateway
  • Amazon EMR バージョン 5.32.0、5.33.0、6.2.0、または 6.3.0 で自動終了ポリシーを使用すると、Amazon EMR はクラスターをアイドルとしてマークし、アクティブな Python3 カーネルがあっても自動的にクラスターが終了されることがあります。これは、Python3 カーネルを実行しても Spark ジョブがクラスターで送信されないためです。Python3 カーネルで自動終了を使用するには、Amazon EMR バージョン 6.4.0 以降を使用することをお勧めします。自動終了の詳細については、「自動終了ポリシーを使用する」を参照してください。

  • %%display を使用してテーブル DataFrame に Spark を表示すると、非常に広いテーブルが切り捨てられる可能性があります。出力を右クリックして[Create New View for Output] (出力用の新しいビューを作成) を選択し、出力のスクロール可能なビューを取得できます。

  • PySpark、Spark、SparkR などの Spark ベースのカーネルを起動すると、Spark セッションが開始され、ノートブックでセルを実行すると、そのセッションで Spark ジョブがキューに入れられます。実行中のセルを中断すると、Spark ジョブは引き続き実行されます。Spark ジョブを停止するには、クラスター上の Spark UI を使用する必要があります。Spark UI に接続する方法の手順については、「EMR Studio でアプリケーションとジョブをデバッグする」を参照してください。

  • Amazon EMR Studio Workspace を のルートユーザーとして使用すると、403: Forbiddenエラー AWS アカウント が発生します。これは、Amazon EMR の Jupyter Enterprise Gateway 設定でルートユーザーへのアクセスが許可されていないためです。日常的なタスクにはルートユーザーを使用しないことをお勧めします。その他の認証オプションについては、AWS Identity and Access Management 「 for Amazon EMR 」を参照してください。

機能の制限

Amazon EMR Studio では、次の Amazon EMR 機能はサポートされていません。

  • Kerberos 認証を指定するセキュリティ構成を使用した EMR クラスターでのジョブのアタッチと実行

  • 複数のプライマリノードを持つクラスター

  • 6.9.0 より前の Amazon EMR 6.x リリースと 5.36.1 より前の 5.x リリースで Graviton2 に基づく Amazon EC2 インスタンスを使用するクラスター AWS Graviton2

信頼できる ID 伝達を使用する Studio では、以下の機能はサポートされません。

  • テンプレートなしで EMR クラスターを作成。

  • EMR サーバーレスアプリケーションの使用。

  • Amazon EMR on EKS クラスターの起動。

  • ランタイムロールの使用。

  • SQL エクスプローラーまたはワークスペースコラボレーションの有効化。

EMR Studio のサービスの制限

次の表に、EMR Studio のサービスの制限を示します。

項目 制限
EMR Studio AWS アカウントあたり最大 100
サブネット 各 EMR Studio に関連付けることができるのは最大 5 個
IAM Identity Center グループ 各 EMR Studio に割り当てることができるのは最大 5 個
IAM Identity Center ユーザー 各 EMR Studio に割り当てることができるのは最大 100 個

VPC とサブネットのベストプラクティス

次のベストプラクティスを使用して、EMR Studio のサブネットで Amazon Virtual Private Cloud (Amazon VPC) をセットアップします。

  • VPC には、最大 5 つのサブネットを指定して Studio に関連付けることができます。Workspace の可用性をサポートし、異なるアベイラビリティーゾーンのクラスターへのアクセス権を Studio ユーザーに付与するために、異なるアベイラビリティーゾーン内の複数のサブネットを提供することをお勧めします。VPC、サブネット、アベイラビリティーゾーンの操作の詳細については、「Amazon Virtual Private Cloud ユーザーガイド」の「VPC とサブネット」を参照してください。

  • 指定するサブネットは、相互に通信できる必要があります。

  • ユーザーがパブリックにホストされている Git リポジトリに Workspace をリンクできるようにするには、NAT を介してインターネットにアクセスできるプライベートサブネットのみを指定する必要があります。Amazon EMR に対するプライベートサブネットの設定の詳細については、「プライベートサブネット」を参照してください。

  • EMR Studio で Amazon EMR on EKS を使用する場合、Studio と、仮想クラスターの登録に使用する Amazon EKS クラスターの間に少なくとも 1 つの共通のサブネットが必要です。そうなっていないと、マネージドエンドポイントは Studio Workspace のオプションとして表示されません。Amazon EKS クラスターを作成し、Studio に属するサブネットに関連付けるか、Studio を作成して EKS クラスターのサブネットを指定できます。

  • EMR Studio で Amazon EMR on EKS を使用する場合は、Amazon EKS クラスターワーカーノードと同じ VPC を選択します。

Amazon EMR Studio のクラスター要件

Amazon EC2 で実行されている Amazon EMR クラスター

EMR Studio Workspace 用に作成する Amazon EC2 で実行されているすべての Amazon EMR クラスターは、次の要件を満たす必要があります。EMR Studio インターフェイスを使用して作成したクラスターは、これらの要件を自動的に満たします。

  • クラスターは、Amazon EMR バージョン 5.32.0 (Amazon EMR 5.x シリーズ) または 6.2.0 (Amazon EMR 6.x シリーズ) 以降を使用する必要があります。Amazon EMR コンソール AWS Command Line Interfaceまたは SDK を使用してクラスターを作成し、EMR Studio Workspace にアタッチできます。Studio ユーザーは、Amazon EMR Workspace を作成または作業するときに、クラスターをプロビジョニングしてアタッチすることもできます。詳細については、「EMR Studio Workspace にコンピューティングをアタッチする」を参照してください。

  • クラスターは Amazon Virtual Private Cloud 内に存在する必要があります。EC2-Classic プラットフォームはサポートされません。

  • クラスターには Spark、Livy、および Jupyter Enterprise Gateway がインストールされている必要があります。SQL Explorer にクラスターを使用する予定がある場合は、Presto と Spark の両方をインストールする必要があります。

  • SQL Explorer を使用するには、クラスターで Amazon EMR バージョン 5.34.0 以降またはバージョン 6.4.0 以降を使用し、Presto をインストールする必要があります。Presto の Hive メタストアとして AWS Glue データカタログを指定する場合は、クラスターで設定する必要があります。詳細については、「AWS Glue Data Catalog での Presto の使用」を参照してください。

  • EMR Studio でパブリックにホストされた Git リポジトリを使用するには、クラスターが NAT を使用するプライベートサブネット内にある必要があります。

EMR Studio を使用する場合は、次のクラスター設定をお勧めします。

  • Spark セッションのデプロイモードをクラスターモードに設定する。クラスターモードでは、アプリケーションマスタープロセスは、クラスターのプライマリノードではなく、コアノードに配置されます。そうすることで、プライマリノードでメモリ不足になる可能性が軽減されます。詳細については、Apache Spark ドキュメントで「クラスターモードの概要」を参照してください。

  • 次の設定例のように、Livy タイムアウトをデフォルトの 1 時間から 6 時間に変更する。

    { "classification":"livy-conf", "Properties":{ "livy.server.session.timeout":"6h", "livy.spark.deploy-mode":"cluster" } }
  • 最大 30 のインスタンスで多様なインスタンスフリートを作成し、スポットインスタンスフリートで複数のインスタンスタイプを選択する。例えば、Spark ワークロードに対してメモリ最適化インスタンスタイプ r5.2x、r5.4x、r5.8x、r5.12x、r5.16x、r4.2x、r4.4x、r4.8x、r4.12 などを指定できます。詳細については、「インスタンスフリートを設定する」を参照してください。

  • スポットインスタンスのキャパシティ最適化割り当て戦略を使用して、Amazon EMR が Amazon EC2 のリアルタイムのキャパシティインサイトに基づいて効果的にインスタンスを選択できるようにする。詳細については、「インスタンスフリートの配分戦略」を参照してください。

  • クラスターでマネージドスケーリングを有効にする。最大コアノードパラメータを、使用する予定の最小永続キャパシティに設定し、スポットインスタンスで実行される分散型タスクフリートでスケーリングを設定してコストを節約する。詳細については、「Amazon でのマネージドスケーリングの使用 EMR」を参照してください。

また、Amazon EMR ブロックパブリックアクセスを有効なままにしておき、インバウンド SSH トラフィックを信頼できるソースに制限することをお勧めします。クラスターへのインバウンドアクセスにより、ユーザーはクラスターでノートブックを実行できます。詳細については、「Amazon EMRブロックパブリックアクセスの使用」および「セキュリティグループを使用してネットワークトラフィックを制御する」を参照してください。

Amazon EMR on EKS クラスター

Amazon EC2 で実行されている EMR クラスターに加えて、 AWS CLIを使用して EMR Studio の Amazon EMR on EKS クラスターを設定および管理できます。次のガイドラインを使用して、Amazon EMR on EKS クラスターを設定します。

  • Amazon EMR on EKS クラスター用のマネージド HTTPS エンドポイントを作成します。ユーザーは Workspace をマネージドエンドポイントにアタッチします。仮想クラスターの登録に使用する Amazon Elastic Kubernetes Service (EKS) クラスターには、マネージドエンドポイントをサポートするためのプライベートサブネットが必要です。

  • パブリックにホストされた Git リポジトリを使用する場合は、少なくとも 1 つのプライベートサブネットおよび NAT を持つ Amazon EKS クラスターを使用します。

  • Amazon EKS 最適化 Arm Amazon Linux AMI は使用しないでください。これは、Amazon EMR on EKS マネージドエンドポイントではサポートされていません。

  • サポートされていない AWS Fargateのみの Amazon EKS クラスターは使用しないでください。