

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

# Amazon EMR Serverless アーキテクチャオプション
<a name="architecture"></a>

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

**Topics**
+ [x86\$164 アーキテクチャの使用](#x86)
+ [arm64 アーキテクチャの使用 (Graviton)](#arm64)
+ [Graviton サポートによる新しいアプリケーションの起動](#arm64-new)
+ [Graviton を使用するように既存のアプリケーションを設定する](#arm64-existing)
+ [Graviton を使用するときの考慮事項](#arm64-considerations)

## x86\$164 アーキテクチャの使用
<a name="x86"></a>

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

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

## arm64 アーキテクチャの使用 (Graviton)
<a name="arm64"></a>

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

## Graviton サポートによる新しいアプリケーションの起動
<a name="arm64-new"></a>

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

------
#### [ AWS CLI ]

Graviton プロセッサを使用してアプリケーションを起動するには AWS CLI、 `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 を使用するように既存のアプリケーションを設定する
<a name="arm64-existing"></a>

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

**既存のアプリケーションを x86 から arm64 に変換するには**

1. `architecture` パラメータをサポートする [AWS CLI/SDK](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/emr-serverless/index.html#cli-aws-emr-serverless) の最新バージョンを使用していることを確認します。

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

   ```
   aws emr-serverless stop-application \
    --application-id application-id \
    --region us-west-2
   ```

1.  Graviton を使用するようにアプリケーションを更新するには、`update-application` API の `architecture` パラメータに `ARM64` を指定します。

   ```
   aws emr-serverless update-application \
    --application-id application-id \
    --architecture 'ARM64' \
    --region us-west-2
   ```

1. アプリケーションの CPU アーキテクチャが ARM64 になったことを確認するには、`get-application` API を使用します。

   ```
   aws emr-serverless get-application \
    --application-id application-id \
    --region us-west-2
   ```

1. 準備ができたら、アプリケーションを再起動します。

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

## Graviton を使用するときの考慮事項
<a name="arm64-considerations"></a>

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

### ライブラリの互換性
<a name="arm64-prereqs-library"></a>

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

詳細については、GitHub の[「AWS Graviton 入門リポジトリ](https://github.com/aws/aws-graviton-getting-started)」を参照してください。このリポジトリには、ARM ベースの Graviton の使用開始に役立つ重要なリソースが含まれています。