View a markdown version of this page

混合アーキテクチャジョブの実行 (X86_64 および ARM64) - AWS Batch

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

混合アーキテクチャジョブの実行 (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.cpuArchitectureX86_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してすべてのインスタンスタイプを許可します。