AWS Batch
ユーザーガイド

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

AWS Batch でジョブを実行する前に、コンピューティング環境を作成する必要があります。マネージド型のコンピューティング環境を作成すると、環境内のインスタンスは、ユーザーの仕様に基づいて AWS Batch で管理できます。アンマネージド型のコンピューティング環境を作成すると、環境内のインスタンス設定はユーザーが処理します。

マネージド型のコンピューティング環境を作成するには

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

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

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

  4. 環境を設定します。

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

    2. [コンピューティング環境名] では、コンピューティング環境の一意な名前を指定します。最大 128 文字までの英字 (大文字と小文字)、数字、ハイフン、下線を使用できます。

    3. [サービスロール] では、新しいロールを作成するか、または既存のロールを使用するかを選択します。このロールにより、ユーザーの代わりに AWS Batch サービスから必要な AWS API を呼び出すことを許可します。詳細については、「AWS Batch サービスの IAM ロール」を参照してください。新しいロールを作成することを選択した場合は、必要なロール (AWSBatchServiceRole) が自動的に作成されます。

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

    5. [EC2 キーペア] で、起動時にインスタンスに関連付ける既存の Amazon EC2 キーペアを選択します。このキーペアにより、SSH を使用してインスタンスに接続できます (セキュリティグループがポート 22 への進入を許可することを確認します)。

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

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

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

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

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

      2. [スポットフリートロール] では、既存の Amazon EC2 スポットフリート IAM ロールを選択してスポットコンピューティング環境に適用します。既存の Amazon EC2 スポットフリート IAM ロールが存在しない場合には、まずこのロールを作成する必要があります。詳細については、「Amazon EC2 スポットフリートロール」を参照してください。

        重要

        作成時にスポットインスタンスにタグを付けるには (「ステップ 7」を参照)、Amazon EC2 スポットフリートの IAM ロールは、より新しい AmazonEC2SpotFleetTaggingRole 管理ポリシーを使用する必要があります。AmazonEC2SpotFleetRole 管理ポリシーには、スポットインスタンスにタグを付けるために必要なアクセス許可はありません。詳細については、「作成時にタグが付けられていないスポットインスタンス」を参照してください。

    3. [Allowed instance types] で、起動できる Amazon EC2 インスタンスタイプを選択します。インスタンスファミリーを指定してそのファミリー内のいずれかのインスタンスタイプ (c4p3 など) を起動できます。または、ファミリー内の特定のサイズ (c4.8xlarge など) を指定できます。また、optimal を選択して (最新の C、M、および R インスタンスファミリーから) ジョブキューの需要に見合ったインスタンスタイプをオンザフライで使用することもできます。

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

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

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

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

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

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

    重要

    には、Amazon ECS サービスエンドポイントと通信するために外部ネットワークアクセスが必要なため、にパブリック IP アドレスがない場合は、NAT (ネットワークアドレス変換) を使用してこのアクセスを提供する必要があります。詳細については、Amazon VPC ユーザーガイドの「NAT ゲートウェイ」を参照してください。詳細については、「チュートリアル: のパブリックサブネットとプライベートサブネットを持つ VPC を作成する」を参照してください。

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

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

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

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

  8. [Create ] を選択して終了します。

アンマネージド型のコンピューティング環境を作成するには

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

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

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

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

  5. [コンピューティング環境名] では、コンピューティング環境の一意な名前を指定します。最大 128 文字までの英字 (大文字と小文字)、数字、ハイフン、下線を使用できます。

  6. [サービスロール] で、新しいロールを作成するか、既存のロールを使用することを選択し、AWS Batch サービスがユーザーに代わって必要な AWS API を呼び出せるようにします。詳細については、「AWS Batch サービスの IAM ロール」を参照してください。新しいロールを作成することを選択した場合は、必要なロール (AWSBatchServiceRole) が自動的に作成されます。

  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 コンテナインスタンスの起動」 (Amazon Elastic Container Service Developer Guide) を参照してください。コンピューティングリソースを起動する際は、以下の Amazon EC2 ユーザーデータに登録される Amazon ECS クラスターの ARN を指定します。ecsClusterArn を、前のコマンドで取得したクラスター ARN に置き換えます。

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

    注記

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