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

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

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

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

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

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

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

  • Docker をカスタマイズする

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

注記

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

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

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

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

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

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

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

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

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

  • imageIdimageIdOverride(ec2Configuration) または起動テンプレート (launchTemplate) には AMI ID を指定しないでください。AMI ID を指定しないと、インフラストラクチャの更新が開始された時点で、AWS Batch は AWS Batch がサポートしている最新の Amazon ECS 最適化 AMIを選択します。代わりに、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を参照してください。