タスク定義の作成 - Amazon Elastic Container Service

タスク定義の作成

Docker コンテナを Amazon ECS で実行するには、タスク定義を作成する必要があります。1 つのタスク定義に複数のコンテナとデータボリュームを定義できます。タスク定義で使用できるパラメータの詳細については、「タスク定義パラメータ」を参照してください。

新しいタスク定義を作成するには

  1. Amazon ECS コンソール (https://console.aws.amazon.com/ecs/) を開きます。

  2. ナビゲーションペインで [Task Definitions (タスク定義)]、[Create new Task Definition (新しいタスク定義の作成)] の順に選択します。

  3. [Select compatibilities] ページで、タスクで使用する起動タイプを選択し、[Next step] を選択します。

    注記

    Fargate 起動タイプは Windows コンテナと互換性がありません。

  4. 選択した起動タイプに応じて、以下のいずれかのタブのステップに従います。

Fargate launch type

Fargate 起動タイプの互換性テンプレートの使用

[Fargate] を選択した場合は、以下の手順を実行します。

  1. (オプション) JSON 形式のタスク定義の場合は、以下の手順を実行します。

    1. [Configure task and container definitions] ページで、ページの下部までスクロールし、[Configure via JSON] を選択します。

    2. JSON 形式のタスク定義をテキスト領域に貼り付け、[Save] を選択します。

    3. 情報を確認し、[Create] を選択します。

    ページの末尾までスクロールし、[Configure via JSON] を選択します。

  2. [Task Definition Name (タスク定義名)] に、タスク定義の名前を入力します。最大 255 文字の英字 (大文字と小文字)、数字、ハイフン、アンダースコアを使用できます。

  3. (オプション) [Task Role (タスクロール)] で、AWS API オペレーションを呼び出すためのアクセス権限をタスクのコンテナに付与する IAM ロールを選択します。詳細については、「タスク用の IAM ロール」を参照してください。

    注記

    ここには、[Amazon EC2 Container Service Task Role] 信頼関係があるロールのみが表示されます。タスク用の IAM ロールを作成する方法の詳細については、「タスク用の IAM ロールとポリシーの作成」を参照してください。

  4. [Task execution IAM role] で、タスク実行ロールを選択するか、[Create new role (新しいロールの作成)] を選択してコンソールで自動的に作成します。詳細については、「Amazon ECS タスク実行IAM ロール」を参照してください。

  5. [Task size] で、[Task memory (GB)] および [Task CPU (vCPU)] の値を選択します。次の表では、有効な組み合わせを示しています。

    CPU の値 メモリの値
    256 (.25 vCPU) 512 MB、1 GB、2 GB
    512 (.5 vCPU) 1 GB、2 GB、3 GB、4 GB
    1024 (1 vCPU) 2 GB、3 GB、4 GB、5 GB、6 GB、7 GB、8 GB
    2048 (2 vCPU) 4 GB ~ 16 GB (1 GB のインクリメント)
    4096 (4 vCPU) 8 GB ~ 30 GB (1 GB のインクリメント)
  6. タスク定義内のコンテナごとに、以下の手順を実行します:

    1. [Add container] を選択します。

    2. コンテナの定義で使用するために、必須のフィールドとオプションのフィールドに入力します。その他のコンテナの定義パラメータは、[詳細コンテナ設定] メニューより設定できます。詳細については、「タスク定義パラメータ」を参照してください。

    3. [追加] を選択して、タスク定義にコンテナを追加します。

  7. (オプション) [Service Integration (サービス統合)] で、 App Mesh 統合のパラメータを設定するには、[Enable App Mesh integration (App Mesh 統合を有効にする)] を選択し、次の手順を実行します。

    1. メッシュ名には、使用する既存の App Mesh Service メッシュを選択します。メッシュがリストに表示されない場合は、最初にメッシュを作成する必要があります。詳細については、AWS App Meshユーザーガイドの「サービスメッシュ」を参照してください。

    2. [App Mesh endpoints (App Mesh エンドポイント)] に、以下のいずれかのオプションを入力します。

      • [Virtual node (仮想ノード)] — 次の情報を入力または選択します。

        • [Application container name (アプリケーションコンテナ名)] で、 App Mesh 統合に使用するコンテナ名を選択します。このコンテナは、タスク定義内ですでに定義されている必要があります。

        • [Virtual node name (仮想ノード名)] で 既存のApp Mesh 仮想ノードの名前を選択します。仮想ノードがリストに表示されていない場合は、最初に作成する必要があります。詳細については、AWS App Meshユーザーガイド仮想仮想ノードを参照してください。

        • [Virtual node port (仮想ノードポート)] には、App Mesh の仮想ノードで設定されたリスナーポートが事前に入力されます。

      • [Virtual gateway (仮想ゲートウェイ)] — 次の情報を入力または選択します。

        • [Virtual gateway name (仮想ゲートウェイ名)で、使用する既存の App Mesh 仮想ゲートウェイを選択します。仮想ゲートウェイがリストに表示されていない場合は、最初に作成する必要があります。詳細については、AWS App Mesh ユーザーガイドの「仮想ゲートウェイ」を参照してください。

        • [Virtual gateway port (仮想ゲートウェイポート)] — App Mesh の仮想ゲートウェイで設定されたリスナーポートが事前に入力されます。

    3. [Envoy image (Envoy イメージ)] では、me-south-1 および ap-east-1 を除くすべてのリージョンに「840364872350.dkr.ecr.us-west-2.amazonaws.com/aws-appmesh-envoy:v1.15.1.0-prod」を入力します。us-west-2me-south-1および ap-east-1を除く任意のリージョンに置き換えることができます。アプリケーションがこれらのリージョンのいずれかにある場合は、840364872350をお住まいのリージョンに適した値に変更する必要があります。詳細については、AWS App Mesh ユーザーガイドの「Envoy イメージ を参照してください。

    4. [適用]、[確認] の順に選択します。これにより、タスク定義に対する新しい Envoy プロキシコンテナと、それをサポートする設定が追加されます。仮想ノードに設定すると、次のステップのために App Mesh プロキシ設定の設定を自動入力します。[Virtual gateway (仮想ゲートウェイ)] を選択すると、プロキシ設定は無効になります。これは、仮想ゲートウェイには使用されないためです。

  8. (オプション) [Service Integration (サービス統合)] の [Virtual node (仮想ノード)] を選択した場合は、プロキシ設定] で、事前に入力されたすべての値を確認します。これらのフィールドの詳細については、[Update services (サービスの更新)] で「JSON」タブを参照してください。

  9. (オプション) [Log Router Integration (ログルーターの統合)] では、カスタムログルーティング設定を追加できます。FireLens 統合を有効にするを選択して、以下の操作を実行します。

    1. [Type (タイプ)] で、使用するログルーターのタイプを選択します。

    2. [Image (イメージ)] に、ログルーターコンテナのイメージ URI を入力します。fluentbit ログルータータイプを選択したの場合は、[Image (イメージ)] フィールドは Fluent Bit イメージ用に AWS を事前入力します。  詳細については、「AWS for Fluent Bit イメージの使用」を参照してください。

    3. [Apply (適用)] を選択します。これにより、log_router という名前のタスク定義に新しいログルーターコンテナが作成され、サポートする設定を適用します。ログルーター統合フィールドを変更する場合は、FireLens コンテナを更新するために [Apply (適用)] をもう一度選択します。

  10. (オプション) タスクのデータボリュームを定義するには、[Add volume] を選択します。詳細については、「タスクでのデータボリュームの使用」を参照してください。

    1. [Name (名前)] に、ボリュームの名前を入力します。最大 255 文字の英字 (大文字と小文字)、数字、ハイフン、アンダースコアを使用できます。

  11. [Tags (タグ)] セクションで、タスク定義に関連付ける各タグのキーと値を指定します。詳細については、「Amazon ECS リソースにタグを付ける」を参照してください。

  12. [Create] を選択します。

EC2 launch type

EC2 起動タイプの互換性テンプレートの使用

[EC2] を選択した場合は、以下の手順を実行します。

  1. (オプション) JSON 形式のタスク定義の場合は、以下の手順を実行します。

    1. [Configure task and container definitions] ページで、ページの下部までスクロールし、[Configure via JSON] を選択します。

    2. JSON 形式のタスク定義をテキスト領域に貼り付け、[Save] を選択します。

    3. 情報を確認し、[Create] を選択します。

    ページの末尾までスクロールし、[Configure via JSON] を選択します。

  2. [Task Definition Name (タスク定義名)] に、タスク定義の名前を入力します。最大 255 文字の英字 (大文字と小文字)、数字、ハイフン、アンダースコアを使用できます。

  3. (オプション) [Task Role (タスクロール)] で、ユーザーに代わって AWS API を呼び出すためのアクセス権限をタスクのコンテナに付与する IAM ロールを選択します。詳細については、「タスク用の IAM ロール」を参照してください。

    EC2 起動タイプを使用するタスクの場合、これらのアクセス権限は通常、Amazon ECS コンテナインスタンスの IAM ロールによって付与されます。詳細については、「Amazon ECS コンテナインスタンスの IAM ロール」を参照してください。

    注記

    ここには、[Amazon EC2 Container Service Task Role] 信頼関係があるロールのみが表示されます。タスク用の IAM ロールを作成する方法の詳細については、「タスク用の IAM ロールとポリシーの作成」を参照してください。

  4. (オプション) [Network Mode] で、タスクのコンテナに使用する Docker ネットワークモードを選択します。使用可能なネットワークモードは、Docker run リファレンスの「Network settings」で説明しているものと同じです。次のステップで [Enable App Mesh integration] を選択する場合は、[awsvpc] を選択する必要があります。

    デフォルトの Docker ネットワークモードは bridge です。ネットワークモードを none に設定した場合、コンテナ定義にポートマッピングを指定することはできず、タスクのコンテナに外部接続がなくなります。ネットワークモードが awsvpc の場合、タスクに Elastic Network Interface が割り当てられます。host ネットワークモードと awsvpc ネットワークモードは、コンテナにとって最高のネットワークパフォーマンスを実現します。これは、bridge モードによってもたらされる仮想化されたネットワークスタックの代わりに Amazon EC2 ネットワークスタックを使用するためです。ただし、公開されたコンテナポートは、対応するホストポートに直接マッピングされます。したがって、ポートマッピングが使用されている場合、動的ホストポートマッピングを利用したり、1 つのコンテナインスタンスで同じタスクの複数のインスタンス化を実行することはできません。

  5. (オプション) [Task execution role (タスク実行ロール)] で、ユーザーに代わって AWS API を呼び出すためのアクセス権限をタスクのコンテナに付与する IAM ロールを選択します。

    EC2 起動タイプを使用するタスクの場合は、これらのアクセス権限は通常、[Task Role (タスクロール)] として先ほど指定した Amazon ECS コンテナインスタンスの IAM ロールによって付与されます。タスク実行ロールを指定する必要はありません。詳細については、「Amazon ECS タスク実行IAM ロール」を参照してください。

  6. (省略可能) [Task size] で、[Task memory (GB)] および [Task CPU (vCPU)] の値を選択します。サポートされている Task CPU (vCPU) の値は 128 CPU ユニット (0.125 vCPU) ~ 10240 CPU ユニット (10 vCPU) です。

    注記

    タスクレベル CPU およびメモリのパラメータは Windows コンテナでは無視されます。Windows コンテナではコンテナレベルリソースを指定することをお勧めします。

  7. タスク定義内のコンテナごとに、以下の手順を実行します。

    1. [Add container] を選択します。

    2. コンテナの定義で使用する必須の各フィールドとオプションのフィールドに入力します。その他のコンテナの定義パラメータは、[詳細コンテナ設定] メニューより設定できます。詳細については、「タスク定義パラメータ」を参照してください。

    3. [追加] を選択して、タスク定義にコンテナを追加します。

  8. (オプション) [制約] で、このタスク定義から作成されるタスクがクラスターにどのように配置されるかを定義します。EC2 起動タイプを使用するタスクの場合、アベイラビリティーゾーン、インスタンスタイプ、またはカスタム属性に基づいたタスク配置の制約を使用できます。詳細については、「Amazon ECS タスク配置の制約事項」を参照してください。

  9. (オプション) [Service Integration (サービス統合)] で、 App Mesh 統合のパラメータを設定するには、[Enable App Mesh integration (App Mesh 統合を有効にする)] を選択し、次の手順を実行します。

    1. メッシュ名には、使用する既存の App Mesh Service メッシュを選択します。メッシュがリストに表示されない場合は、最初にメッシュを作成する必要があります。詳細については、AWS App Meshユーザーガイドの「サービスメッシュ」を参照してください。

    2. [App Mesh endpoints (App Mesh エンドポイント)] に、以下のいずれかのオプションを入力します。

      • [Virtual node (仮想ノード)] — 次の情報を入力または選択します。

        • [Application container name (アプリケーションコンテナ名)] で、 App Mesh 統合に使用するコンテナ名を選択します。このコンテナは、タスク定義内ですでに定義されている必要があります。

        • [Virtual node name (仮想ノード名)] で 既存のApp Mesh 仮想ノードの名前を選択します。仮想ノードがリストに表示されていない場合は、最初に作成する必要があります。詳細については、AWS App Meshユーザーガイド仮想仮想ノードを参照してください。

        • [Virtual node port (仮想ノードポート)] には、App Mesh の仮想ノードで設定されたリスナーポートが事前に入力されます。

      • [Virtual gateway (仮想ゲートウェイ)] — 次の情報を入力または選択します。

        • [Virtual gateway name (仮想ゲートウェイ名)] で、使用する既存の App Mesh 仮想ゲートウェイを選択します。仮想ゲートウェイがリストに表示されていない場合は、最初に作成する必要があります。詳細については、AWS App Mesh ユーザーガイドの「仮想ゲートウェイ」を参照してください。

        • [Virtual gateway port (仮想ゲートウェイポート)] — App Mesh の仮想ゲートウェイで設定されたリスナーポートが事前に入力されます。

    3. [Envoy image (Envoy イメージ)] で、me-south-1 および ap-east-1 を除くすべてのリージョンに「840364872350.dkr.ecr.us-west-2.amazonaws.com/aws-appmesh-envoy:v1.15.1.0-prod」を入力します。us-west-2me-south-1 および ap-east-1を除く任意のリージョンに置き換えることができます。アプリケーションがこれらのリージョンのいずれかにある場合は、840364872350をお住まいのリージョンに適した値に変更する必要があります。詳細については、AWS App Mesh ユーザーガイドの「Envoy イメージ を参照してください。

    4. [適用]、[確認] の順に選択します。これにより、タスク定義に対する新しい Envoy プロキシコンテナと、それをサポートする設定が追加されます。[Virtual node (仮想ノード)] を選択した場合、次のステップのために App Meshプロキシ設定 が自動入力されます。[Virtual gateway (仮想ゲートウェイ)] を選択すると、プロキシ設定は無効になります。これは、仮想ゲートウェイには使用されないためです。

  10. (オプション) [Service Integration (サービス統合)] で [Virtual node (仮想ノード)] を選択した、プロキシ設定のために事前に入力されたすべての値を確認します。これらのフィールドの詳細については、サービスの更新で「JSON」タブを参照してください。

  11. (オプション) [Log Router Integration (ログルーターの統合)] では、カスタムログルーティング設定を追加できます。FireLens 統合を有効にするを選択して、以下の操作を実行します。

    1. [Type (タイプ)] で、使用するログルーターのタイプを選択します。

    2. [Image (イメージ)に、ログルータコンテナーのイメージ URI を入力します。fluentbitログルータータイプを選択した場合、[Image (イメージ)] フィールドは Fluent Bit イメージ用に AWS を自動入力します。詳細については、「AWS for Fluent Bit イメージの使用」を参照してください。

    3. [Apply (適用)] を選択します。これにより、log_router という名前のタスク定義に新しいログルーターコンテナが作成され、サポートする設定を適用します。ログルーター統合フィールドを変更する場合は、FireLens コンテナを更新するために [Apply (適用)] をもう一度選択します。

  12. (オプション) タスクのデータボリュームを定義するには、[Add volume] を選択します。バインドマウントまたは Docker ボリュームを作成できます。詳細については、「タスクでのデータボリュームの使用」を参照してください。

    1. [Name (名前)] に、ボリュームの名前を入力します。最大 255 文字の英字 (大文字と小文字)、数字、ハイフン、アンダースコアを使用できます。

    2. (オプション) バインドマウントボリュームを作成するには、[Source path (ソースパス)] に、コンテナに渡すホストコンテナインスタンスのパスを入力します。このフィールドを空のままにした場合、Docker デーモンによってホストパスが割り当てられます。ソースパスを指定した場合、手動で削除するまで、データボリュームはホストコンテナインスタンス上の指定した場所に保持されます。ソースパスがホストコンテナインスタンスに存在しない場合、Docker デーモンによってそのパスが作成されます。その場所が存在する場合は、ソースパスフォルダの内容がコンテナにエクスポートされます。

    3. Docker ボリュームを作成するには、[Specify a volume driver (ボリュームドライバーの指定)] を選択します。

      1. [Driver (ドライバー)] で、使用する Docker ボリュームドライバーを選択します。ドライバーの値と、Docker によって指定されたドライバー名が一致する必要があります。ドライバー名を取得するには、コンテナインスタンスで docker plugin ls を使用します。

      2. [スコープ] で、Docker ボリュームのライフサイクルを指定するオプションを選択します。Docker ボリュームの範囲が task の場合は、タスクが開始すると自動的にプロビジョンされ、タスクが停止すると破棄されます。Docker ボリュームの範囲が shared の場合は、タスクの停止後も保持されます。

      3. Docker ボリュームが存在しない場合は、[Enable auto-provisioning (自動プロビジョニングの有効化)] を選択して作成します。このオプションは、shared 範囲を指定したボリュームにのみ利用できます。

      4. [Driver options (ドライバーオプション)] で、ドライバー固有のキーの値を指定します。

      5. [Volume labels (ボリュームラベル)] で、Docker ボリュームに追加するカスタムのメタデータを指定します。

  13. [Tags (タグ)] セクションで、タスク定義に関連付ける各タグのキーと値を指定します。詳細については、「Amazon ECS リソースにタグを付ける」を参照してください。

  14. [Create] を選択します。

External instance launch type

外部インスタンスの起動タイプの使用

[External (外部)] を選択した場合は、以下の手順を実行します。

  1. (オプション) JSON 形式のタスク定義の場合は、以下の手順を実行します。

    1. [Configure task and container definitions] ページで、ページの下部までスクロールし、[Configure via JSON] を選択します。

    2. JSON 形式のタスク定義をテキスト領域に貼り付け、[Save] を選択します。

    3. 情報を確認し、[Create] を選択します。

    ページの末尾までスクロールし、[Configure via JSON] を選択します。

  2. [Task Definition Name (タスク定義名)] に、タスク定義の名前を入力します。最大 255 文字の英字 (大文字と小文字)、数字、ハイフン、アンダースコアを使用できます。

  3. (オプション) [Task Role (タスクロール)] で、ユーザーに代わって AWS API を呼び出すためのアクセス権限をタスクのコンテナに付与する IAM ロールを選択します。詳細については、「タスク用の IAM ロール」および「Amazon ECS Anywhere の IAM アクセス許可」を参照してください。

  4. (オプション) [Network Mode] で、タスクのコンテナに使用する Docker ネットワークモードを選択します。使用可能なネットワークモードは、Docker run リファレンスの「Network settings」で説明しているものと同じです。

    デフォルトの Docker ネットワークモードは bridge です。ネットワークモードを none に設定した場合、コンテナ定義にポートマッピングを指定することはできず、タスクのコンテナに外部接続がなくなります。ネットワークモードが awsvpc の場合、タスクに Elastic Network Interface が割り当てられます。host ネットワークモードと awsvpc ネットワークモードは、コンテナにとって最高のネットワークパフォーマンスを実現します。これは、bridge モードによってもたらされる仮想化されたネットワークスタックの代わりに Amazon EC2 ネットワークスタックを使用するためです。ただし、公開されたコンテナポートは、対応するホストポートに直接マッピングされます。したがって、ポートマッピングが使用されている場合、動的ホストポートマッピングを利用したり、1 つのコンテナインスタンスで同じタスクの複数のインスタンス化を実行することはできません。

  5. (オプション) [Task execution role (タスク実行ロール)] で、ユーザーに代わって AWS API を呼び出すためのアクセス権限をタスクのコンテナに付与する IAM ロールを選択します。

  6. (省略可能) [Task size] で、[Task memory (GB)] および [Task CPU (vCPU)] の値を選択します。サポートされている Task CPU (vCPU) の値は 128 CPU ユニット (0.125 vCPU) ~ 10240 CPU ユニット (10 vCPU) です。

    注記

    タスクレベル CPU およびメモリのパラメータは Windows コンテナでは無視されます。Windows コンテナではコンテナレベルリソースを指定することをお勧めします。

  7. タスク定義内のコンテナごとに、以下の手順を実行します。

    1. [Add container] を選択します。

    2. コンテナの定義で使用する必須の各フィールドとオプションのフィールドに入力します。その他のコンテナの定義パラメータは、[詳細コンテナ設定] メニューより設定できます。詳細については、「タスク定義パラメータ」を参照してください。

    3. [追加] を選択して、タスク定義にコンテナを追加します。

  8. (オプション) [制約] で、このタスク定義から作成されるタスクがクラスターにどのように配置されるかを定義します。詳細については、「Amazon ECS タスク配置の制約事項」を参照してください。

  9. (オプション) [Log Router Integration (ログルーターの統合)] では、カスタムログルーティング設定を追加できます。FireLens 統合を有効にするを選択して、以下の操作を実行します。

    1. [Type (タイプ)] で、使用するログルーターのタイプを選択します。

    2. [イメージ] で、ログルーターコンテナのイメージ URI を入力します。fluentbit ログルータータイプを選択した場合、[Image (イメージ)] フィールドは Fluent Bit イメージ用に AWS を自動入力します。詳細については、「AWS for Fluent Bit イメージの使用」を参照してください。

    3. [Apply (適用)] を選択します。これにより、log_router という名前のタスク定義に新しいログルーターコンテナが作成され、サポートする設定を適用します。ログルーター統合フィールドを変更する場合は、FireLens コンテナを更新するために [Apply (適用)] をもう一度選択します。

  10. (オプション) タスクのデータボリュームを定義するには、[Add volume] を選択します。バインドマウントまたは Docker ボリュームを作成できます。詳細については、「タスクでのデータボリュームの使用」を参照してください。

    1. [Name (名前)] に、ボリュームの名前を入力します。最大 255 文字の英字 (大文字と小文字)、数字、ハイフン、アンダースコアを使用できます。

    2. (オプション) バインドマウントボリュームを作成するには、[Source path (ソースパス)] に、コンテナに渡すホストコンテナインスタンスのパスを入力します。このフィールドを空のままにした場合、Docker デーモンによってホストパスが割り当てられます。ソースパスを指定した場合、手動で削除するまで、データボリュームはホストコンテナインスタンス上の指定した場所に保持されます。ソースパスがホストコンテナインスタンスに存在しない場合、Docker デーモンによってそのパスが作成されます。その場所が存在する場合は、ソースパスフォルダの内容がコンテナにエクスポートされます。

    3. Docker ボリュームを作成するには、[Specify a volume driver (ボリュームドライバーの指定)] を選択します。

      1. [Driver (ドライバー)] で、使用する Docker ボリュームドライバーを選択します。ドライバーの値と、Docker によって指定されたドライバー名が一致する必要があります。ドライバー名を取得するには、コンテナインスタンスで docker plugin ls を使用します。

      2. [スコープ] で、Docker ボリュームのライフサイクルを指定するオプションを選択します。Docker ボリュームの範囲が task の場合は、タスクが開始すると自動的にプロビジョンされ、タスクが停止すると破棄されます。Docker ボリュームの範囲が shared の場合は、タスクの停止後も保持されます。

      3. Docker ボリュームが存在しない場合は、[Enable auto-provisioning (自動プロビジョニングの有効化)] を選択して作成します。このオプションは、shared 範囲を指定したボリュームにのみ利用できます。

      4. [Driver options (ドライバーオプション)] で、ドライバー固有のキーの値を指定します。

      5. [Volume labels (ボリュームラベル)] で、Docker ボリュームに追加するカスタムのメタデータを指定します。

  11. [Tags (タグ)] セクションで、タスク定義に関連付ける各タグのキーと値を指定します。詳細については、「Amazon ECS リソースにタグを付ける」を参照してください。

  12. [Create] を選択します。

タスク定義テンプレート

以下に示しているのは、空のタスク定義テンプレートです。このテンプレートを使用してタスク定義を作成します。これにより、コンソールの JSON 入力領域に貼り付けるか、ファイルに保存して AWS CLI の --cli-input-json オプションで使用できるようになります。詳細については、「タスク定義パラメータ」を参照してください。

{ "family": "", "taskRoleArn": "", "executionRoleArn": "", "networkMode": "bridge", "containerDefinitions": [ { "name": "", "image": "", "repositoryCredentials": { "credentialsParameter": "" }, "cpu": 0, "memory": 0, "memoryReservation": 0, "links": [ "" ], "portMappings": [ { "containerPort": 0, "hostPort": 0, "protocol": "tcp" } ], "essential": true, "entryPoint": [ "" ], "command": [ "" ], "environment": [ { "name": "", "value": "" } ], "environmentFiles": [ { "value": "", "type": "s3" } ], "mountPoints": [ { "sourceVolume": "", "containerPath": "", "readOnly": true } ], "volumesFrom": [ { "sourceContainer": "", "readOnly": true } ], "linuxParameters": { "capabilities": { "add": [ "" ], "drop": [ "" ] }, "devices": [ { "hostPath": "", "containerPath": "", "permissions": [ "read" ] } ], "initProcessEnabled": true, "sharedMemorySize": 0, "tmpfs": [ { "containerPath": "", "size": 0, "mountOptions": [ "" ] } ], "maxSwap": 0, "swappiness": 0 }, "secrets": [ { "name": "", "valueFrom": "" } ], "dependsOn": [ { "containerName": "", "condition": "START" } ], "startTimeout": 0, "stopTimeout": 0, "hostname": "", "user": "", "workingDirectory": "", "disableNetworking": true, "privileged": true, "readonlyRootFilesystem": true, "dnsServers": [ "" ], "dnsSearchDomains": [ "" ], "extraHosts": [ { "hostname": "", "ipAddress": "" } ], "dockerSecurityOptions": [ "" ], "interactive": true, "pseudoTerminal": true, "dockerLabels": { "KeyName": "" }, "ulimits": [ { "name": "memlock", "softLimit": 0, "hardLimit": 0 } ], "logConfiguration": { "logDriver": "splunk", "options": { "KeyName": "" }, "secretOptions": [ { "name": "", "valueFrom": "" } ] }, "healthCheck": { "command": [ "" ], "interval": 0, "timeout": 0, "retries": 0, "startPeriod": 0 }, "systemControls": [ { "namespace": "", "value": "" } ], "resourceRequirements": [ { "value": "", "type": "InferenceAccelerator" } ], "firelensConfiguration": { "type": "fluentbit", "options": { "KeyName": "" } } } ], "volumes": [ { "name": "", "host": { "sourcePath": "" }, "dockerVolumeConfiguration": { "scope": "shared", "autoprovision": true, "driver": "", "driverOpts": { "KeyName": "" }, "labels": { "KeyName": "" } }, "efsVolumeConfiguration": { "fileSystemId": "", "rootDirectory": "", "transitEncryption": "DISABLED", "transitEncryptionPort": 0, "authorizationConfig": { "accessPointId": "", "iam": "DISABLED" } } } ], "placementConstraints": [ { "type": "memberOf", "expression": "" } ], "requiresCompatibilities": [ "FARGATE" ], "cpu": "", "memory": "", "tags": [ { "key": "", "value": "" } ], "pidMode": "host", "ipcMode": "none", "proxyConfiguration": { "type": "APPMESH", "containerName": "", "properties": [ { "name": "", "value": "" } ] }, "inferenceAccelerators": [ { "deviceName": "", "deviceType": "" } ] }

このタスク定義テンプレートは、以下の AWS CLI コマンドを使用して生成できます。

aws ecs register-task-definition --generate-cli-skeleton