Amazon ECS 작업 메타데이터 엔드포인트 버전 2
중요
태스크 메타데이터 버전 2 엔드포인트는 더 이상 능동적으로 관리되지 않습니다. 최신 메타데이터 엔드포인트 정보를 가져오려면 태스크 메타데이터 버전 4 엔드포인트를 업데이트하는 것이 좋습니다. 자세한 정보는 Amazon ECS 작업 메타데이터 엔드포인트 버전 4을 참조하세요.
Amazon ECS 컨테이너 에이전트 버전 1.17.0부터 다양한 태스크 메타데이터와 Docker 통계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
-
태스크의
DesiredStatus
가STOPPED
로 이동한 시간에 대한 타임스탬프입니다. 이 동작은 필수 컨테이너가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" }