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

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

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

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

重要

Fargate スポットインスタンスは ではサポートされていません 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マネージドリソースを手動で変更すると、ドキュメントに AWS Batch 明示的に記載されていない限り、INVALIDコンピューティング環境、最適ではないインスタンススケーリング動作、ワークロード処理の遅延、予期しないコストなどの予期しない動作が発生する可能性があります。これらの手動変更は、 AWS Batch サービスで決定的にサポートすることはできません。コンピューティング環境を管理するには、必ずサポートされている AWS Batch APIsまたは AWS Batch コンソールを使用してください。

サポートされていない手動変更には、独自の Amazon ECS タスクまたはサービスオン AWS Batchマネージド Amazon ECS クラスターの実行、または追加のプロセス、デーモン、またはサービスオン AWS Batchマネージドインスタンスの直接開始が含まれます。 は、マネージドコンピューティング環境でコンピューティングリソースの完全な制御を AWS Batch 引き受け、いつでもインスタンスを終了、タスクを停止、またはクラスターをスケーリングできます。これらのマネージドリソースで AWS Batch ジョブの送信外で実行するワークロードは、警告なしに中断される可能性があります。ワークロード以外のAWS Batch 管理 AWS Batch対象クラスターやインスタンスを実行すると、 AWS 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 は、作成後にコンピューティング環境の AMIs を自動的にアップグレードしません。例えば、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 時点で でサポートされている最新の Amazon ECS 最適化 AMI AWS Batch を選択します。または、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値を指定すると、 は非 MNP ジョブでのみ使用するインスタンスプール AWS Batch を作成します。マルチノード並列ジョブが送信されると、 はマルチノード並列ジョブを実行する新しいインスタンス容量 AWS Batch を作成します。単一ノードとマルチノードの両方の並列ジョブが、 minvCpusまたは maxvCpus値が設定されている同じコンピューティング環境で実行されている場合、必要なコンピューティングリソースが使用できない場合 AWS Batch 、 は現在のジョブが終了するのを待ってから、新しいジョブを実行するために必要なコンピューティングリソースを作成します。