タスクメタデータエンドポイントバージョン 3 - Amazon Elastic Container Service

タスクメタデータエンドポイントバージョン 3

重要

AWS FargateでホストされているAmazon ECS タスクを使用している場合は、AWS Fargateの「Amazon Elastic コンテナ サービスユーザーガイド」の「タスク メタデータ エンドポイント バージョン 3」を参照してください。

Amazon ECS コンテナエージェントの 1.21.0 バージョン以降では、エージェントはタスクの各コンテナに、環境変数 ECS_CONTAINER_METADATA_URI を挿入します。タスクメタデータバージョン 3 エンドポイントに対してクエリを実行すると、さまざまなタスクメタデータおよび Docker 統計 をタスクで利用できます。bridge ネットワークモードを使用するタスクの場合、/stats エンドポイントにクエリを実行する際にネットワークメトリクスを使用できます。

タスクメタデータの有効化

タスクメタデータエンドポイントバージョン 3 の機能は、プラットフォームのバージョン v1.3.0 以降で 1.54.0 Fargate 起動タイプを使用するタスクと、EC2 起動タイプを使用し、Amazon EC2 コンテナエージェントのバージョン 1.21.0 以降を実行する Amazon EC2 Linux インフラストラクチャで起動されるタスク、または、Amazon EC2コンテナエージェントの最新のバージョン awsvpc を実行するAmazon ECS Windows インフラストラクチャで起動され、ネットワークモードで使用するタスクは、デフォルトで有効になります。詳細については、「Amazon ECS コンテナエージェント バージョン」を参照してください。

エージェントを最新バージョンに更新することで、古いコンテナインスタンスにこの機能のサポートを追加できます。詳細については、「Amazon ECS コンテナエージェントをアップデートする」を参照してください。

重要

Fargate 起動タイプおよびプラットフォーム v1.3.0 以前を使用するタスクでは、タスクメタデータバージョン 2 エンドポイントはサポートされています。詳細については、「タスクメタデータエンドポイントバージョン 2」を参照してください。

タスクメタデータエンドポイントバージョン 3 パス

次のタスクメタデータエンドポイントをコンテナで使用できます。

${ECS_CONTAINER_METADATA_URI}

このパスはコンテナのメタデータ JSON を返します。

${ECS_CONTAINER_METADATA_URI}/task

このパスはタスクのメタデータ JSON を返します。これには、タスクに関連付けられたすべてのコンテナのコンテナ ID および名前のリストが含まれています。このエンドポイントのレスポンスの詳細については、「タスクメタデータ JSON レスポンス」を参照してください。

${ECS_CONTAINER_METADATA_URI}/taskWithTags

このパスは、/task API を使用して取得できるタスクとコンテナインスタンスタグに加えて、ListTagsForResource エンドポイントに含まれるタスクのメタデータを返します。

${ECS_CONTAINER_METADATA_URI}/stats

このパスは特定の Docker コンテナの Docker 統計 JSON を返します。返される各統計の詳細については、Docker API ドキュメントの「ContainerStats」を参照してください。

${ECS_CONTAINER_METADATA_URI}/task/stats

このパスはタスクに関連付けられたすべてのコンテナの Docker 統計 JSON を返します。返される各統計の詳細については、Docker API ドキュメントの「ContainerStats」を参照してください。

タスクメタデータ JSON レスポンス

次の情報が、タスクメタデータエンドポイント (${ECS_CONTAINER_METADATA_URI}/task) JSON レスポンスから返されます。

Cluster

タスクが属する Amazon ECS クラスターの Amazon リソースネーム (ARN)または短縮名。

TaskARN

コンテナが属しているタスクの完全な Amazon リソースネーム (ARN)。

Family

タスクの Amazon ECS タスク定義のファミリー。

Revision

タスクの Amazon ECS タスク定義のリビジョン。

DesiredStatus

Amazon ECSからのタスクの望ましいステータス。

KnownStatus

Amazon ECS からのタスクの既知のステータス。

Limits

タスクレベルで指定されたリソースの制限 (CPU やメモリなど)。リソースの制限が定義されていない場合はこのパラメータは省略されます。

PullStartedAt

最初のコンテナイメージのプル開始時のタイムスタンプ。

PullStoppedAt

最後のコンテナイメージのプル終了時のタイムスタンプ。

AvailabilityZone

タスクがあるアベイラビリティーゾーン。

注記

アベイラビリティーゾーンのメタデータは、プラットフォームバージョン 1.4 以降を使用するFargateタスクでのみ使用できます。

Containers

タスクに関連付けられている各コンテナのコンテナメタデータのリスト。

DockerId

コンテナの Docker ID。

Name

タスク定義で指定されたコンテナの名前。

DockerName

Docker に提供されたコンテナの名前。Amazon ECSコンテナエージェントはコンテナに一意の名前を生成し、同じタスク定義の複数のコピーが単一のインスタンスで実行される場合に名前の競合を回避します。

Image

コンテナのイメージ。

ImageID

イメージの SHA-256 ダイジェスト。

Ports

コンテナに対して公開されている任意のポート。公開ポートがない場合はこのパラメータは省略されます。

Labels

コンテナに適用された任意のラベル。ラベルが適用されていない場合はこのパラメータは省略されます。

DesiredStatus

Amazon ECSからのコンテナの望ましいステータス。

KnownStatus

Amazon ECS からのコンテナの既知のステータス。

ExitCode

コンテナの終了コード。このパラメータは、コンテナが終了していない場合は省略されます。

Limits

コンテナレベルで指定されたリソースの制限 (CPU やメモリなど)。リソースの制限が定義されていない場合はこのパラメータは省略されます。

CreatedAt

コンテナ作成時のタイムスタンプ。このパラメータは、コンテナがまだ作成されていない場合は省略されます。

StartedAt

コンテナ起動時のタイムスタンプ。このパラメータは、コンテナがまだ起動していない場合は省略されます。

FinishedAt

コンテナ停止時のタイムスタンプ。このパラメータは、コンテナがまだ停止していない場合は省略されます。

Type

コンテナのタイプ。タスク定義で指定されているコンテナのタイプは NORMAL です。他のコンテナタイプは無視してかまいません。これらはAmazon ECS コンテナエージェントによってプロビジョニングされる内部タスクリソースで使用されます。

Networks

ネットワークモードや IP アドレスなど、コンテナのネットワーク情報。ネットワーク情報が定義されていない場合はこのパラメータは省略されます。

ExecutionStoppedAt

タスクの DesiredStatusSTOPPED に移行した時のタイムスタンプ。これは、必須コンテナが STOPPED に移行したときに発生します。

Examples

以下の例は、タスクメタデータエンドポイントからの出力を示しています。

コンテナメタデータレスポンスの例

${ECS_CONTAINER_METADATA_URI} エンドポイントにクエリを実行すると、コンテナ自体に関するメタデータのみが返されます。以下に出力例を示します。

{ "DockerId": "43481a6ce4842eec8fe72fc28500c6b52edcc0917f105b83379f88cac1ff3946", "Name": "nginx-curl", "DockerName": "ecs-nginx-5-nginx-curl-ccccb9f49db0dfe0d901", "Image": "nrdlngr/nginx-curl", "ImageID": "sha256:2e00ae64383cfc865ba0a2ba37f61b50a120d2d9378559dcd458dc0de47bc165", "Labels": { "com.amazonaws.ecs.cluster": "default", "com.amazonaws.ecs.container-name": "nginx-curl", "com.amazonaws.ecs.task-arn": "arn:aws:ecs:us-east-2:012345678910:task/9781c248-0edd-4cdb-9a93-f63cb662a5d3", "com.amazonaws.ecs.task-definition-family": "nginx", "com.amazonaws.ecs.task-definition-version": "5" }, "DesiredStatus": "RUNNING", "KnownStatus": "RUNNING", "Limits": { "CPU": 512, "Memory": 512 }, "CreatedAt": "2018-02-01T20:55:10.554941919Z", "StartedAt": "2018-02-01T20:55:11.064236631Z", "Type": "NORMAL", "Networks": [ { "NetworkMode": "awsvpc", "IPv4Addresses": [ "10.0.2.106" ] } ] }

タスクメタデータレスポンスの例

${ECS_CONTAINER_METADATA_URI}/task エンドポイントにクエリを実行すると、コンテナが属しているタスクに関するメタデータが返されます。以下に出力例を示します。

1 つのコンテナタスクの JSON レスポンスを次に示します。

{ "Cluster": "default", "TaskARN": "arn:aws:ecs:us-east-2:012345678910:task/9781c248-0edd-4cdb-9a93-f63cb662a5d3", "Family": "nginx", "Revision": "5", "DesiredStatus": "RUNNING", "KnownStatus": "RUNNING", "Containers": [ { "DockerId": "731a0d6a3b4210e2448339bc7015aaa79bfe4fa256384f4102db86ef94cbbc4c", "Name": "~internal~ecs~pause", "DockerName": "ecs-nginx-5-internalecspause-acc699c0cbf2d6d11700", "Image": "amazon/amazon-ecs-pause:0.1.0", "ImageID": "", "Labels": { "com.amazonaws.ecs.cluster": "default", "com.amazonaws.ecs.container-name": "~internal~ecs~pause", "com.amazonaws.ecs.task-arn": "arn:aws:ecs:us-east-2:012345678910:task/9781c248-0edd-4cdb-9a93-f63cb662a5d3", "com.amazonaws.ecs.task-definition-family": "nginx", "com.amazonaws.ecs.task-definition-version": "5" }, "DesiredStatus": "RESOURCES_PROVISIONED", "KnownStatus": "RESOURCES_PROVISIONED", "Limits": { "CPU": 0, "Memory": 0 }, "CreatedAt": "2018-02-01T20:55:08.366329616Z", "StartedAt": "2018-02-01T20:55:09.058354915Z", "Type": "CNI_PAUSE", "Networks": [ { "NetworkMode": "awsvpc", "IPv4Addresses": [ "10.0.2.106" ] } ] }, { "DockerId": "43481a6ce4842eec8fe72fc28500c6b52edcc0917f105b83379f88cac1ff3946", "Name": "nginx-curl", "DockerName": "ecs-nginx-5-nginx-curl-ccccb9f49db0dfe0d901", "Image": "nrdlngr/nginx-curl", "ImageID": "sha256:2e00ae64383cfc865ba0a2ba37f61b50a120d2d9378559dcd458dc0de47bc165", "Labels": { "com.amazonaws.ecs.cluster": "default", "com.amazonaws.ecs.container-name": "nginx-curl", "com.amazonaws.ecs.task-arn": "arn:aws:ecs:us-east-2:012345678910:task/9781c248-0edd-4cdb-9a93-f63cb662a5d3", "com.amazonaws.ecs.task-definition-family": "nginx", "com.amazonaws.ecs.task-definition-version": "5" }, "DesiredStatus": "RUNNING", "KnownStatus": "RUNNING", "Limits": { "CPU": 512, "Memory": 512 }, "CreatedAt": "2018-02-01T20:55:10.554941919Z", "StartedAt": "2018-02-01T20:55:11.064236631Z", "Type": "NORMAL", "Networks": [ { "NetworkMode": "awsvpc", "IPv4Addresses": [ "10.0.2.106" ] } ] } ], "PullStartedAt": "2018-02-01T20:55:09.372495529Z", "PullStoppedAt": "2018-02-01T20:55:10.552018345Z", "AvailabilityZone": "us-east-2b" }