コンピューティング環境の作成 - 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. ナビゲーションペインで、[コンピューティング環境]、[作成] の順に選択します。

  4. 環境を設定します。

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

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

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

    4. [Additional settings (追加設定)] で、サービスロール、インスタンスロールEC2 キーペアを指定します。

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

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

    1. [プロビジョニングモデル] で、[Fargate] を選択してFargateオンデマンドリソースを起動するか、[Fargate Spot] を選択してFargateスポットリソースを使用します。

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

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

    重要

    コンピューティングリソースは、Amazon ECS サービスエンドポイントと通信するためのアクセス権限を必要とします。この操作は、インターフェイス VPC エンドポイントを通じて、またはパブリック IP アドレスを持つコンピューティングリソースを通じて実行することができます。

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

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

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

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

    3. (オプション) [Additional settings (追加設定)] を展開します。[Security groups (セキュリティグループEC2 tags (EC2 タグ)] の順に選択します。

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

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

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

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

  1. で AWS Batch コンソールを開きます。。https://console.aws.amazon.com/batch/

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

  3. ナビゲーションペインで、[コンピューティング環境]、[作成] の順に選択します。

  4. 環境を設定します。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      注記

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

      注記

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

      注記

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

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

    8. (オプション) [Additional settings (追加設定)] を展開します。起動テンプレート、ユーザーが指定した AMI。

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

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

        重要

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

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

        注記

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

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

      4. (オプション) [EC2 configuration (EC2 設定)] で、[Image type (イメージタイプ)] と [Image ID override values (イメージ ID 上書き値)] を選択して、 がコンピューティング環境内のインスタンスに Amazon マシンイメージ (AMIs) を選択AWS Batchするための情報を提供します。[Image ID override (イメージ ID オーバーライド)] がイメージタイプAWS Batchごとに指定されていない場合、 は最近Amazon ECS最適化された AMI を選択します。[Image type (イメージタイプ)] を指定しない場合、デフォルトでは GPU 以外の、Graviton 以外のインスタンスの Amazon LinuxAWS が使用されます。今後、このデフォルトは GPU 以外のすべてのインスタンスで Amazon Linux 2 に変更されます。

        Amazon Linux 2

        すべての AWS Graviton ベースのインスタンスファミリー (C6g、、、 などM6g) R6gのデフォルトでありT4g、GPU 以外のすべてのインスタンスタイプに使用できます。

        Amazon Linux 2 (GPU)

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

        Amazon Linux

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

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

    重要

    コンピューティングリソースは、Amazon ECS サービスエンドポイントと通信するためのアクセス権限を必要とします。この操作は、インターフェイス VPC エンドポイントを通じて、またはパブリック IP アドレスを持つコンピューティングリソースを通じて実行することができます。

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

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

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

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

    3. (オプション) [Additional settings (追加設定)] を展開します。[Security groups (セキュリティグループ)]、[EC2 tags (EC2 タグ)] の順に選択します。

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

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

        注記

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

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

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

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

  1. で AWS Batch コンソールを開きます。。https://console.aws.amazon.com/batch/

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

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

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

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

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

  7. [コンピューティング環境の有効化] が選択されていて、コンピューティング環境で 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 コンテナインスタンスhttps://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_container_instance.htmlの起動」を参照してくださいAmazon Elastic Container Service Developer Guide。コンピューティングリソースを起動する際は、以下の Amazon ECS ユーザーデータに登録される Amazon EC2 クラスターの ARN を指定します。置換 ecsClusterArn 前のコマンドで取得したクラスター ARN に置き換えます。

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

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