翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
混合アーキテクチャジョブの実行 (X86_64 および ARM64)
単一の 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してすべてのインスタンスタイプを許可します。