マネージド型のコンピューティング環境 - AWS Batch

マネージド型のコンピューティング環境

マネージド・コンピュート環境を使用すると、AWS Batchが環境内のコンピュートリソースの容量とインスタンス・タイプを管理できます。これは、コンピュート環境の作成時に定義したコンピュートリソースの仕様に基づいています。Amazon EC2 オンデマンドインスタンスと Amazon EC2 スポットインスタンスを使用するかを選択できます。または、マネージド型のコンピューティング環境で Fargate および Fargate スポット容量を使用することもできます。スポットインスタンスを使用する場合、オプションで上限価格を設定できます。こうすることで、スポット・インスタンスは、スポットインスタンス価格がオンデマンド価格の指定されたパーセンテージを下回った場合にのみ起動する。

重要

Fargate SpotインスタンスはWindows containers on AWS Fargateではサポートされていません。FargateWindows のジョブが、Fargate Spot のコンピュート環境のみを利用するジョブキューに投入された場合、ジョブキューはブロックされます。

重要

AWS Batch は、Amazon EC2 起動テンプレート、Amazon EC2 Auto Scaling グループ、Amazon EC2 スポットフリート、Amazon ECS クラスターなど、ユーザーに代わってアカウント内で複数の AWS リソースを作成および管理します。これらのマネージドリソースは、最適な AWS Batch オペレーションを確保するために特別に設定されています。これらのバッチマネージドリソースを手動で変更すると、AWS Batch ドキュメントに明示的に記載されていない限り、予期しない動作が発生し、INVALID コンピューティング環境、最適ではないインスタンススケーリング動作、ワークロード処理の遅延、予期しないコストが発生する可能性があります。これらの手動変更を AWS Batch サービスで決定的にサポートすることはできません。コンピューティング環境を管理するには、サポートされている Batch API または Batch コンソールを必ず使用してください。

マネージドコンピューティング環境は、指定した VPC とサブネットに Amazon EC2 インスタンスを起動し、Amazon ECS クラスターに登録します。Amazon EC2インスタンスは、Amazon ECSサービスエンドポイントと通信するために外部ネットワークアクセスが必要です。一部のサブネットでは、Amazon EC2インスタンスにパブリックIPアドレスを提供していない。Amazon EC2インスタンスがパブリックIPアドレスを持っていない場合、このアクセスを得るためにネットワークアドレス変換(NAT)を使用する必要があります。詳細については、Amazon VPC ユーザーガイドNAT ゲートウェイを参照してください。VPC の作り方の詳細については、仮想プライベートクラウドを作成する を参照してください。

デフォルトでは、AWS Batch のマネージド型のコンピューティング環境では、承認されたバージョンの Amazon ECS に最適化された最新の AMI をコンピューティングリソースに使用します。ただし、さまざまな理由により、マネージド型のコンピューティング環境で使用する AMI を独自に作成する場合もあります。詳細については、コンピューティングリソースの AMIを参照してください。

注記

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

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

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

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

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

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

  • サービスロール(serviceRole)パラメータを設定しないか、AWSServiceRoleForBatch サービス連動ロールに設定します。

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

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

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

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

マルチノード並列ジョブを作成する際の考慮事項

AWS Batch では、マルチノード並列 (MNP) ジョブおよび非MNPジョブを実行するための専用のコンピュート環境の作成が推奨されました。これは、マネージドコンピュート環境におけるコンピューティングキャパシティの作り方によるものです。マネージドコンピューティング環境を新規作成する際、minvCpu ゼロより大きい値を指定すると、AWS Batch MNP 以外のジョブでのみ使用するインスタンスプールが作成されます。マルチノード並列ジョブが送信されると、AWS Batch マルチノード並列ジョブを実行するための新しいインスタンス容量が作成されます。minvCpus または maxvCpus 値が設定されている同じコンピューティング環境で、単一ノードとマルチノードの両方の並列ジョブが実行されている場合、必要なコンピュートリソースが使用できない場合は、AWS Batch 現在のジョブが終了するのを待ってから、新しいジョブの実行に必要なコンピュートリソースを作成します。