

# Amazon ECS タスクメタデータエンドポイントバージョン 2
<a name="task-metadata-endpoint-v2"></a>

**重要**  
タスクメタデータのバージョン 2 エンドポイントは、現在アクティブにメンテナンスされていません。タスクメタデータバージョン 4 エンドポイントを更新して、最新のメタデータエンドポイント情報を取得することをお勧めします。詳細については、「[Amazon ECS タスクメタデータエンドポイントバージョン 4](task-metadata-endpoint-v4.md)」を参照してください。

Amazon ECS コンテナエージェントのバージョン 1.17.0 から、さまざまなタスクメタデータおよび [[Docker 統計](https://docs.docker.com/reference/api/engine/version/v1.30/#tag/Container/operation/ContainerStats)]を、Amazon ECS コンテナエージェントによって指定される HTTP エンドポイントで `awsvpc` ネットワークモードを使用するタスクで利用できます。

`awsvpc` ネットワークモードで起動されたタスクに属するすべてのコンテナには、事前定義されたリンクローカルアドレス範囲内のローカル IPv4 アドレスが割り当てられます。コンテナがメタデータエンドポイントにクエリを実行する場合、Amazon ECS コンテナエージェントは、一意の IP アドレスに基づいてコンテナが属するタスクを判断し、そのタスクのメタデータと統計情報を返します。

## タスクメタデータの有効化
<a name="task-metadata-endpoint-v2-enable"></a>

**重要**  
タスクメタデータのバージョン 2 エンドポイントは、現在アクティブにメンテナンスされていません。タスクメタデータバージョン 4 エンドポイントを更新して、最新のメタデータエンドポイント情報を取得することをお勧めします。詳細については、「[Amazon ECS タスクメタデータエンドポイントバージョン 4](task-metadata-endpoint-v4.md)」を参照してください。

Amazon ECS コンテナエージェントのバージョン 1.17.0 から、さまざまなタスクメタデータおよび [[Docker 統計](https://docs.docker.com/reference/api/engine/version/v1.30/#tag/Container/operation/ContainerStats)]を、Amazon ECS コンテナエージェントによって指定される HTTP エンドポイントで `awsvpc` ネットワークモードを使用するタスクで利用できます。

`awsvpc` ネットワークモードで起動されたタスクに属するすべてのコンテナには、事前定義されたリンクローカルアドレス範囲内のローカル IPv4 アドレスが割り当てられます。コンテナがメタデータエンドポイントにクエリを実行する場合、Amazon ECS コンテナエージェントは、一意の IP アドレスに基づいてコンテナが属するタスクを判断し、そのタスクのメタデータと統計情報を返します。

### タスクメタデータの有効化
<a name="task-metadata-endpoint-v2-enable"></a>

タスクメタデータバージョン 2 機能は、デフォルトで次のタスクに対して有効に設定されています。
+ プラットフォームバージョンが v1.1.0 以降の Fargate を使用するタスク。詳細については、「[Amazon ECS 向け Fargate プラットフォームバージョン](platform-fargate.md)」を参照してください。
+ `awsvpc` ネットワークモードも使用し、Amazon ECS コンテナエージェントのバージョン 1.17.0 以上を実行している Amazon EC2 Linux インフラストラクチャ、または Amazon ECS コンテナエージェントのバージョン `1.54.0` 以上を実行している Amazon EC2 Windows インフラストラクチャで起動される EC2 を使用するタスク。詳細については、「[Amazon ECS Linux コンテナインスタンスの管理](manage-linux.md)」を参照してください。

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

### タスクメタデータエンドポイントのパス
<a name="task-metadata-endpoint-v2-paths"></a>

次の API エンドポイントをコンテナで使用できます。

`169.254.170.2/v2/metadata`  
このエンドポイントはタスクのメタデータ JSON を返します。これには、タスクに関連付けられたすべてのコンテナのコンテナ ID および名前のリストが含まれています。このエンドポイントのレスポンスの詳細については、「[タスクメタデータ JSON レスポンス](#task-metadata-endpoint-v2-response)」を参照してください。

`169.254.170.2/v2/metadata/<container-id>`  
このエンドポイントは指定された Docker コンテナ ID のメタデータ JSON を返します。

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

`169.254.170.2/v2/stats`  
このエンドポイントはタスクに関連付けられたすべてのコンテナの Docker 統計 JSON を返します。返される各統計の詳細については、Docker API ドキュメントの「[ContainerStats](https://docs.docker.com/reference/api/engine/version/v1.30/#tag/Container/operation/ContainerStats)」を参照してください。

`169.254.170.2/v2/stats/<container-id>`  
このエンドポイントは指定された Docker コンテナ ID の Docker 統計 JSON を返します。返される各統計の詳細については、Docker API ドキュメントの「[ContainerStats](https://docs.docker.com/reference/api/engine/version/v1.30/#tag/Container/operation/ContainerStats)」を参照してください。

### タスクメタデータ JSON レスポンス
<a name="task-metadata-endpoint-v2-response"></a>

次の情報が、タスクメタデータエンドポイント (`169.254.170.2/v2/metadata`) JSON レスポンスから返されます。

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

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

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

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

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

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

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

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

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

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

`Containers`  
タスクに関連付けられている各コンテナのコンテナメタデータのリスト。    
`DockerId`  
コンテナの Docker ID。  
`Name`  
タスク定義で指定されたコンテナの名前。  
`DockerName`  
Docker に提供されたコンテナの名前。Amazon ECSコンテナエージェントはコンテナに一意の名前を生成し、同じタスク定義の複数のコピーが単一のインスタンスで実行される場合に名前の競合を回避します。  
`Image`  
コンテナのイメージ。  
`ImageID`  
イメージマニフェストの SHA-256 ダイジェスト。これは、`repository-url/image@sha256:digest` 形式を使用してイメージをプルするために使用できるダイジェストです。  
`Ports`  
コンテナに対して公開されている任意のポート。公開ポートがない場合はこのパラメータは省略されます。  
`Labels`  
コンテナに適用された任意のラベル。ラベルが適用されていない場合はこのパラメータは省略されます。  
`DesiredStatus`  
Amazon ECSからのコンテナの望ましいステータス。  
`KnownStatus`  
Amazon ECS からのコンテナの既知のステータス。  
`ExitCode`  
コンテナの終了コード。このパラメータは、コンテナが終了していない場合は省略されます。  
`Limits`  
CPU (CPU 単位で表される) やメモリなど、コンテナレベルで指定されたリソースの制限。リソースの制限が定義されていない場合はこのパラメータは省略されます。  
`CreatedAt`  
コンテナ作成時のタイムスタンプ。このパラメータは、コンテナがまだ作成されていない場合は省略されます。  
`StartedAt`  
コンテナ起動時のタイムスタンプ。このパラメータは、コンテナがまだ起動していない場合は省略されます。  
`FinishedAt`  
コンテナ停止時のタイムスタンプ。このパラメータは、コンテナがまだ停止していない場合は省略されます。  
`Type`  
コンテナのタイプ。タスク定義で指定されているコンテナのタイプは `NORMAL` です。他のコンテナタイプは無視してかまいません。これらはAmazon ECS コンテナエージェントによってプロビジョニングされる内部タスクリソースで使用されます。  
`Networks`  
ネットワークモードや IP アドレスなど、コンテナのネットワーク情報。ネットワーク情報が定義されていない場合はこのパラメータは省略されます。

`ClockDrift`  
基準時刻とシステム時刻の違いに関する情報。これは、Linux オペレーティングシステムに適用されます。この機能では、Amazon Time Sync Service を使用してクロックの精度を測定し、コンテナのクロックエラー範囲を特定します。詳細については、「*Linux インスタンス用 Amazon EC2 ユーザーガイド*」の「[Linux インスタンスの時刻の設定](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/set-time.html)」を参照してください。    
`ReferenceTime`  
クロック精度の基礎。Amazon ECS は、`2021-09-07T16:57:44Z` などの NTP を通じて協定世界時 (UTC) の世界標準を使用しています。  
`ClockErrorBound`  
UTC へのオフセットとして定義されるクロックエラーの対策。この誤差は、基準時刻とシステム時刻の差 (ミリ秒単位) です。  
`ClockSynchronizationStatus`  
最新のシステム時刻と基準時刻間の同期試行における成功状況を示します。  
有効な値は `SYNCHRONIZED` および ` NOT_SYNCHRONIZED` です。

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

### タスクメタデータレスポンスの例
<a name="task-metadata-endpoint-v2-example-task-metadata-response"></a>

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"
}
```