新しいコンソールを使用したタスク定義の作成
新しい Amazon ECS コンソールエクスペリエンスを使用して、タスク定義を作成します。タスク定義の作成プロセスをできるだけ簡単にするために、コンソールには、以下で説明する多くの選択肢に対するデフォルトの選択肢があります。コンソール内のほとんどのセクションには、詳細なコンテキストを提供するヘルプパネルもあります。
新しいタスク定義を作成するには (新しい Amazon ECS コンソール)
新しいコンソールを「https://console.aws.amazon.com/ecs/v2
」で開きます。 -
ナビゲーションペインで、[Task Definitions] (タスク定義)、[Create new Task Definition] (新しいタスク定義の作成) の順に選択します。
-
[Task definition family] (タスク定義ファミリー) を使用する場合、タスク定義ファミリーには、タスク定義に一意の名前を指定します。
-
タスク定義で定義するコンテナごとに、以下のステップを実行します。
-
[Name] (名前) を使用する場合、コンテナの名前を指定します。
-
[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
での形式。 -
[Essential container] (基本コンテナ) を使用する場合、タスク定義に 2 つ以上のコンテナが定義されている場合、コンテナを基本と見なすかどうかを指定できます。コンテナが [essential] (基本) とマークされている場合、そのコンテナが停止すると、タスクは停止します。各タスク定義には、少なくとも 1 つの基本コンテナを含む必要があります。
-
ポートマッピングにより、コンテナはホスト上のポートにアクセスしてトラフィックを送受信できるようになります。[Port mappings] (ポートマッピング) で、次のいずれかを実行]ます。
-
[awsvpc] ネットワークモードを使用する場合、[Container port] (コンテナポート) と [Protocol] (プロトコル) に、コンテナに使用するポートマッピングを指定します。
-
[bridge] (ブリッジ) ネットワークモードを使用する場合、[Container port] (コンテナポート) と [Protocol] (プロトコル) に、コンテナに使用するポートマッピングを指定します。次のページで [bridge] (ブリッジ) ネットワークモードを選択します。選択した後、[Previous] (戻る) を選択し、次に [Host port] (ホストポート) で、コンテナ用に予約するコンテナインスタンスのポート番号を指定します。
追加のコンテナポートマッピングを指定するには、[Add more port mappings] (ポートマッピングを追加) を選択します。
-
-
[Environment variables] (環境変数) セクションを展開して、コンテナに挿入する環境変数を指定します。環境変数は、キーバリューペアを使用して個別に指定するか、Amazon S3 バケットでホストされている環境変数ファイルを指定して一括で指定できます。環境変数ファイルのフォーマット方法については、環境変数の指定 を参照してください。
-
(オプション) [] を選択します。コンテナを追加するをクリックして、タスク定義にコンテナを追加します。すべてのコンテナが定義されたら、[Next] (次へ) を選択します。
-
-
[App environment] (アプリ環境) の場合、[AWS Fargate (serverless)] ((サーバーレス))、[Amazon EC2 instances] (Amazon EC2 インスタンス)、または両方を選択します。Amazon ECS は、この値を使用して検証を実行し、タスク定義パラメータがインフラストラクチャタイプに対して有効であることを確認します。
-
[Operating system/Architecture] (オペレーティングシステム/アーキテクチャ) を使用する場合、タスクのオペレーティングシステムと CPU アーキテクチャを選択します。
タスクを 64 ビット ARM アーキテクチャで実行するには、Linux/ARM64 を選択します。詳細については、「ランタイムプラットフォーム」を参照してください。
Windows コンテナで AWS Fargate(serverless) (サーバーレス) タスクを実行するには、サポートされている Windows オペレーティングシステムを選択します。詳細については、「AWS Fargate の Windows コンテナに関する考慮事項」を参照してください。
-
[Task size] (タスクサイズ) を使用する場合は、タスク用に予約する CPU とメモリの値を指定します。CPU 値は vCPUs として指定され、メモリは GB として指定されます。
Fargate でホストされるタスクの場合、次の表に有効な CPU とメモリの組み合わせを示します。
CPU の値 メモリの値 256 (.25 vCPU)
512 MB、1 GB、2 GB
512 (.5 vCPU)
1 GB、2 GB、3 GB、4 GB
1,024 (1 vCPU)
2 GB、3 GB、4 GB、5 GB、6 GB、7 GB、8 GB
2,048 (2 vCPU)
4 GB ~ 16 GB (1 GB のインクリメント)
4,096 (4 vCPU)
8 GB ~ 30 GB (1 GB のインクリメント)
Amazon EC2 でホストされているタスクの場合、サポートされているタスクの CPU 値は 128 CPU ユニット (0.125 vCPU) ~ 10240 CPU ユニット (10 vCPU) です。
注記 タスクレベル CPU およびメモリのパラメータは Windows コンテナでは無視されます。
-
[Container size] (コンテナサイズ) セクションを展開して、コンテナに提示するメモリ量 (GB) と、Amazon ECS コンテナエージェントがコンテナ用に予約する CPU ユニット数を指定します。
コンテナは、指定したメモリを超えようとすると、強制終了されます。タスク内のすべてのコンテナ用に予約されるメモリの合計量は、タスクの [Memory] (メモリ) 値より小さくする必要があります (指定されている場合)。
タスク内のすべてのコンテナ用に予約される CPU の合計量は、タスクレベルの CPU (CPU) 値より小さくする必要があります。
指定した値に 1024 を乗算して、Amazon EC2 インスタンスタイプごとに使用可能な CPU ユニットの数を決定できます。例えば、t3 ナノインスタンスの値は 2048 です。詳細については、「Amazon EC2 インスタンス
」を参照してください。 -
(オプション) [Task roles, network mode] (タスクロール、ネットワークモード) セクションを展開し、次の内容を指定します。
[Task role] (タスクロール) を使用する場合は、タスクに割り当てる IAM ロールを選択します。タスク IAM ロールは、タスク内のコンテナが AWS APIを呼び出すアクセス権限を提供します。
[Network mode] (ネットワークモード) の場合、使用するネットワークモードを選択します。デフォルトは、awsvpc モードです。詳細については、Amazon ECS タスクネットワーキングを参照してください。
ネットワークモードで [bridge] (ブリッジ) を選択した場合は、[Previous] (戻る) を選択し、[Port mappings] (ポートマッピング) の [Host port] (ホストポート) で、コンテナ用に予約するコンテナインスタンスのポート番号を指定します。
-
(オプション) [Storage] (ストレージ) セクションを使用して、Fargate でホストされるタスクのエフェメラルストレージ量を拡張したり、タスクのデータボリューム構成を追加できます。
-
[Amount] (量) には、Fargate タスクのデフォルト値 20 GiB を超えて使用可能なエフェメラルストレージを拡張するには、200 GiB までの値を指定します。
-
-
(オプション) [Add volume] (ボリュームを追加) を選択し、タスクのデータボリューム設定を追加します。各データボリュームについて、以下のステップを完了します。
-
[Volume type] (ボリュームタイプ) を使用する場合、[Bind mount] (バインドマウント) を選択します。
-
[Volume name] (ボリューム名) を使用する場合、データボリューム名を指定します。データボリューム名は、後のステップでコンテナマウントポイントを作成するときに使用されます。
-
[Container mount points] (コンテナマウントポイント) セクションを展開し、[Add] (追加) を選択します。
-
[Container] (コンテナ) には、マウントポイントのコンテナを選択します。
-
[Source volume] (ソースボリューム) を使用する場合、コンテナにマウントするデータボリュームを選択します。
-
[Container path] (コンテナパス) に、ボリュームをマウントするコンテナのパスを指定します。
-
Read only (読み取り専用) を使用する場合、ボリュームを読み取り専用にするかどうかを指定します。
-
タスク定義で定義された各データボリュームにマウントポイントが定義されるまで、[Add] (追加) を選択してマウントポイントを追加します。
-
-
(オプション) [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 バケット名を指定する必要があります。
-
-
(オプション) [Use trace collection] (トレースコレクションを使用) を選択し、アプリケーションから AWS X-Ray にトレースデータをルーティングするようにタスクを設定します。このオプションを選択すると、Amazon ECS はトレースデータを送信するように事前設定された OpenTelemetry コンテナサイドカーで使用する AWS Distro を作成します。詳細については、「アプリケーショントレースデータの収集」を参照してください。
重要 トレースコレクションを有効にする場合、タスク定義には必要なアクセス許可を持つタスク IAM ロールが必要です。詳細については、「AWS X-Ray を使用した AWS Distro for OpenTelemetry の統合に必要な IAM 権限」を参照してください。
-
(オプション) [Use metric collection] (トレースコレクションを使用) オプションを選択し、タスクのメトリクスを収集し、Amazon CloudWatch または Amazon Managed Service for Prometheus に送信します。このオプションを選択すると、Amazon ECS はアプリケーションメトリクスを送信するよう事前に設定された OpenTelemetry コンテナサイドカーで使用する AWS Distro を作成します。詳細については、「アプリケーションメトリクスを収集する」を参照してください。
-
[Amazon CloudWatch] を選択した場合、カスタムアプリケーションメトリクスはカスタムメトリクスとして CloudWatch にルーティングされます。詳細については、「アプリケーションメトリクスを Amazon CloudWatch にエクスポートする」を参照してください。
重要 Amazon CloudWatch にアプリケーションメトリクスをエクスポートする場合、タスク定義には、必要なアクセス権限を持つタスク IAM ロールが必要です。詳細については、「OpenTelemetry 用 AWS Distro と Amazon CloudWatch の統合に必要な IAM 許可」を参照してください。
-
[Amazon Managed Service for Prometheus (Prometheus libraries instrumentation)] を選択した場合、タスクレベルの CPU、メモリ、ネットワーク、ストレージのメトリクスとカスタムアプリケーションメトリクスが Amazon Managed Service for Prometheus にルーティングされます。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 許可」を参照してください。
-
[Amazon Managed Service for Prometheus (Open Telemetry instrumentation)] を選択した場合、タスクレベルの CPU、メモリ、ネットワーク、ストレージのメトリクスとカスタムアプリケーションメトリクスが Amazon Managed Service for Prometheus にルーティングされます。Workspace のリモート書き込みエンドポイントを使用する場合、Prometheus ワークスペースのリモート書き込みエンドポイント URL を指定します。詳細については、「アプリケーションメトリクスを Amazon Managed Service for Prometheus にエクスポートする」を参照してください。
重要 Amazon Managed Service for Prometheus にアプリケーションメトリクスをエクスポートする場合、タスク定義には、必要なアクセス権限を持つタスク IAM ロールが必要です。詳細については、「OpenTelemetry 用 AWS Distro と Amazon Managed Service for Prometheus の統合に必要な IAM 許可」を参照してください。
-
-
(オプション) [Tags] (タグ) を展開します。タグをキーバリューペアとしてタスク定義に追加します。
-
[Next] (次) を選択して、タスク定義を確認します。
-
[Review and create] (確認と作成) ページで、各タスク定義セクションを確認します。[Edit (編集)] を選択して、変更を加えることができます。タスク定義が完了したら、[Create] (作成) を選択して、タスク定義を登録します。