コンピューティング環境を更新します。
EC2 リソースを使用するコンピュート環境を作成したら、コンピュート環境の多くの設定を直接更新できます。ただし、一部の設定を変更すると、AWS Batch コンピュート環境内のインスタンスを置き換える必要があります。
AWS Fargate コンピューティング環境を更新する
Fargate リソースを使用するコンピュート環境では、以下を更新できます。
-
securityGroupIds
-
subnets
-
desiredvCpus
-
maxvCpus
-
minvCpus
AWS Batch には 2 つの更新メカニズムがあります。1 つ目は、コンピュート環境にインスタンスを追加または削除するスケーリングの更新です。2 つ目は、コンピュート環境内のインスタンスを置き換えるインフラストラクチャーの更新です。インフラストラクチャーの更新には、スケーリングの更新よりもずっと時間がかかります。
でコンピューティング環境を更新する場合 AWS Batch、必要な vCPUs ( desiredvCpus
)、最大仮想 CPU ( maxvCpus
)、最小仮vCPUs ( minvCpus
)、サービスロール ( serviceRole
)、状態 ( state
) の設定のみを変更すると、スケーリングが更新されます。
注記
desiredvCpus
設定を更新する場合、値は minvCpus
と maxvCpus
値の間になければなりません。
さらに、desiredvCpus
更新後の値は、現在の desiredvCpus
値以上にする必要があります。詳細については、desiredvCpus 設定を更新すると、エラーメッセージが表示されますを参照してください。
UpdateComputeEnvironment API アクション AWS Batch で以下の設定のいずれかが変更されると、インフラストラクチャの更新が開始されます。インフラストラクチャを更新するには、サービスロールを AWSServiceRoleForBatch (デフォルト) に設定し、割り当て戦略は、BEST_FIT_PROGRESSIVE
、SPOT_CAPACITY_OPTIMIZED
、SPOT_PRICE_CAPACITY_OPTIMIZED
または BEST_FIT
にサポートされていません。サービスロールを除いて、スケーリングアップデートで変更できる設定はすべて、インフラストラクチャーアップデートでも変更できます。
注記
ほとんどの場合、SPOT_CAPACITY_OPTIMIZED
ではなく SPOT_PRICE_CAPACITY_OPTIMIZED
を使用することをおすすめします。
インフラストラクチャーの更新中、コンピューティング環境のステータスは UPDATING
に変わります。新しいインスタンスは、更新された設定を使用して起動されます。新しいジョブは、新しいインスタンスでスケジュールされます。現在実行中のジョブは、インフラストラクチャー更新ポリシーに従ってディスパッチされます。詳細については、AWS Batch API リファレンスのUpdateComputeEnvironment とUpdatePolicy を参照してください。
UpdatePolicy
データ型では、次のシナリオを想定してください:
注記
これらのシナリオでは、以下のことが当てはまります。インスタンスが終了すると、実行中のジョブは停止します。デフォルトでは、これらのジョブは再試行されません。インスタンスが終了した後にこれらのジョブの 1 つを再試行するには、ジョブの再試行戦略を設定します。詳細については、AWS Batch ユーザーガイドの ジョブの再試行の自動化を参照してください。
-
terminateJobsOnUpdate
設定がtrue
に設定されている場合、実行中のジョブはインフラストラクチャーの更新中に終了します。このjobExecutionTimeoutMinutes
の設定は無視されます。 -
terminateJobsOnUpdate
設定がに設定されている場合、false
インフラストラクチャーの更新後にジョブを実行できる時間が長くなります。この追加時間はjobExecutionTimeoutMinutes
設定で設定されます。デフォルトは 30 分 (1800 秒) です。
コンピュート環境でキャパシティが利用可能になると、新しいインスタンスが更新された設定で起動され、新しいインスタンスでジョブが開始されます。古い設定のインスタンスで、すべてのジョブが完了すると、古いインスタンスは終了します。キャパシティが利用可能になるということは、必要な vCPUs の数が、最低でも最小のインスタンスタイプで必要な vCPUs の数を vCPUs の最大数より少なくなるということです。
インフラストラクチャの更新
コンピュート環境の一部の設定を変更するには、インフラストラクチャーの更新が必要です。以下の設定のいずれかが変更されると、インフラストラクチャーの更新が開始されます。
重要
コンピュート環境では、インフラストラクチャの更新を必要とする変更を行うには、AWSServiceRoleForBatch サービスにリンクされたロールを使用する必要があります。
コンピュート環境がサービスにリンクされたロールを使用している場合、通常の IAM ロールを使用するように変更することはできません。コンピューティング環境がサービスにリンクされたロールを使用している場合、通常の IAM ロールを使用するように変更することはできません。そのため、インフラストラクチャーの更新は、サービスにリンクされたロールを使用して作成されたコンピュート環境でのみ実行できます。
-
割り当て戦略 (
allocationStrategy
、BEST_FIT_PROGRESSIVE
、SPOT_CAPACITY_OPTIMIZED
またはSPOT_PRICE_CAPACITY_OPTIMIZED
のいずれかである必要があります。元の割り当て戦略がBEST_FIT
の場合、インフラ更新はサポートされません)。注記
ほとんどの場合、
SPOT_CAPACITY_OPTIMIZED
ではなくSPOT_PRICE_CAPACITY_OPTIMIZED
を使用することをおすすめします。 -
入札率 (
bidPercentage
) -
EC2 設定(
ec2Configuration
) -
キーペア(
ec2KeyPair
) -
イメージ ID(
imageId
) -
インスタンスロール(
instanceRole
) -
インスタンスのタイプ(
instanceTypes
) -
起動テンプレート(
launchTemplate
) -
配置グループ(
placementGroup
) -
セキュリティグループ(
securityGroupIds
) -
VPC サブネット(
subnets
) -
EC2 タグ (
tags
) -
コンピューティング環境タイプ (
type
、EC2
またはSPOT
のいずれかでも可) -
AWS Batch インフラストラクチャーの更新中にでサポートされている最新の AMI に更新するかどうか
updateToLatestImageVersion
AMI ID のアップデート
インフラストラクチャーの更新中に、これら3つの設定のいずれかでAMIが指定されているかどうかに応じて、コンピュート環境のAMI IDが変更される場合があります。AMI は imageId
(in computeResources
)、imageIdOverride
(in ec2Configuration
)、または launchTemplate
で指定されている起動テンプレートで指定されます。これらの設定のいずれにも AMI ID が指定されておらず、updateToLatestImageVersion
設定が true
であるとします。その場合、がサポートしている最新の Amazon ECS 最適化 AMI AWS Batch がインフラストラクチャの更新に使用されます。
これらの設定の少なくとも 1 つで AMI ID が指定されている場合、更新は、更新前に使用された AMI ID が提供された設定によって異なります。コンピュート環境を作成する場合、AMI ID を選択する際の優先順位は、最初に起動テンプレート、次に imageId
の設定、最後に imageIdOverride
の設定です。ただし、使用される AMI ID が起動テンプレートからのものである場合、imageId
または imageIdOverride
の設定を更新しても AMI ID は更新されません。起動テンプレートから選択した AMI ID を更新する唯一の方法は、起動テンプレートを更新することです。起動テンプレートのバージョンパラメータが $Default
または $Latest
の場合、指定された起動テンプレートのデフォルトまたは最新バージョンが評価されます。デフォルトで別の AMI ID が選択されている場合、または起動テンプレートの最新バージョンが選択されている場合、その AMI ID が更新に使用されます。
起動テンプレートを使用して AMI ID を選択しなかった場合は、imageId
または imageIdOverride
のパラメータで指定されている AMI ID が使用されます。両方を指定すると、imageIdOverride
パラメータで指定された AMI ID が使用されます。
コンピュート環境が imageId
、imageIdOverride
、または launchTemplate
パラメータで指定された AMI ID を使用しており、AWS Batch でサポートされている最新の Amazon ECS 最適化 AMI を使用するとします。次に、更新により AMI ID を提供した設定を削除する必要があります。このため imageId
、そのパラメータには空の文字列を指定する必要があります。このため imageIdOverride
、ec2Configuration
パラメータには空の文字列を指定する必要があります。
AMI ID が起動テンプレートから取得された場合は、AWS Batch次のいずれかの方法でサポートされている最新の Amazon ECS 最適化 AMI に変更できます。
-
launchTemplateId
またはlaunchTemplateName
パラメータに空の文字列を指定して、起動テンプレートを削除します。これにより、AMI ID だけではなく、起動テンプレート全体が削除されます。 -
更新バージョンの起動テンプレートで AMI ID が指定されていない場合は、
updateToLatestImageVersion
パラメータをに設定する必要がありますtrue
。