Amazon EMR Serverless アーキテクチャオプション
Amazon EMR Serverless アプリケーションの命令セットアーキテクチャは、アプリケーションがジョブの実行に使用するプロセッサのタイプを決定します。Amazon EMR には、x86_64 と arm64 の 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 アーキテクチャを使用するアプリケーションを起動するには、次のいずれかの方法を使用します。
Graviton を使用するように既存のアプリケーションを設定する
SDK、AWS CLI または EMR Studio で Graviton (arm64) アーキテクチャを使用するように既存の Amazon EMR Serverless アプリケーションを設定できます。
既存のアプリケーションを x86 から arm64 に変換するには
-
architecture
パラメータをサポートする AWS CLI/SDKの最新バージョンを使用していることを確認します。 -
実行中のジョブがないことを確認してから、アプリケーションを停止します。
aws emr-serverless stop-application \ --application-id
application-id
\ --regionus-west-2
-
Graviton を使用するようにアプリケーションを更新するには、
update-application
API のarchitecture
パラメータにARM64
を指定します。aws emr-serverless update-application \ --application-id
application-id
\ --architecture 'ARM64' \ --regionus-west-2
-
アプリケーションの CPU アーキテクチャが ARM64 になったことを確認するには、
get-application
API を使用します。aws emr-serverless get-application \ --application-id
application-id
\ --regionus-west-2
-
準備ができたら、アプリケーションを再起動します。
aws emr-serverless start-application \ --application-id
application-id
\ --regionus-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