コンピューティングリソースの AMI - AWS Batch

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

コンピューティングリソースの AMI

デフォルトでは、 AWS Batch マネージド型コンピューティング環境は、承認された最新バージョンの Amazon ECS 最適化 AMI をコンピュートリソースに使用します。ただし、マネージド型およびアンマネージド型のコンピューティング環境で使用する AMI を独自に作成することもできます。次のいずれかが必要な場合は、独自の AMI を作成することをお勧めします。

  • AMI のルートまたはデータボリュームのストレージサイズを増やす

  • サポートされている Amazon EC2 インスタンスタイプのインスタンスストレージボリュームを追加する

  • Amazon ECS コンテナエージェントをカスタマイズする

  • Docker をカスタマイズする

  • サポートされている Amazon EC2 インスタンスタイプで、コンテナから GPU ハードウェアにアクセスできるように GPU ワークロードの AMI を設定する

注記

コンピューティング環境を作成した後は、コンピューティング環境の AMI AWS Batch をアップグレードしません。 AWS Batch また、Amazon ECS に最適化された AMI の新しいバージョンが利用可能になっても、コンピューティング環境の AMI は更新されません。ゲストオペレーティングシステムの管理はユーザーの責任です。これには、アップデートとセキュリティパッチが含まれます。また、コンピューティングリソースにインストールするその他のアプリケーションソフトウェアやユーティリティについても責任を負うものとします。 AWS Batch ジョブに新しい AMI を使用するには、次の手順を実行します。

  1. 新しい AMI を使用して新しいコンピューティング環境を作成します。

  2. コンピューティング環境を既存のジョブキューに追加します。

  3. 古いコンピューティング環境をジョブキューから削除します。

  4. 以前のコンピューティング環境を削除します。

2022 年 4 月に AWS Batch 、コンピューティング環境の更新サポートが強化されました。詳細については、「コンピューティング環境を更新します。」を参照してください。コンピューティング環境の拡張アップデートを使用して AMI を更新するには、次のルールに従います。

  • service role (serviceRole) パラメーターを設定しないか、AWSServiceRoleForBatchサービスにリンクされたロールに設定してください。

  • 割り当て戦略 (allocationStrategy) パラメータを BEST_FIT_PROGRESSIVESPOT_CAPACITY_OPTIMIZED、または SPOT_PRICE_CAPACITY_OPTIMIZED に設定します。

  • 最新のイメージバージョンへの更新 (updateToLatestImageVersion) パラメータを true に設定します。

  • imageIdimageIdOverride(ec2Configuration) または起動テンプレート (launchTemplate) には AMI ID を指定しないでください。AMI ID を指定しない場合は、 AWS Batch インフラストラクチャの更新が開始された時点でサポートされる最新の Amazon ECS 最適化 AMI AWS Batch を選択します。代わりに、imageId または imageIdOverride パラメータを使用してAMI IDを指定できます。あるいは、LaunchTemplate プロパティによって識別される起動テンプレートを指定できます。これらのプロパティのいずれかを変更すると、インフラストラクチャの更新が開始されます。AMI ID が起動テンプレートで指定されている場合、imageId または imageIdOverride パラメータで AMI ID を指定しても AMI ID を置き換えることはできません。AMI ID は、別の起動テンプレートを指定することでのみ置き換えることができます。起動テンプレートのバージョンが $Default または $Latest に設定されている場合、AMI ID は起動テンプレートの新しいデフォルトバージョンを設定 ($Default の場合) するか、起動テンプレートに新しいバージョンを追加 ($Latest の場合) することで置き換えることができます。

これらのルールに従うと、インフラストラクチャの更新を開始する更新により、AMI ID が再選択されます。起動テンプレート (launchTemplate) の version 設定が $Latest または $Default に設定されている場合、launchTemplate が更新されていなくても、起動テンプレートの最新バージョンまたはデフォルトバージョンがインフラストラクチャの更新時に評価されます。

コンピューティングリソースの AMI 仕様

AWS Batch 基本的なコンピュートリソースAMI 仕様は以下のとおりです。

必須

  • HVM 仮想化タイプの AMI で、バージョン 3.10 以上の Linux カーネルを実行している最新の Linux ディストリビューション。Windows コンテナはサポートされていません。

    重要

    マルチノードの並列ジョブは、ecs-init パッケージがインストールされた Amazon Linux インスタンスで起動されたコンピューティングリソースでのみ実行できます。コンピューティング環境を作成するときに、デフォルトの Amazon ECS 最適化 AMI を使用することが推奨されます。これを行うには、カスタム AMI を指定しません。詳細については、マルチノードの並列ジョブを参照してください。

  • Amazon ECS コンテナエージェント。最新バージョンの使用をお勧めします。詳細については、Amazon Elastic Container Service デベロッパーガイドAmazon ECS コンテナエージェントのインストールを参照してください。

  • awslogs ログドライバは、Amazon ECS コンテナエージェントが開始するときの ECS_AVAILABLE_LOGGING_DRIVERS 環境変数として利用可能なログドライバとして指定する必要があります。詳細については、Amazon Elastic Container Service デベロッパーガイドのAmazon ECS コンテナエージェントの構成を参照してください。

  • バージョン 1.9 以上を実行する Docker デーモン、および Docker ランタイムの依存関係。詳細については、Docker ドキュメントのランタイムの依存関係を確認するを参照してください。

    注記

    対応する Amazon ECS エージェントバージョンに同梱されており、そのバージョンでテストされた Docker バージョンをお勧めします。Amazon ECS は、上の Amazon ECS に最適化された AMI の Linux バリアントの変更ログを提供しています。 GitHub詳細については、「Changelog」を参照してください。

推奨

  • Amazon ECS エージェントを実行およびモニタリングするための初期化およびナニープロセス。Amazon ECS に最適化した AMI は ecs-init 起動プロセスを使用し、その他のオペレーティングシステムは systemd を使用する場合があります。詳細については、Amazon Elastic Container Service 開発者ガイドのコンテナインスタンスのユーザーデータ設定スクリプトの例を参照してください。の詳細についてはecs-init、のプロジェクトを参照してください。ecs-init GitHub少なくとも、マネージド型のコンピューティング環境ではブート時に Amazon ECS エージェントをスタートする必要があります。Amazon ECS エージェントがコンピューティングリソースで実行されていない場合、 AWS Batchそのエージェントはからのジョブを受け入れることができません。

Amazon ECS に最適化された AMI は、これらの要件および推奨事項に従って事前設定されています。コンピューティングリソースには、Amazon ECS に最適化された AMI または ecs-init パッケージがインストールされた Amazon Linux AMI を使用することをお勧めします。アプリケーションに特定のオペレーティングシステムや、その AMI でまだ使用できない Docker バージョンが必要な場合は、別の AMI を選択します。詳細については、Amazon Elastic Container Service デベロッパーガイドAmazon ECS に最適化された AMIを参照してください。