新しいコンソールを使用したタスク定義の作成 - Amazon ECS

新しいコンソールを使用したタスク定義の作成

Amazon ECS コンソールを使用して、タスク定義を作成します。タスク定義の作成プロセスをできるだけ簡単にするために、コンソールには、以下で説明する多くの選択肢に対するデフォルトの選択肢があります。コンソール内のほとんどのセクションには、詳細なコンテキストを提供するヘルプパネルもあります。

タスク定義は、コンソールを使用するか、JSON ファイルを編集して作成できます。

JSON 検証

Amazon ECS コンソールの JSON エディタは、下記に関して JSON ファイルを検証します。

  • このJSON ファイルは有効です

  • ファイルに外部キーは含まれていません

  • ファイルに familyName パラメータが含まれています

  • containderDefinitions の下に少なくとも 1 つのエントリがあります

New Amazon ECS console
  1. 新しいコンソールを「https://console.aws.amazon.com/ecs/v2」で開きます。

  2. ナビゲーションペインで、[Task definitions] (タスク定義) を選択します。

  3. [Create new task definition] (新しいタスク定義の作成)、[Create new task definition] (新しいタスク定義の作成) の順に選択します。

  4. [Task definition family] (タスク定義ファミリー) を使用する場合、タスク定義ファミリーには、タスク定義に一意の名前を指定します。

  5. タスク定義で定義するコンテナごとに、以下のステップを実行します。

    1. [Name] (名前) に、コンテナの名前を入力します。

    2. [Image URI] (イメージ URI) には、コンテナの開始に使用するイメージを指定します。Amazon ECR Public Gallery レジストリ内の画像は、Amazon ECR Public レジストリ名の使用でのみ指定することができます。たとえば、public.ecr.aws/ecs/amazon-ecs-agent:latestが指定されている場合は、Amazon ECR パブリックギャラリーでホストされている Amazon Linux コンテナが使用されます。他のすべてのリポジトリの場合は、次のいずれかを使用してリポジトリを指定します。repository-url/image:tagまたはrepository-url/image@digestでの形式。

    3. [Essential container] (基本コンテナ) を使用する場合、タスク定義に 2 つ以上のコンテナが定義されている場合、コンテナを基本と見なすかどうかを指定できます。コンテナが [essential] (基本) とマークされている場合、そのコンテナが停止すると、タスクは停止します。各タスク定義には、少なくとも 1 つの基本コンテナを含む必要があります。

    4. ポートマッピングにより、コンテナはホスト上のポートにアクセスしてトラフィックを送受信できるようになります。[Port mappings] (ポートマッピング) で、次のいずれかを実行]ます。

      • [awsvpc] ネットワークモードを使用する場合、[Container port] (コンテナポート) と [Protocol] (プロトコル) で、コンテナに使用するポートマッピングを選択します。

      • [bridge] ネットワークモードを使用する場合、[Container port] (コンテナポート) と [Protocol] (プロトコル) で、コンテナに使用するポートマッピングを選択します。次のページで [bridge] (ブリッジ) ネットワークモードを選択します。選択した後、[Previous] (戻る) を選択し、次に [Host port] (ホストポート) で、コンテナ用に予約するコンテナインスタンスのポート番号を指定します。

      追加のコンテナポートマッピングを指定するには、[Add more port mappings] (ポートマッピングを追加) を選択します。

    5. [Environment variables] (環境変数) セクションを展開して、コンテナに挿入する環境変数を指定します。環境変数は、キーバリューペアを使用して個別に指定するか、Amazon S3 バケットでホストされている環境変数ファイルを指定して一括で指定できます。環境変数ファイルのフォーマット方法については、コンテナへの環境変数の受け渡し を参照してください。

    6. (オプション) [] を選択します。コンテナを追加するをクリックして、タスク定義にコンテナを追加します。すべてのコンテナが定義されたら、[Next] (次へ) を選択します。

  6. [App environment] (アプリケーション環境) で、アプリケーション環境を選択します。コンソールのデフォルトは、[AWS Fargate (serverless)] (AWS Fargate (サーバーレス)) です Amazon ECS は、この値を使用して検証を実行し、タスク定義パラメータがインフラストラクチャタイプに対して有効であることを確認します。

  7. [Operating system/Architecture] (オペレーティングシステム/アーキテクチャ) を使用する場合、タスクのオペレーティングシステムと CPU アーキテクチャを選択します。

    タスクを 64 ビット ARM アーキテクチャで実行するには、Linux/ARM64 を選択します。詳細については、「ランタイムプラットフォーム」を参照してください。

    Windows コンテナで AWS Fargate(serverless) (サーバーレス) タスクを実行するには、サポートされている Windows オペレーティングシステムを選択します。(詳しくは、「AWS Fargate の Windows コンテナに関する考慮事項」を参照してください。)

  8. [Task size] (タスクサイズ) では、タスク用に予約する CPU とメモリの値を選択します。CPU 値は vCPUs として指定され、メモリは GB として指定されます。

    Fargate でホストされるタスクの場合、次の表に有効な CPU とメモリの組み合わせを示します。

    CPU の値

    メモリの値

    AWS Fargate でサポートされるオペレーティングシステム

    256 (.25 vCPU)

    512 MiB、1 GB、2 GB

    Linux

    512 (.5 vCPU)

    1 GB、2 GB、3 GB、4 GB

    Linux

    1,024 (1 vCPU)

    2 GB、3 GB、4 GB、5 GB、6 GB、7 GB、8 GB

    Linux、Windows

    2,048 (2 vCPU)

    4 GB ~ 16 GB (1 GB のインクリメント)

    Linux、Windows

    4,096 (4 vCPU)

    8 GB ~ 30 GB (1 GB のインクリメント)

    Linux、Windows

    8192 (8 vCPU)

    注記

    このオプションには Linux プラットフォーム 1.4.0 以降が必要です。

    16 GB~60 GB (4 GB のインクリメント)

    Linux

    16384 (16vCPU)

    注記

    このオプションには Linux プラットフォーム 1.4.0 以降が必要です。

    32 GB~120 GB (8 GB のインクリメント)

    Linux

    Amazon EC2 でホストされているタスクの場合、サポートされているタスクの CPU 値は 128 CPU ユニット (0.125 vCPU) ~ 10240 CPU ユニット (10 vCPU) です。

    注記

    タスクレベル CPU およびメモリのパラメータは Windows コンテナでは無視されます。

  9. [Container size] (コンテナサイズ) セクションを展開して、コンテナに適用するメモリ量 (GB) と、Amazon ECS コンテナエージェントがコンテナ用に予約する CPU ユニット数を入力します。

    コンテナは、指定したメモリを超えようとすると、強制終了されます。タスク内のすべてのコンテナ用に予約されるメモリの合計量は、タスクの [Memory] (メモリ) 値より小さくする必要があります (指定されている場合)。

    タスク内のすべてのコンテナ用に予約される CPU の合計量は、タスクレベルの CPU (CPU) 値より小さくする必要があります。

    指定した値に 1024 を乗算して、Amazon EC2 インスタンスタイプごとに使用可能な CPU ユニットの数を決定できます。例えば、t3 ナノインスタンスの値は 2048 です。詳細については、「Amazon EC2 インスタンス」を参照してください。

  10. (オプション) [Task roles, network mode] (タスクロール、ネットワークモード) セクションを展開し、次の内容を指定します。

    1. [Task role] (タスクロール) では、タスクに割り当てる IAM ロールを選択します。タスク IAM ロールは、タスク内のコンテナが AWS APIを呼び出すアクセス権限を提供します。

    2. [Network mode] (ネットワークモード) の場合、使用するネットワークモードを選択します。デフォルトは、awsvpc モードです。詳細については、Amazon ECS タスクネットワーキングを参照してください。

      ネットワークモードで [bridge] を選択した場合は、[Previous] (戻る) を選択し、[Port mappings] (ポートマッピング) の [Host port] (ホストポート) で、コンテナ用に予約するコンテナインスタンスのポート番号を入力します。

  11. (オプション) [Storage] (ストレージ) セクションを使用して、Fargate でホストされるタスクのエフェメラルストレージ量を拡張したり、タスクのデータボリューム構成を追加できます。

    1. Fargate タスクに使用可能なエフェメラルストレージをデフォルト値の 20 GiB を超えて拡張するには、[Amount] (量) に最大で 200 GiB までの値を入力します。

  12. (オプション) タスクのデータボリューム設定を追加するには、[Add volume] (ボリュームを追加) を選択します。各データボリュームについて、以下のステップを完了します。

    1. [Volume type] (ボリュームタイプ) を使用する場合、[Bind mount] (バインドマウント) を選択します。

    2. [Volume name] (ボリューム名) には、データボリュームの名前を入力します。データボリューム名は、後のステップでコンテナマウントポイントを作成するときに使用されます。

    3. [Container mount points] (コンテナマウントポイント) セクションを展開し、[Add] (追加) を選択します。

    4. [Container] (コンテナ) には、マウントポイントのコンテナを選択します。

    5. [Source volume] (ソースボリューム) を使用する場合、コンテナにマウントするデータボリュームを選択します。

    6. [Container path] (コンテナパス) に、ボリュームをマウントするコンテナのパスを指定します。

    7. [Read only] (読み取り専用) では、ボリュームを読み取り専用にするかどうかを選択します。

    8. タスク定義で定義された各データボリュームにマウントポイントが定義されるまで、[Add] (追加) を選択してマウントポイントを追加します。

  13. (オプション) [Use log collection] (ログコレクションを使用) を選択し、ログ構成を指定します。使用可能なログドライバーごとに、指定するログドライバーオプションがあります。デフォルトのオプションでは、コンテナログを CloudWatch Logs に送信します。その他のログドライバオプションは、AWS FireLens を使用して構成されます。詳細については、「カスタムログルーティング」を参照してください。

    以下では、各コンテナログの送信先について詳しく説明します。

    • Amazon CloudWatch — コンテナログを CloudWatch Logs に送信するようにタスクを設定します。デフォルトのログドライバオプションが提供され、ユーザーに代わり CloudWatch ロググループを作成します。別のロググループ名を指定するには、ドライバーオプションの値を変更します。

    • Amazon Kinesis Data Firehose — Kinesis Data Firehose にコンテナログを送信するようタスクを設定します。Kinesis Data Firehose 配信ストリームにログを送信するデフォルトのログドライバーオプションが提供されています。別の配信ストリーム名を指定するには、ドライバーオプションの値を変更します。

    • Amazon Kinesis Data Streams — Kinesis Data Streams にコンテナログを送信するようタスクを設定します。Kinesis Data Streams のストリームにログを送信するデフォルトのログドライバーオプションが提供されています。別のストリーム名を指定するには、ドライバーオプションの値を変更します。

    • Amazon OpenSearch Service — コンテナログを OpenSearch Service ドメインに送信するようタスクを設定します。ログドライバーオプションを提供する必要があります。詳細については、「Amazon OpenSearch Service ドメインへのログの転送」を参照してください。

    • Amazon S3 — Amazon S3 バケットにコンテナログを送信するようタスクを設定します。デフォルトのログドライバーオプションが提供されていますが、有効な Amazon S3 バケット名を指定する必要があります。

  14. (オプション) [Use trace collection] (トレースコレクションを使用) を選択し、アプリケーションから AWS X-Ray にトレースデータをルーティングするようにタスクを設定します。このオプションを選択すると、Amazon ECS はトレースデータを送信するように事前設定された OpenTelemetry コンテナサイドカーで使用する AWS Distro を作成します。(詳しくは、「アプリケーショントレースデータの収集」を参照してください。)

    重要

    トレースコレクションを使用する場合、タスク定義には必要なアクセス許可を持つタスクの IAM ロールが必要です。(詳しくは、「AWS X-Ray を使用した AWS Distro for OpenTelemetry の統合に必要な IAM 権限」を参照してください。)

  15. (オプション) [Use metric collection] (トレースコレクションを使用) オプションを選択し、タスクのメトリクスを収集し、Amazon CloudWatch または Amazon Managed Service for Prometheus に送信します。このオプションを選択すると、Amazon ECS はアプリケーションメトリクスを送信するよう事前に設定された OpenTelemetry コンテナサイドカーで使用する AWS Distro を作成します。詳細については、「アプリケーションメトリクスを収集する」を参照してください。

    1. [Amazon CloudWatch] を選択した場合、カスタムアプリケーションメトリクスはカスタムメトリクスとして CloudWatch にルーティングされます。詳細については、「アプリケーションメトリクスを Amazon CloudWatch にエクスポートする」を参照してください。

      重要

      Amazon CloudWatch にアプリケーションメトリクスをエクスポートする場合、タスク定義には、必要なアクセス権限を持つタスク IAM ロールが必要です。(詳しくは、「OpenTelemetry 用 AWS Distro と Amazon CloudWatch の統合に必要な IAM 許可」を参照してください。)

    2. [Amazon Managed Service for Prometheus (Prometheus libraries instrumentation)] (Prometheus 向け Amazon マネージドサービス (Prometheus ライブラリ計測)) を選択した場合、タスクレベルの CPU、メモリ、ネットワーク、ストレージのメトリクスとカスタムアプリケーションメトリクスが Amazon Managed Service for Prometheus にルーティングされます。[Workspace remote write endpoint] (Workspace のリモート書き込み用エンドポイント) には、Prometheus ワークスペースのリモート書き込みエンドポイント URL を入力します。[Scraping target] (スクレイピングターゲット) には、AWS Distro for OpenTelemetry コレクターがメトリクスデータをスクレイプするために使用できるホストとポートを入力します。(詳しくは、「アプリケーションメトリクスを Amazon Managed Service for Prometheus にエクスポートする」を参照してください。)

      重要

      Amazon Managed Service for Prometheus にアプリケーションメトリクスをエクスポートする場合、タスク定義には、必要なアクセス権限を持つタスク IAM ロールが必要です。(詳しくは、「OpenTelemetry 用 AWS Distro と Amazon Managed Service for Prometheus の統合に必要な IAM 許可」を参照してください。)

    3. [Amazon Managed Service for Prometheus (Open Telemetry instrumentation)] (Prometheus 向け Amazon マネージドサービス (OpenTelemetry 計測)) を選択した場合、タスクレベルの CPU、メモリ、ネットワーク、ストレージのメトリクスとカスタムアプリケーションメトリクスが Amazon Managed Service for Prometheus にルーティングされます。[Workspace remote write endpoint] (Workspace のリモート書き込み用エンドポイント) には、Prometheus ワークスペースのリモート書き込みエンドポイント URL を入力します。(詳しくは、「アプリケーションメトリクスを Amazon Managed Service for Prometheus にエクスポートする」を参照してください。)

      重要

      Amazon Managed Service for Prometheus にアプリケーションメトリクスをエクスポートする場合、タスク定義には、必要なアクセス権限を持つタスク IAM ロールが必要です。詳細については、「OpenTelemetry 用 AWS Distro と Amazon Managed Service for Prometheus の統合に必要な IAM 許可」を参照してください。

  16. (オプション) [Tags] (タグ) を展開します。タグをキーバリューペアとしてタスク定義に追加します。

    タグを追加または削除します。

    • [タグを追加] [Add tag] (タグを追加) を選択し、以下を実行します。

      • [キー] にはキー名を入力します。

      • [] にキー値を入力します。

    • [タグの削除] タグの横にある [タグの削除] を選択します。

  17. [Next] (次) を選択して、タスク定義を確認します。

  18. [Review and create] (確認と作成) ページで、各タスク定義セクションを確認します。[Edit (編集)] を選択して、変更を加えることができます。タスク定義が完了したら、[Create] (作成) を選択して、タスク定義を登録します。

New Amazon ECS console JSON editor
  1. 新しいコンソールを「https://console.aws.amazon.com/ecs/v2」で開きます。

  2. ナビゲーションペインで、[Task definitions] (タスク定義) を選択します。

  3. [Create new task definition] (新しいタスク定義の作成)、[Create new task definition with JSON] (JSON で新しいタスク定義を作成) の順に選択します。

  4. JSON エディタボックスで、JSON ファイルを編集し、

    JSON は、JSON 検証 で指定された検証チェックに合格する必要があります。

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