Amazon ECS 작업 메타데이터 엔드포인트 버전 2 - Amazon Elastic Container Service

Amazon ECS 작업 메타데이터 엔드포인트 버전 2

중요

태스크 메타데이터 버전 2 엔드포인트는 더 이상 능동적으로 관리되지 않습니다. 최신 메타데이터 엔드포인트 정보를 가져오려면 태스크 메타데이터 버전 4 엔드포인트를 업데이트하는 것이 좋습니다. 자세한 정보는 Amazon ECS 작업 메타데이터 엔드포인트 버전 4을 참조하세요.

Amazon ECS 컨테이너 에이전트 버전 1.17.0부터 다양한 태스크 메타데이터와 Docker 통계가 Amazon ECS 컨테이너 에이전트에서 제공하는 HTTP 엔드포인트에서 awsvpc 네트워크 모드를 사용하는 태스크에 제공됩니다.

awsvpc 네트워크 모드를 사용하여 시작되는 태스크에 속한 모든 컨테이너는 미리 정의된 링크-로컬 주소 범위 내의 로컬 IPv4 주소를 받습니다. 컨테이너가 메타데이터 엔드포인트를 쿼리할 때 Amazon ECS 컨테이너 에이전트는 고유의 IP 주소를 기반으로 컨테이너가 어떤 태스크에 속하는지를 확인할 수 있으며 해당 태스크에 대한 메타데이터와 통계가 반환됩니다.

태스크 메타데이터 활성화

태스크 메타데이터 버전 2 기능은 기본적으로 다음 작업에 대해 사용하도록 설정됩니다.

  • 플랫폼 버전 v1.1.0 이상을 사용하는 Fargate 시작 유형을 사용하는 작업. 자세한 내용은 Amazon ECS에 대한 Fargate 플랫폼 버전 단원을 참조하십시오.

  • 똑같이 awsvpc 네트워크 모드를 사용하는 EC2 시작 유형을 사용하고, Amazon ECS 컨테이너 에이전트 버전 1.17.0 이상에서 실행되는 Amazon EC2 Linux 인프라 또는 Amazon ECS 컨테이너 에이전트 버전 1.54.0 이상에서 실행되는 Amazon EC2 Windows 인프라에서 시작된 태스크입니다. 자세한 내용은 Amazon ECS Linux 컨테이너 인스턴스 관리 단원을 참조하십시오.

에이전트를 최신 버전으로 업데이트하여 이전 버전의 컨테이너 인스턴스에서 이 기능에 대한 지원을 추가할 수 있습니다. 자세한 정보는 Amazon ECS 컨테이너 에이전트 업데이트을 참조하세요.

태스크 메타데이터 엔드포인트 경로

다음 API 엔드포인트를 컨테이너에 사용할 수 있습니다.

169.254.170.2/v2/metadata

이 엔드포인트는 태스크와 연결된 모든 컨테이너의 컨테이너 ID 및 이름 목록을 포함하여 태스크에 대한 메타데이터 JSON을 반환합니다. 이 엔드포인트의 응답에 대한 자세한 내용은 태스크 메타데이터 JSON 응답 섹션을 참조하세요.

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를 참조하세요.

169.254.170.2/v2/stats/<container-id>

이 엔드포인트는 지정된 Docker 컨테이너 ID에 대한 Docker 통계 JSON을 반환합니다. 반환된 각 통계에 대한 자세한 내용은 Docker API 설명서의 ContainerStats를 참조하세요.

태스크 메타데이터 JSON 응답

다음 정보가 태스크 메타데이터 엔드포인트(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 다이제스트입니다.

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를 사용하여 클럭 정확도를 측정하고 컨테이너에 대한 클록 오류 범위를 제공합니다. 자세한 내용은 Amazon EC2 Linux용 사용 설명서의 Linux 인스턴스에 대한 시간 설정을 참조하세요.

ReferenceTime

클록 정확도의 기초입니다. Amazon ECS는 NTP를 통해 협정 세계시(UTC) 글로벌 표준을 사용합니다(예: 2021-09-07T16:57:44Z).

ClockErrorBound

UTC에 대한 오프셋으로 정의되는 클록 오류 측정값입니다. 이 오류는 기준 시간과 시스템 시간의 차이(밀리초)입니다.

ClockSynchronizationStatus

시스템 시간과 기준 시간 간의 가장 최근 동기화 시도가 성공했는지를 나타냅니다.

유효 값은 SYNCHRONIZED NOT_SYNCHRONIZED입니다.

ExecutionStoppedAt

태스크의 DesiredStatusSTOPPED로 이동한 시간에 대한 타임스탬프입니다. 이 동작은 필수 컨테이너가 STOPPED로 이동할 때 발생합니다.

예제 태스크 메타데이터 응답

다음은 단일 컨테이너 태스크에 대한 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" }