AWS Batch の使用開始 - AWS Batch

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

AWS Batch の使用開始

AWS Batch を開始するには、AWS Batch コンソールでジョブ定義、コンピューティング環境、およびジョブキューを作成します。

とAWS Batch初回実行ウィザードでは、コンピューティング環境とジョブキューを作成してオプションとして、サンプルの「hello world」ジョブを送信することもできます。で起動する Docker イメージが既にある場合は、AWS Batchでジョブ定義を作成する場合、そのイメージでジョブ定義を作成してキューに送信することもできます。

重要

開始する前に、必ず「」の手順を完了してください。AWS Batch でのセットアップおよび、そのAWSユーザーには、必要なアクセス許可があります。管理者ユーザーは、権限の問題について心配する必要はありません。詳細については、IAM ユーザーガイド「最初の IAM 管理者のユーザーおよびグループの作成」を参照してください。

ステップ 1: Job 定義

このセクションでは、ジョブ定義を作成するか、ジョブ定義なしでコンピューティング環境とジョブキューの作成に進むかを選択します。

ジョブのオプションを設定するには

  1. を開くAWS Batchコンソールの初回実行ウィザード ()https://console.aws.amazon.com/batch/home#/wizard

  2. を作成するにはAWS Batchジョブ定義、コンピューティング環境、およびジョブキューを作成してジョブを送信するには、[] を選択します。Amazon EC2 の使用。ジョブを送信せずにコンピュート環境とジョブキューのみを作成するには、[ジョブ送信がありません] を選択します。

  3. ジョブ定義を作成する場合、初回実行ウィザードの次の 4 つのセクションを完了します。彼らはJob 実行時,環境,パラメータ, および環境変数。続いて、[Next] を選択します。ジョブ定義を作成しない場合は、[] メニューから [] を選択します。に移動し、ステップ 2: コンピューティング環境とJob キューの設定

ジョブの実行時間を指定するには

  1. 新しいジョブ定義を作成する場合は、[] の [] で [] の [Job 定義名で、ジョブ定義の名前を指定します。

  2. (オプション) 用Job の役割[] で、ジョブのコンテナに対して、AWSAPI を使用します。この機能では、タスク用の Amazon ECS IAM ロールを使用します。この機能の詳細については、この機能の詳細 (設定の前提条件など) については、」タスク用の IAM ロール()Amazon Elastic Container Service

    注記

    [] を持つロールのみAmazon Elastic Container Service タスクロールここには、[] の信頼関係が表示されます。用の IAM ロールを作成する手順については、AWS Batchジョブについては、タスク用の IAM ロールとポリシーの作成()Amazon Elastic Container Service

  3. [コンテナイメージ] で、ジョブに使用する Docker イメージを選択します。デフォルトでは、Docker Hub レジストリのイメージを使用できます。任意で他のリポジトリを指定することもできます。repository-url/image:tag。パラメータの長さは最大 255 文字とすることができます。大文字、小文字、数字、ハイフン (-)、下線 (_)、コロン (:)、ピリオド (ピリオド (.)、ピリオド (.)、スラッシュ (/)、および数字記号 (# (# (を含めることができます。パラメーターはImage()コンテナを作成するの セクションドッカーリモートAPIIMAGEパラメータdocker run

    注記

    Docker イメージのアーキテクチャは、スケジュールされているコンピューティングリソースのプロセッサアーキテクチャと一致している必要があります。例えば、ARM ベースの Docker イメージは、ARM ベースのコンピューティングリソースでのみ実行することができます。

    • Amazon ECR リポジトリ内のイメージでは、完全なregistry/repository:tag命名規則。たとえば、aws_account_id.dkr.ecr.region.amazonaws.com/my-web-app:latest と指定します。

    • Docker ハブの公式リポジトリのイメージでは、1 つの名前 (例: ubuntumongo) を使用します。

    • Docker ハブの他のリポジトリのイメージは、組織名で修飾されます (例: amazon/amazon-ecs-agent)。

    • 他のオンラインリポジトリのイメージは、さらにドメイン名で修飾されます (例: quay.io/assemblyline/ubuntu)。

環境のリソースを指定するには

  1. [コマンド] で、コンテナに渡すコマンドを指定します。このパラメータは、のマッピングされます。Cmd()コンテナを作成するの セクションドッカーリモートAPICOMMANDパラメータをdocker run。Docker CMD パラメータの詳細については、https://docs.docker.com/engine/reference/builder/#cmd を参照してください。

    注記

    コマンドには、パラメータ置換のデフォルト値とプレースホルダーを使用できます。詳細については、「Parameters」を参照してください。

  2. [vCPU] で、コンテナ用に予約する vCPU の数を指定します。このパラメータは、のマッピングされます。CpuShares()コンテナを作成するの セクションドッカーリモートAPI--cpu-sharesオプションをdocker run。各 vCPU は 1,024 個の CPU 配分に相当します。

  3. [メモリ] で、ジョブのコンテナに適用されるメモリのハード制限 (MiB 単位) を指定します。コンテナがここで指定したメモリを超えようとすると、そのコンテナは停止されます。このパラメータは、のマッピングされます。Memory()コンテナを作成するの セクションドッカーリモートAPI--memoryオプションをdocker run

  4. [ジョブ試行] で、ジョブが失敗した場合に再試行する最大回数を指定します。詳細については、「ジョブの再試行の自動化」を参照してください。

Parameters

(オプション) コマンドには、パラメータ置換のデフォルト値とプレースホルダーを指定します。詳細については、「Parameters」を参照してください。

  1. [キー] で、パラメータのキーを指定します。

  2. [] で、パラメータの値を指定します。

環境変数を指定するには

(オプション) ジョブのコンテナに渡す環境変数を指定します。このパラメータは、のマッピングされます。Env()コンテナを作成するの セクションドッカーリモートAPI--envオプションをdocker run

重要

認証情報データなどの機密情報にプレーンテキストの環境変数を使用することはお勧めしません。

  1. [キー] で、環境変数のキーを指定します。

  2. [] で、環境変数の値を指定します。

ステップ 2: コンピューティング環境とJob キューの設定

コンピューティング環境は、コンピューティングリソース (Amazon EC2 インスタンス) を参照する方法であり、AWS Batchインスタンスの設定方法と自動起動方法 ジョブキューに送信したジョブは、AWS Batch スケジューラによってコンピューティング環境内のコンピューティングリソースで実行されるまで、ジョブキューに格納されます。

注記

現時点では、初回実行ウィザードで作成できるのはマネージド型のコンピューティング環境のみです。アンマネージド型のコンピューティング環境を作成するには、「コンピューティング環境の作成」を参照してください。

コンピューティング環境タイプを設定するには

  1. [コンピューティング環境名] では、コンピューティング環境の一意な名前を指定します。

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

  3. を使用する場合EC2 インスタンスロール[] で、新しいロールを作成するか、既存のロールを使用することを選択し、コンピューティング環境用に作成された Amazon ECS コンテナインスタンスが必要なAWSユーザーに代わってAPI を使用します。詳細については、「Amazon ECS インスタンスのロール」を参照してください。新しいロールを作成することを選択した場合は、必要なロール (ecsInstanceRole) が自動的に作成されます。

インスタンスを設定するには

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

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

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

    2. を使用する場合スポットフリートのロール[] で、新しいロールを作成するか、既存の Amazon EC2 スポットフリートの IAM ロールを使用することを選択して、スポットコンピューティング環境に適用します。新しいロールを作成することを選択した場合は、必要なロール (aws-ec2-spot-fleet-role) が自動的に作成されます。詳細については、「Amazon EC2 スポットフリートのロール」を参照してください。

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

    注記

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

    注記

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

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

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

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

ネットワーキングを設定するには

コンピューティングリソースは、ここで指定した VPC およびサブネット内で起動されます。この方法で、[] のネットワーク隔離を制御できます。AWS Batchコンピューティングリソース。

重要

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

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

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

  1. を使用する場合VPC Idで、インスタンスを起動する先の VPC を選択します。

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

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

インスタンスにタグを付けるには

(オプション) コンピューティング環境で起動するインスタンスにキーと値のペアを適用します。たとえば、タグとして "Name": "AWS Batch Instance - C4OnDemand" を指定し、その名前をコンピューティング環境の各インスタンスに使用できます。これは、AWS Batchインスタンスを Amazon EC2 コンソールで使用します。デフォルトでは、インスタンスのタグとしてコンピューティング環境名が使用されます。

  1. [キー] で、タグのキーを指定します。

  2. [] で、タグの値を指定します。

ジョブキューを設定するには

ジョブキューに送信したジョブは、ジョブキューに格納されます。ジョブキューキューキューには、AWS Batchスケジューラでは、コンピューティング環境内のコンピューティングリソースでジョブを実行します。

  • [ジョブキュー名] では、ジョブキューに一意の名前を選択します。

確認して作成するには

[このジョブキューに接続されているコンピューティング環境] セクションでは、新規のコンピューティング環境が新しいジョブキューとその順序に関連付けられていることを示しています。後で、ジョブキューに別のコンピューティング環境を関連付けることができます。ジョブスケジューラでは、どのコンピューティング環境で特定のジョブを開始するかを、コンピューティング環境の順番で決めます。コンピューティング環境は、ジョブキューに関連付ける前に、VALID 状態になっていることが必要です。1 つのジョブキューには、最大 3 つのコンピューティング環境を関連付けることができます。

  • コンピューティング環境とジョブキューの設定を確認し、[作成] を選択してコンピューティング環境を作成します。