コンピューティング環境を更新します。 - AWS Batch

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

コンピューティング環境を更新します。

EC2 リソースを使用するコンピュート環境を作成したら、コンピュート環境の多くの設定を直接更新できます。ただし、一部の設定を変更すると、AWS Batch コンピュート環境内のインスタンスを置き換える必要があります。

Fargate リソースを使用するコンピュート環境では、以下を更新できます。

  • securityGroupIds

  • subnets

  • desiredvCpus

  • maxvCpus

  • minvCpus

AWS Batch には 2 つの更新メカニズムがあります。1 つ目は、コンピュート環境にインスタンスを追加または削除するスケーリングの更新です。2 つ目は、コンピュート環境内のインスタンスを置き換えるインフラストラクチャーの更新です。インフラストラクチャーの更新には、スケーリングの更新よりもずっと時間がかかります。

でコンピューティング環境を更新する場合 AWS Batch、必要な vCPUs ( desiredvCpus )、最大仮想 CPU ( maxvCpus )、最小仮vCPUs ( minvCpus )、サービスロール ( serviceRole )、状態 ( state ) の設定のみを変更すると、スケーリングが更新されます。

注記

desiredvCpus 設定を更新する場合、値は minvCpusmaxvCpus 値の間になければなりません。

さらに、desiredvCpus 更新後の値は、現在の desiredvCpus 値以上にする必要があります。詳細については、desiredvCpus 設定を更新すると、エラーメッセージが表示されますを参照してください。

UpdateComputeEnvironment API アクション AWS Batch で以下の設定のいずれかが変更されると、インフラストラクチャの更新が開始されます。インフラストラクチャを更新するには、サービスロールを AWSServiceRoleForBatch (デフォルト) に設定し、割り当て戦略は、BEST_FIT_PROGRESSIVESPOT_CAPACITY_OPTIMIZEDSPOT_PRICE_CAPACITY_OPTIMIZED または BEST_FIT にサポートされていません。サービスロールを除いて、スケーリングアップデートで変更できる設定はすべて、インフラストラクチャーアップデートでも変更できます。

注記

ほとんどの場合、SPOT_CAPACITY_OPTIMIZED ではなく SPOT_PRICE_CAPACITY_OPTIMIZED を使用することをおすすめします。

インフラストラクチャーの更新中、コンピューティング環境のステータスは UPDATING に変わります。新しいインスタンスは、更新された設定を使用して起動されます。新しいジョブは、新しいインスタンスでスケジュールされます。現在実行中のジョブは、インフラストラクチャー更新ポリシーに従ってディスパッチされます。詳細については、AWS Batch API リファレンスのUpdateComputeEnvironmentUpdatePolicy を参照してください。

UpdatePolicy データ型では、次のシナリオを想定してください:

注記

これらのシナリオでは、以下のことが当てはまります。インスタンスが終了すると、実行中のジョブは停止します。デフォルトでは、これらのジョブは再試行されません。インスタンスが終了した後にこれらのジョブの 1 つを再試行するには、ジョブの再試行戦略を設定します。詳細については、AWS Batch ユーザーガイドの ジョブの再試行の自動化を参照してください。

  • terminateJobsOnUpdate 設定が true に設定されている場合、実行中のジョブはインフラストラクチャーの更新中に終了します。この jobExecutionTimeoutMinutes の設定は無視されます。

  • terminateJobsOnUpdate 設定がに設定されている場合、false インフラストラクチャーの更新後にジョブを実行できる時間が長くなります。この追加時間は jobExecutionTimeoutMinutes 設定で設定されます。デフォルトは 5 分 (300 秒) です。

コンピュート環境でキャパシティが利用可能になると、新しいインスタンスが更新された設定で起動され、新しいインスタンスでジョブが開始されます。古い設定のインスタンスで、すべてのジョブが完了すると、古いインスタンスは終了します。キャパシティが利用可能になるということは、必要な vCPUs の数が、最低でも最小のインスタンスタイプで必要な vCPUs の数を vCPUs の最大数より少なくなるということです。

インフラストラクチャの更新

コンピュート環境の一部の設定を変更するには、インフラストラクチャーの更新が必要です。以下の設定のいずれかが変更されると、インフラストラクチャーの更新が開始されます。

重要

コンピュート環境では、インフラストラクチャの更新を必要とする変更を行うには、AWSServiceRoleForBatch サービスにリンクされたロールを使用する必要があります。

コンピュート環境がサービスにリンクされたロールを使用している場合、通常の IAM ロールを使用するように変更することはできません。コンピューティング環境がサービスにリンクされたロールを使用している場合、通常の IAM ロールを使用するように変更することはできません。そのため、インフラストラクチャーの更新は、サービスにリンクされたロールを使用して作成されたコンピュート環境でのみ実行できます。

  • 割り当て戦略 (allocationStrategyBEST_FIT_PROGRESSIVESPOT_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)()

  • コンピューティング環境タイプ (typeEC2 または 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 が使用されます。

コンピュート環境が imageIdimageIdOverride、または launchTemplate パラメータで指定された AMI ID を使用しており、AWS Batch でサポートされている最新の Amazon ECS 最適化 AMI を使用するとします。次に、更新により AMI ID を提供した設定を削除する必要があります。このため imageId、そのパラメータには空の文字列を指定する必要があります。このため imageIdOverrideec2Configuration パラメータには空の文字列を指定する必要があります。

AMI ID が起動テンプレートから取得された場合は、AWS Batch次のいずれかの方法でサポートされている最新の Amazon ECS 最適化 AMI に変更できます。

  • launchTemplateId または launchTemplateName パラメータに空の文字列を指定して、起動テンプレートを削除します。これにより、AMI ID だけではなく、起動テンプレート全体が削除されます。

  • 更新バージョンの起動テンプレートで AMI ID が指定されていない場合は、updateToLatestImageVersion パラメータをに設定する必要があります true