View a markdown version of this page

Amazon ECS マネージドインスタンスでジョブ定義を作成する - AWS Batch

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

Amazon ECS マネージドインスタンスでジョブ定義を作成する

Amazon ECS Managed Instances ジョブ定義は、 MANAGED_INSTANCESプラットフォーム機能ecsPropertiesで を使用します。Fargate とは異なり、vCPU とメモリサイズの組み合わせに制限はなく、GPU リソースがサポートされています。サポートされているパラメータの詳細については、「」を参照してくださいAmazon ECS マネージドインスタンスのジョブ定義

Amazon ECS マネージドインスタンスでのジョブ定義の作成 (コンソール)

Amazon ECS マネージドインスタンスで新しいジョブ定義を作成するには:
  1. https://console.aws.amazon.com/batch/ で AWS Batch コンソールを開きます。

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

  3. 左側のナビゲーションペインで ジョブ定義 を選択します。

  4. [作成] を選択します。

  5. オーケストレーションタイプで、ECS マネージドインスタンスを選択します。

  6. 名前 に、一意のジョブ定義名を入力します。名前の最大長は 128 文字です。大文字、小文字、数字、ハイフン(-)、アンダースコア(_) を含めることができます。

  7. (オプション) 実行タイムアウト で、タイムアウト値 (秒単位) を入力します。実行タイムアウトは、未完了のジョブが終了するまでの時間です。試行時間がこの秒数を超過すると、試行は停止し、FAILED ステータスに移行します。詳細については、ジョブのタイムアウトを参照してください。最小値は 60 秒です。

  8. 実行ロールで、ユーザーに代わって AWS API コールを行うアクセス許可を Amazon ECS コンテナエージェントに付与する IAM ロールを選択します。このロールは、Amazon ECS マネージドインスタンスジョブに必要です。例えば、 ロールは Amazon ECR からコンテナイメージをプルするために使用されます。

  9. コンテナの設定 セクションで次の操作を行います。

    1. Image には、ジョブに使用するコンテナイメージを入力します。Amazon ECR レジストリ内のイメージはrepository-url/image:tag、命名規則で指定できます。パブリックレジストリ内のイメージは、完全な URI (例: public.ecr.aws/amazonlinux/amazonlinux:2023) を使用します。

    2. コマンド には、コンテナに渡すコマンドを入力します。

    3. [vCPU] で、コンテナ用に予約する vCPU の数を指定します。

    4. Memory には、コンテナで使用できるメモリ制限 (MiB 単位) を指定します。

    5. (オプション) GPUs、コンテナで使用する GPU デバイスの数を指定します。コンピューティング環境には GPU インスタンスが使用可能である必要があります。

  10. (オプション) タグ を展開し、タグを追加 を選択してリソースにタグを追加します。タグを伝達 をオンにして、タグをジョブとジョブ定義から伝達することができます。

  11. [Create job definition] (ジョブ定義の作成) を選択します。

Amazon ECS マネージドインスタンスでのジョブ定義の作成 (AWS CLI)

register-job-definition コマンドを使用して、Amazon ECS マネージドインスタンスのジョブ定義を作成します。

基本的な の例

次の例では、シンプルなコマンドを実行する最小限のジョブ定義を作成します。

$ aws batch register-job-definition \ --job-definition-name my-managed-instances-job-def \ --type container \ --platform-capabilities MANAGED_INSTANCES \ --ecs-properties '{ "taskProperties": [{ "containers": [{ "image": "public.ecr.aws/amazonlinux/amazonlinux:2023", "name": "main", "command": ["echo", "hello managed instances"], "resourceRequirements": [ {"type": "VCPU", "value": "1"}, {"type": "MEMORY", "value": "1024"} ] }], "executionRoleArn": "arn:aws:iam::123456789012:role/ecsTaskExecutionRole" }] }'

GPU ジョブ定義

次の例では、GPU リソースをリクエストするジョブ定義を作成します。

$ aws batch register-job-definition \ --job-definition-name my-gpu-managed-instances-job-def \ --type container \ --platform-capabilities MANAGED_INSTANCES \ --ecs-properties '{ "taskProperties": [{ "containers": [{ "image": "123456789012.dkr.ecr.us-east-1.amazonaws.com/my-gpu-image:latest", "name": "main", "command": ["nvidia-smi"], "resourceRequirements": [ {"type": "VCPU", "value": "4"}, {"type": "MEMORY", "value": "16384"}, {"type": "GPU", "value": "1"} ] }], "executionRoleArn": "arn:aws:iam::123456789012:role/ecsTaskExecutionRole" }] }'

マルチコンテナ (サイドカー) ジョブ定義

次の例では、メインコンテナとサイドカーログ記録コンテナを使用してジョブ定義を作成します。

$ aws batch register-job-definition \ --job-definition-name my-sidecar-managed-instances-job-def \ --type container \ --platform-capabilities MANAGED_INSTANCES \ --ecs-properties '{ "taskProperties": [{ "containers": [{ "image": "public.ecr.aws/amazonlinux/amazonlinux:2023", "name": "main", "command": ["echo", "processing data"], "essential": true, "resourceRequirements": [ {"type": "VCPU", "value": "2"}, {"type": "MEMORY", "value": "4096"} ] }, { "image": "public.ecr.aws/amazonlinux/amazonlinux:2023", "name": "sidecar", "command": ["echo", "logging sidecar"], "essential": false, "resourceRequirements": [ {"type": "VCPU", "value": "1"}, {"type": "MEMORY", "value": "512"} ] }], "executionRoleArn": "arn:aws:iam::123456789012:role/ecsTaskExecutionRole" }] }'