Amazon EMR Serverless アーキテクチャオプション - Amazon EMR

Amazon EMR Serverless アーキテクチャオプション

Amazon EMR Serverless アプリケーションの命令セットアーキテクチャは、アプリケーションがジョブの実行に使用するプロセッサのタイプを決定します。Amazon EMR には、x86_64arm64 の 2 つのアーキテクチャオプションがあります。EMR Serverless は、最新世代のインスタンスが利用可能になると自動的に更新されるため、追加の労力を必要とせずにアプリケーションで新しいインスタンスを使用できます。

x86_64 アーキテクチャの使用

x86_64 アーキテクチャは、x86 64 ビットまたは x64 とも呼ばれます。x86_64 は EMR Serverless アプリケーションのデフォルトオプションです。このアーキテクチャは x86 ベースのプロセッサを使用し、ほとんどのサードパーティーのツールやライブラリと互換性があります。

ほとんどのアプリケーションは x86 ハードウェアプラットフォームと互換性があり、デフォルトの x86_64 アーキテクチャで正常に稼働できます。ただし、アプリケーションが 64 ビット ARM と互換性がある場合は、arm64 に切り替えて Graviton プロセッサを使用しパフォーマンス、コンピューティングパワー、メモリを向上させることができます。x86 アーキテクチャで同じサイズのインスタンスを実行する場合よりも、arm64 アーキテクチャでインスタンスを実行する方がコストが低減されます。

arm64 アーキテクチャの使用 (Graviton)

AWS Graviton プロセッサは、64 ビット ARM Neoverse コアを使用して AWS によってカスタム設計され、arm64 アーキテクチャ (Arch64 または 64 ビット ARM とも呼ばれます) を利用します。EMR Serverless で利用可能なプロセッサの AWS Graviton ラインには、Graviton3 および Graviton2 プロセッサが含まれます。これらのプロセッサは、x86_64 アーキテクチャで実行される同等のワークロードと比較して、Spark および Hive ワークロードに対して優れた価格パフォーマンスを実現します。EMR Serverless は、最新世代のプロセッサにアップグレードするために、ユーザー側の労力を必要とせずに、最新世代のプロセッサを自動的に使用します。

Graviton サポートによる新しいアプリケーションの起動

arm64 アーキテクチャを使用するアプリケーションを起動するには、次のいずれかの方法を使用します。

AWS CLI

AWS CLI から Graviton プロセッサを使用してアプリケーションを起動するには、create-application API の architecture パラメータとして ARM64 を指定します。他のパラメータでアプリケーションに適した値を指定します。

aws emr-serverless create-application \ --name my-graviton-app \ --release-label emr-6.8.0 \ --type "SPARK" \ --architecture "ARM64" \ --region us-west-2
EMR Studio

EMR Studio から Graviton プロセッサを使用してアプリケーションを起動するには、アプリケーションを作成または更新するときにアーキテクチャオプションとして [arm64] を選択します。

Graviton を使用するように既存のアプリケーションを設定する

SDK、AWS CLI または EMR Studio で Graviton (arm64) アーキテクチャを使用するように既存の Amazon EMR Serverless アプリケーションを設定できます。

既存のアプリケーションを x86 から arm64 に変換するには
  1. architecture パラメータをサポートする AWS CLI/SDK の最新バージョンを使用していることを確認します。

  2. 実行中のジョブがないことを確認してから、アプリケーションを停止します。

    aws emr-serverless stop-application \ --application-id application-id \ --region us-west-2
  3. Graviton を使用するようにアプリケーションを更新するには、update-application API の architecture パラメータに ARM64 を指定します。

    aws emr-serverless update-application \ --application-id application-id \ --architecture 'ARM64' \ --region us-west-2
  4. アプリケーションの CPU アーキテクチャが ARM64 になったことを確認するには、get-application API を使用します。

    aws emr-serverless get-application \ --application-id application-id \ --region us-west-2
  5. 準備ができたら、アプリケーションを再起動します。

    aws emr-serverless start-application \ --application-id application-id \ --region us-west-2

Graviton を使用するときの考慮事項

Graviton をサポートするために arm64 を使用して EMR Serverless アプリケーションを起動する前に、以下の内容を確認してください。

ライブラリの互換性

アーキテクチャオプションとして Graviton (arm64) を選択する場合は、サードパーティーのパッケージとライブラリが 64 ビット ARM アーキテクチャと互換性があることを確認してください。選択したアーキテクチャと互換性のある Python 仮想環境に Python ライブラリをパッケージ化する方法については、「EMR Serverless での Python ライブラリの使用」を参照してください。

64 ビット ARM を使用するように Spark または Hive ワークロードを設定する方法の詳細については、GitHub の「AWS Graviton Getting Started」リポジトリを参照してください。このリポジトリには、ARM ベースの Graviton の使用開始に役立つ重要なリソースが含まれています。