コンピューティング環境の作成 - AWS Batch

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

コンピューティング環境の作成

AWS Batch でジョブを実行する前に、コンピューティング環境を作成する必要があります。AWS Batch が環境内の Amazon EC2 インスタンスや AWS Fargate リソースをお客様の仕様に基づいて管理するマネージド型のコンピューティング環境を構築することができます。あるいは、アンマネージド型のコンピューティング環境を構築し、Amazon EC2 インスタンスの設定を環境内で処理することも可能です。

AWS Fargate リソースを使用してマネージド型のコンピューティング環境を作成するには

  1. を開くAWS Batchコンソールhttps://console.aws.amazon.com/batch/

  2. ナビゲーションバーから、使用するリージョンを選択します。

  3. ナビゲーションペインで、[Compute environments] (コンピューティング環境)、[Create] (作成) を選択します。

  4. 環境を設定します。

    1. [Compute environment type] (コンピューティング環境タイプ) で、[Managed] (マネージド型) を選択します。

    2. [Compute environment name] (コンピューティング環境名) では、コンピューティング環境の一意な名前を指定します。名前の長さは最大 128 文字です。大文字および小文字の ASCII 文字、数字、ハイフン(-)、アンダースコア(_)を含めることができます。

    3. [Enable compute environment] (コンピューティング環境の有効化) が選択されていて、コンピューティング環境で AWS Batch ジョブスケジューラからのジョブを受け入れることができることを確認します。

    4. 追加設定用:サービスロール、インスタンスロール、EC2 キーペア

      1. サービスロールには、バッチサービスにリンクされたロールを選択します。このロールにより、ユーザーの代わりに AWS Batch サービスから必要な AWS API オペレーションを呼び出すことを許可します。詳細については、「AWS Batch のサービスリンクロールのアクセス許可」を参照してください。

  5. インスタンス設定を行います。

    1. プロビジョニングモデルでは、Fargate オンデマンドリソースを起動する場合はFargate を、Fargate Spot リソースを使用する場合は Fargate Spot を選択します。

    2. [Maximum vPCUs] (最大 vCPU) では、ジョブキューの需要にかかわらず、コンピューティング環境でスケールアウトできる vCPU の最大数を選択します。

  6. ネットワーキングを設定します。

    重要

    コンピューティングリソースには、Amazon ECS サービスエンドポイントと通信するために外部ネットワークアクセスが必要です。これは、インターフェイス VPC エンドポイントを介して、またはパブリック IP アドレスを持つコンピューティングリソースを通じて可能になります。

    インターフェイス VPC エンドポイントの詳細については、Amazon Elastic Container Service 開発者ガイドの「Amazon ECS インターフェイス VPC エンドポイント (AWS PrivateLink)を参照してください。

    インターフェイス VPC エンドポイントが設定されておらず、コンピューティングリソースが、パブリック IP アドレスを持たない場合は、ネットワークアドレス変換 (NAT) を使用してこのアクセスを提供する必要があります。詳細については、Amazon VPC ユーザーガイドの「NAT ゲートウェイ」を参照してください。詳細については、「チュートリアル: パブリックおよびプライベートサブネットを使用した VPC の作成コンピューティング環境」を参照してください。

    1. [VPC ID] で、インスタンスを起動する先の VPC を選択します。

    2. [Subnets] (サブネット) で、選択した VPC のサブネットの中で、インスタンスをホストするサブネットを選択します。デフォルトでは、選択した VPC 内のすべてのサブネットが選択されます。

    3. (オプション) [] を展開します追加設定: セキュリティグループ、EC2 タグ

      1. [Security groups] (セキュリティグループ) で、インスタンスにアタッチするセキュリティグループを選択します。デフォルトでは、VPC のデフォルトのセキュリティグループが選択されます。

  7. (オプション) タグセクションで、コンピューティング環境に関連付ける各タグのキーと値を指定できます。詳細については、「AWS Batch リソースのタグ付け」を参照してください。

  8. [Create compute environment] (コンピューティング環境の作成) を選択して終了します。

EC2 リソースを使用して、マネージド型のコンピューティング環境を作成するには

  1. を開くAWS Batchコンソールhttps://console.aws.amazon.com/batch/

  2. ナビゲーションバーから、使用するリージョンを選択します。

  3. ナビゲーションペインで、[Compute environments] (コンピューティング環境)、[Create] (作成) を選択します。

  4. 環境を設定します。

    1. [Compute environment type] (コンピューティング環境タイプ) で、[Managed] (マネージド型) を選択します。

    2. [Compute environment name] (コンピューティング環境名) では、コンピューティング環境の一意な名前を指定します。名前の長さは最大 128 文字です。大文字および小文字の ASCII 文字、数字、ハイフン(-)、アンダースコア(_)を含めることができます。

    3. [Enable compute environment] (コンピューティング環境の有効化) が選択されていて、コンピューティング環境で AWS Batch ジョブスケジューラからのジョブを受け入れることができることを確認します。

    4. (オプション) [Additional settings: service role, instance role, EC2 key pair] (追加設定:サービスロール、インスタンスロール、EC2 キーペア) を展開します。

      1. [Service role] (サービスロール) には、[Batch service-linked role] (バッチサービスにリンクされたロール) を選択します。このロールにより、ユーザーの代わりに AWS Batch サービスから必要な AWS API オペレーションを呼び出すことを許可します。詳細については、「AWS Batch のサービスリンクロールのアクセス許可」を参照してください。

      2. インスタンスロールの場合、新しいインスタンスプロファイルを作成するか、必要な IAM アクセス許可がアタッチされた既存のプロファイルを使用するかを選択します。このインスタンスプロファイルを使用すると、コンピューティング環境用に作成した Amazon ECS コンテナインスタンスにより、必要な AWS API オペレーションを呼び出すことができます。詳細については、「Amazon ECS インスタンスロール」を参照してください。新しいインスタンスプロファイルを作成することを選択した場合は、必要なロール (ecsInstanceRole) が作成されます。

      3. [EC2 key pair] (EC2 キーペア) で、起動時にインスタンスに関連付ける既存の Amazon EC2 キーペアを選択します。このキーペアを使用して、SSH でインスタンスに接続できます。ポート 22 の受信トラフィックがセキュリティグループで許可されていることを確認します。

  5. インスタンス設定を行います。

    1. [Provisioning model] (プロビジョニングモデル) で [On-Demand] (オンデマンド) を選択して Amazon EC2 オンデマンドインスタンスを起動するか、または [Spot] (スポット) を選択して Amazon EC2 スポットインスタンスを使用します。

    2. スポットインスタンスを使用することを選択した場合:

      1. (省略可能) [Maximum % on-demand price] (上限のオンデマンド価格の割合 (%)) で、インスタンス起動前のインスタンスタイプのオンデマンド価格と対比したスポットインスタンス価格の最大パーセンテージを選択します。たとえば、上限価格が 20% の場合、その EC2 インスタンスのスポット料金は現在のオンデマンド料金の 20% 未満になる必要があります。支払い額は常に最低 (市場料金) となり、最大パーセンテージを超えることはありません。このフィールドを空のままにした場合、デフォルト値はオンデマンド料金の 100% です。

    3. [Minimum vCPUs] (最小 vCPU) では、ジョブキューの需要にかかわらず、コンピューティング環境で維持する EC2 vCPU の最小数を選択します。

    4. [Maximum vCPUs] (最大 vCPU) では、ジョブキューの需要にかかわらず、コンピューティング環境でスケールアウトできる EC2 vCPU の最大数を選択します。

    5. [Desired vCPUs] (必要な vCPU) で、コンピューティング環境の起動に必要な EC2 vCPU の数を選択します。ジョブキューの需要が増えると、AWS Batch はコンピューティング環境で必要な vCPU の数を増やし、vCPU の最大数まで EC2 インスタンスを追加できます。需要が減ると、AWS Batch はコンピューティング環境で必要な vCPU の数を減らし、vCPU の最小数までインスタンスを削減できます。

    6. [許可されたインスタンスタイプ] で、起動できる Amazon EC2 インスタンスタイプを選択します。インスタンスファミリーを指定してそのファミリー内のいずれかのインスタンスタイプ (c5c5np3 など) を起動できます。または、ファミリー内の特定のサイズ (c5.8xlarge など) を指定できます。メタルインスタンスタイプはインスタンスファミリーに含まれていません。たとえば、c5c5.metal を含んでいません。また、optimal を選択して (C4、M4、および R4 インスタンスファミリーから) ジョブキューの需要に見合ったインスタンスタイプを使用することもできます。

      注記

      コンピューティング環境を作成する際、そのコンピューティング環境で選択するインスタンスタイプで同じアーキテクチャを使用する必要があります。例えば、x86 と ARM インスタンスを同じコンピューティング環境で使用することはできません。

      注記

      AWS Batch は、ジョブキューに必要な容量に基づいて GPU をスケールします。GPU スケジューリングを使用するには、コンピューティング環境にインスタンスタイプが含まれている必要がありますp2,p3,p4,g3,g3s,g4, またはg5ファミリー。

      注記

      現在、optimal は C4、M4、および R4 インスタンスファミリーのインスタンスタイプを使用しています。これらのインスタンスファミリーのインスタンスタイプを持たないリージョンでは、C5、M5、および R5 インスタンスファミリーのインスタンスタイプが使用されます。

    7. [Allocation strategy] (配分戦略) で、許可されるインスタンスタイプのリストからインスタンスタイプを選択するときに使用する配分戦略を選択します。EC2 のオンデマンドコンピューティング環境では BEST_FIT_PROGRESSIVE を、EC2 のスポットコンピューティング環境では SPOT_CAPACITY_OPTIMIZED を選択するのが一般的です。詳細については、「配分戦略」を参照してください。

    8. (オプション) [Additional settings: launch template, user specified AMI] (追加設定:起動テンプレート、ユーザー指定の AMI) を展開します。

      1. (オプション)[Launch template] (起動テンプレート) で、既存の Amazon EC2 起動テンプレートを選択して、コンピューティングリソースを設定します。テンプレートのデフォルトバージョンは自動的に設定されます。詳細については、「起動テンプレートのサポート」を参照してください。

      2. (オプション) [Launch template version] (起動テンプレートのバージョン) では、$Default あるいは $Latest を使用するか、または起用するバージョン番号を指定します。

        重要

        コンピューティング環境の作成後、起動テンプレートの $Default または $Latest バージョンが更新されていても、使用する起動テンプレートのバージョンは変更されません。新しい起動テンプレートのバージョンを使用するには、新しいコンピューティング環境を作成し、新しいコンピューティング環境を既存のジョブキューに追加します。また、古いコンピューティング環境をジョブキューから削除し、古いコンピューティング環境を削除します。

      3. (オプション) [Enable user-specified AMI ID] (ユーザー指定の AMI ID を有効にします) にチェックを入れて、独自のカスタム AMI を使用します。デフォルトでは、AWS Batch のマネージド型のコンピューティング環境では、承認されたバージョンの Amazon ECS に最適化された最新の AMI をコンピューティングリソースに使用します。コンピューティング環境で独自の AMI を作成して使用する場合は、コンピューティングリソースの AMI 仕様に従う必要があります。詳細については、「コンピューティングリソースの AMI」を参照してください。

        注記

        コンピューティング環境用に選択する AMI は、そのコンピューティング環境で使用するインスタンスタイプのアーキテクチャと一致している必要があります。たとえば、コンピューティング環境で A1 インスタンスタイプを使用する場合、選択するコンピューティングリソース AMI で ARM インスタンスをサポートしている必要があります。Amazon ECS は、Amazon ECS に最適化された Amazon Linux 2 AMI の、x86 と ARM の両バージョンを提供しています。詳細については、Amazon Elastic Container Service デベロッパーガイドの「Amazon ECS に最適化された Amazon Linux 2 AMI」を参照してください。

        1. [AMI ID] にはカスタム AMI ID を貼り付け、[Validate AMI] (AMI の検証) を選択します。

      4. (オプション) [EC2 configuration] (EC2 設定) では、AWS Batch がコンピューティング環境のインスタンスにAmazon Machine Images (AMI) を選択するための情報を提供するために、[Image type] (イメージタイプ) と[Image ID Override] (イメージ ID オーバーライド) の値を選択します。各[Image type] (イメージタイプ) で[Image ID override] (イメージ ID のオーバーライド) が指定されていない場合、AWS Batch は Amazon ECS に最適化された AMI を選択します。[Image type] (イメージタイプ) を指定しない場合、デフォルトは非 GPU、非 AWS Graviton インスタンス用の Amazon Linux になります。将来的には、このデフォルトはすべての非 GPU インスタンスで Amazon Linux 2 に変更されます。

        Amazon Linux 2

        すべての AWS Graviton ベースのインスタンスファミリー (C6gM6gR6gおよびT4gなど) のデフォルトで、すべての非 GPU インスタンスタイプに使用できます。

        Amazon Linux 2 (GPU)

        すべての GPU インスタンスファミリー (P4 および G4 など) のデフォルトで、非 AWS Graviton ベースのすべてのインスタンスタイプに使用できます。

        Amazon Linux

        すべての非 GPU、非 AWS Graviton インスタンスファミリーのデフォルトです。Amazon Linux の標準サポートは終了しました。詳細については、Amazon Linux AMI を参照してください。

  6. ネットワーキングを設定します。

    重要

    コンピューティングリソースには、Amazon ECS サービスエンドポイントと通信するために外部ネットワークアクセスが必要です。これは、インターフェイス VPC エンドポイントを介して、またはパブリック IP アドレスを持つコンピューティングリソースを通じて可能になります。

    インターフェイス VPC エンドポイントの詳細については、Amazon Elastic Container Service 開発者ガイドの「Amazon ECS インターフェイス VPC エンドポイント (AWS PrivateLink)を参照してください。

    インターフェイス VPC エンドポイントが設定されておらず、コンピューティングリソースが、パブリック IP アドレスを持たない場合は、ネットワークアドレス変換 (NAT) を使用してこのアクセスを提供する必要があります。詳細については、Amazon VPC ユーザーガイドの「NAT ゲートウェイ」を参照してください。詳細については、「チュートリアル: パブリックおよびプライベートサブネットを使用した VPC の作成コンピューティング環境」を参照してください。

    1. [VPC ID] で、インスタンスを起動する先の VPC を選択します。

    2. [Subnets] (サブネット) で、選択した VPC のサブネットの中で、インスタンスをホストするサブネットを選択します。デフォルトでは、選択した VPC 内のすべてのサブネットが選択されます。

    3. (オプション) [] を展開します追加設定: セキュリティグループ、EC2 タグ

      1. [Security groups] (セキュリティグループ) で、インスタンスにアタッチするセキュリティグループを選択します。デフォルトでは、VPC のデフォルトのセキュリティグループが選択されます。

      2. (オプション) EC2 タグでは、オンデマンドインスタンスで使用される Amazon EC2 インスタンスにタグ付けできます。たとえば、タグとして "Name": "AWS Batch Instance - C4OnDemand" を指定し、その名前をコンピューティング環境の各インスタンスに使用できます。これは、Amazon EC2 コンソールで AWS Batch インスタンスを認識する際に役立ちます。

        注記

        Fargate または Fargate Spot のプロビジョニングモデルを使用する場合、EC2 タグは使用できません。

  7. (オプション) タグセクションで、コンピューティング環境に関連付ける各タグのキーと値を指定できます。詳細については、「AWS Batch リソースのタグ付け」を参照してください。

  8. [Create compute environment] (コンピューティング環境の作成) を選択して終了します。

EC2 リソースを使用して、アンマネージド型のコンピューティング環境を作成するには

  1. を開くAWS Batchコンソールhttps://console.aws.amazon.com/batch/

  2. ナビゲーションバーから、使用するリージョンを選択します。

  3. ナビゲーションペインで、[Compute environments] (コンピューティング環境)、[Create environment] (環境の作成) を選択します。

  4. [Compute environment type] (コンピューティング環境タイプ) で、[Unmanaged] (アンマネージド型) を選択します。

  5. [Compute environment name] (コンピューティング環境名) では、コンピューティング環境の一意な名前を指定します。名前の最大長は 128 文字です。大文字および小文字の ASCII 文字、数字、ハイフン(-)、アンダースコア(_)を含めることができます。

  6. [‭Service role] (サービスロール) には、[‭Batch service-linked role] (バッチサービスにリンクされたロール) を選択します。このロールにより、ユーザーの代わりに AWS Batch サービスから必要な AWS API オペレーションを呼び出すことを許可します。詳細については、「AWS Batch のサービスリンクロールのアクセス許可」を参照してください。

  7. [Enable compute environment] (コンピューティング環境の有効化) が選択されていて、コンピューティング環境で AWS Batch ジョブスケジューラからのジョブを受け入れることができることを確認します。

  8. [Create] (作成) を選択して終了します。

  9. (オプション) 関連付けられたクラスターの Amazon ECS クラスター ARN を取得します。次の AWS CLI コマンドは、コンピューティング環境の Amazon ECS クラスター ARN を提供します。

    aws batch describe-compute-environments --compute-environments unmanagedCE --query "computeEnvironments[].ecsClusterArn"
  10. (オプション) 関連付けられた Amazon ECS クラスター内でコンテナインスタンスを起動します。詳細については、「」を参照してください。Amazon ECS コンテナインスタンスの起動Amazon Elastic Container Service 開発者。コンピューティングリソースを起動する際は、以下の Amazon EC2 ユーザーデータに登録される Amazon ECS クラスターの ARN を指定します。ecsClusterArn を、前のコマンドで取得したクラスター ARN に置き換えます。

    #!/bin/bash echo "ECS_CLUSTER=ecsClusterArn" >> /etc/ecs/ecs.config
    注記

    アンマネージド型のコンピューティング環境では、コンピューティングリソースを手動で起動するまで、コンピューティングリソースは利用できません。