

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

# 混合アーキテクチャジョブの実行 (X86\_64 および ARM64)
<a name="ecs-managed-instances-multi-architecture"></a>

単一の Amazon ECS Managed Instances コンピューティング環境とジョブキューは、 `X86_64`ジョブと `ARM64` (AWS Graviton プロセッサベース) ジョブの両方を実行できます。各ジョブは、ジョブ定義で宣言された CPU アーキテクチャに一致する容量で実行されます。ジョブ定義`runtimePlatform.cpuArchitecture`で を使用してアーキテクチャを設定します。コンピューティング環境でアーキテクチャを設定しません。

混合アーキテクチャジョブを実行するには、両方のアーキテクチャをサポートするコンテナイメージ (マルチアーキテクチャイメージマニフェスト) を提供し、 を `X86_64`または `runtimePlatform.cpuArchitecture`に設定するアーキテクチャごとに 1 つのジョブ定義を登録します`ARM64`。どちらのジョブ定義のジョブも、同じジョブキューに送信できます。

```
"runtimePlatform": {
  "operatingSystemFamily": "LINUX",
  "cpuArchitecture": "ARM64"
}
```

次に、次のいずれかの方法でコンピューティング環境を設定します。
+ を省略`instanceRequirements`すると、すべてのインスタンスタイプが対象になります。
+ ジョブ`allowedInstanceTypes`が使用するすべてのアーキテクチャをカバーする を指定します。

インスタンスタイプを指定しない  
から `instanceRequirements`フィールドを省略します `managedInstancesProvider.instanceLaunchTemplate` (コンピューティング環境で使用できるインスタンスタイプを制限する設定）。すべてのインスタンスタイプが対象となり、Amazon ECS は各ジョブの に一致する容量を選択します`runtimePlatform.cpuArchitecture`。`X86_64` ジョブは x86 インスタンスで起動し、 `ARM64`ジョブは同じコンピューティング環境から AWS Graviton インスタンスで起動します。

必要なアーキテクチャをカバーするインスタンスタイプを指定する  
を設定する場合は`instanceRequirements.allowedInstanceTypes`、ジョブが宣言するすべてのアーキテクチャにインスタンスタイプを含めます。Amazon ECS は、許可するインスタンスタイプからアーキテクチャを推測します。許可されるインスタンスタイプは、各ジョブの を満たす必要があります`runtimePlatform.cpuArchitecture`。たとえば、両方のアーキテクチャを実行するには、以下を含めます。  
+ `m5` や などの x86 ファミリー `c5`
+ AWS `m7g`や などの Graviton ファミリー `c7g`

**一致するインスタンスタイプがない場合、ジョブは失敗します**  
許可されたインスタンスタイプに、ジョブの宣言されたアーキテクチャに一致するタイプが含まれていない場合、ジョブは次の理由で失敗します。  
`ResourceInitializationError: No available instance types were able to satisfy the task and placement constraints.`  
たとえば、 が x86 ファミリーのみを`allowedInstanceTypes`一覧表示し、 `ARM64` ジョブを送信すると、ジョブはこのエラーで失敗します。この問題を解決するには、Graviton インスタンスファミリーを に追加 AWS します`allowedInstanceTypes`。または、 を削除`instanceRequirements`してすべてのインスタンスタイプを許可します。