Amazon ECS 이벤트 - Amazon Elastic Container Service

Amazon ECS 이벤트

Amazon ECS는 컨테이너 인스턴스 상태 변경 이벤트, 태스크 상태 변경 이벤트, 서비스 작업 및 서비스 배포 상태 변경 이벤트와 같은 이벤트 유형을 EventBridge로 전송합니다. 이러한 리소스가 변경되면 이벤트가 트리거됩니다. 다음 섹션에서 이러한 이벤트 및 가능한 원인을 보다 자세하게 설명합니다.

참고

향후 Amazon ECS가 다른 이벤트 유형, 소스 및 세부 정보를 추가할 수 있습니다. 코드의 이벤트 JSON 데이터를 역직렬화하는 경우 추가 속성이 추가되었을 때 문제를 방지하기 위해 애플리케이션이 알 수 없는 속성을 처리할 수 있도록 준비해야 합니다.

경우에 따라 동일한 활동에 대해 복수의 이벤트가 트리거됩니다. 예를 들어 작업이 컨테이너 인스턴스에서 시작되면 새 작업에 대해 작업 상태 변경 이벤트가 트리거됩니다. 컨테이너 인스턴스의 가용 리소스(예: CPU, 메모리 및 가용 포트)의 변동을 설명하기 위해 컨테이너 인스턴스 상태 변경 이벤트가 트리거됩니다. 또한 컨테이너 인스턴스가 종료될 때에도 컨테이너 인스턴스, 컨테이너 에이전트 연결 상태 및 해당 컨테이너 인스턴스에서 실행되는 모든 작업에 대해 이벤트가 트리거됩니다.

컨테이너 상태 변경 및 작업 상태 변경 이벤트에는 두 개의 version 필드가 있습니다. 하나는 이벤트의 기본 본문에 있고 다른 하나는 이벤트의 detail 객체에 있습니다. 다음은 이러한 두 필드 간의 차이점에 대해 설명합니다.

  • 이벤트의 본문 내 version 필드는 모든 이벤트에서 0으로 설정됩니다. EventBridge 파라미터에 대한 자세한 정보는 Amazon EventBridge 사용 설명서이벤트 및 이벤트 패턴을 참조하세요.

  • 이벤트의 detail 객체 내 version 필드는 연결된 리소스의 버전을 설명합니다. 리소스 상태가 바뀔 때마다 이 버전이 증가합니다. 이벤트를 여러 번 보낼 수 있으므로 이 필드를 사용하여 중복 이벤트를 식별할 수 있습니다. 중복 이벤트는 detail 객체에서 동일한 버전을 갖습니다. EventBridge를 사용하여 Amazon ECS 컨테이너 인스턴스 및 작업 상태를 복제하는 경우, Amazon ECS API에서 보고된 리소스 버전과 리소스(detail 객체 내부)에 대해 EventBridge에서 보고된 버전을 비교하여 이벤트 스트림 버전이 최신임을 확인할 수 있습니다.

서비스 작업 이벤트는 본문의 version 필드만 포함합니다.

컨테이너 인스턴스 상태 변경 이벤트

다음과 같은 상황에서 컨테이너 인스턴스 상태 변경 이벤트가 트리거됩니다.

직접 또는 StartTask이나 SDK를 사용하여 RunTask, StopTask 또는 AWS Management Console API 태스크를 호출합니다.

컨테이너 인스턴스에서 태스크를 배치 또는 중지하면 컨테이너 인스턴스의 가용 리소스(예: CPU, 메모리, 가용 포트)가 수정됩니다.

Amazon ECS 서비스 스케줄러가 태스크를 시작 또는 중지하는 경우

컨테이너 인스턴스에서 태스크를 배치 또는 중지하면 컨테이너 인스턴스의 가용 리소스(예: CPU, 메모리, 가용 포트)가 수정됩니다.

Amazon ECS 컨테이너 에이전트가 원하는 작업 상태 RUNNING의 작업에 대해 STOPPED 상태의 SubmitTaskStateChange API 태스크를 호출하는 경우

Amazon ECS 컨테이너 에이전트는 컨테이너 인스턴스에서 작업 상태를 모니터링하며 모든 상태 변경을 보고합니다. RUNNING 상태여야 할 작업이 STOPPED 상태로 전환될 경우 에이전트가 중지한 작업에 할당된 리소스(예: CPU, 메모리, 가용 포트)를 해제합니다.

직접 또는 DeregisterContainerInstance이나 SDK를 사용하여 AWS Management Console API 태스크를 사용하여 컨테이너 인스턴스를 등록 해제합니다.

컨테이너 인스턴스를 등록 해제하면 해당 컨테이너 인스턴스의 상태와 Amazon ECS 컨테이너 에이전트의 연결 상태가 변경됩니다.

EC2 인스턴스를 중지했을 때 작업이 중지된 경우

컨테이너 인스턴스를 중지하면 해당 컨테이너 인스턴스에서 실행 중이던 작업이 STOPPED 상태로 전환됩니다.

Amazon ECS 컨테이너 에이전트가 컨테이너 인스턴스를 처음 등록하는 경우

Amazon ECS 컨테이너가 처음 컨테이너 인스턴스를 등록하면(시작 시 또는 수동으로 처음 실행할 때) 해당 인스턴스에 대해 상태 변경 이벤트가 생성됩니다.

Amazon ECS 컨테이너 에이전트가 Amazon ECS를 연결하거나 연결을 해제하는 경우

Amazon ECS 컨테이너 에이전트가 Amazon ECS 백엔드에 연결되거나 연결이 해제되면 컨테이너 인스턴스의 agentConnected 상태가 변경됩니다.

참고

Amazon ECS 컨테이너 에이전트는 정상 작업의 일부로 시간당 여러 번 연결 해제와 재연결을 반복하므로 에이전트 연결 이벤트가 예상됩니다. 이러한 이벤트가 컨테이너 에이전트 또는 컨테이너 인스턴스에 문제가 있음을 나타내는 것은 아닙니다.

사용자가 인스턴스에서 Amazon ECS 컨테이너 에이전트를 업그레이드하는 경우

컨테이너 인스턴스 세부 정보에는 컨테이너 에이전트 버전 개체가 포함됩니다. 에이전트를 업그레이드하면 이 버전 정보가 변경되고 이벤트가 트리거됩니다.

예 컨테이너 인스턴스 상태 변경 이벤트

컨테이너 인스턴스 상태 변경 이벤트는 다음 형식으로 전달됩니다. 다음 detail 섹션은 Amazon Elastic 컨테이너 서비스 API 참조DescribeContainerInstances API 작업에서 반환되는 ContainerInstance 객체와 유사합니다. EventBridge 파라미터에 대한 자세한 정보는 Amazon EventBridge 사용 설명서이벤트 및 이벤트 패턴을 참조하세요.

{ "version": "0", "id": "8952ba83-7be2-4ab5-9c32-6687532d15a2", "detail-type": "ECS Container Instance State Change", "source": "aws.ecs", "account": "111122223333", "time": "2016-12-06T16:41:06Z", "region": "us-east-1", "resources": [ "arn:aws:ecs:us-east-1:111122223333:container-instance/b54a2a04-046f-4331-9d74-3f6d7f6ca315" ], "detail": { "agentConnected": true, "attributes": [ { "name": "com.amazonaws.ecs.capability.logging-driver.syslog" }, { "name": "com.amazonaws.ecs.capability.task-iam-role-network-host" }, { "name": "com.amazonaws.ecs.capability.logging-driver.awslogs" }, { "name": "com.amazonaws.ecs.capability.logging-driver.json-file" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.17" }, { "name": "com.amazonaws.ecs.capability.privileged-container" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.18" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.19" }, { "name": "com.amazonaws.ecs.capability.ecr-auth" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.20" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.21" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.22" }, { "name": "com.amazonaws.ecs.capability.docker-remote-api.1.23" }, { "name": "com.amazonaws.ecs.capability.task-iam-role" } ], "clusterArn": "arn:aws:ecs:us-east-1:111122223333:cluster/default", "containerInstanceArn": "arn:aws:ecs:us-east-1:111122223333:container-instance/b54a2a04-046f-4331-9d74-3f6d7f6ca315", "ec2InstanceId": "i-f3a8506b", "registeredResources": [ { "name": "CPU", "type": "INTEGER", "integerValue": 2048 }, { "name": "MEMORY", "type": "INTEGER", "integerValue": 3767 }, { "name": "PORTS", "type": "STRINGSET", "stringSetValue": [ "22", "2376", "2375", "51678", "51679" ] }, { "name": "PORTS_UDP", "type": "STRINGSET", "stringSetValue": [] } ], "remainingResources": [ { "name": "CPU", "type": "INTEGER", "integerValue": 1988 }, { "name": "MEMORY", "type": "INTEGER", "integerValue": 767 }, { "name": "PORTS", "type": "STRINGSET", "stringSetValue": [ "22", "2376", "2375", "51678", "51679" ] }, { "name": "PORTS_UDP", "type": "STRINGSET", "stringSetValue": [] } ], "status": "ACTIVE", "version": 14801, "versionInfo": { "agentHash": "aebcbca", "agentVersion": "1.13.0", "dockerVersion": "DockerVersion: 1.11.2" }, "updatedAt": "2016-12-06T16:41:06.991Z" } }

작업 상태 변경 이벤트

다음과 같은 상황에서 작업 상태 변경 이벤트가 트리거됩니다.

직접 또는 AWS Management Console, AWS CLI나 SDK를 사용하여 StartTask, RunTask 또는 StopTask API 태스크를 호출합니다.

태스크를 시작 또는 중지하면 새로운 작업 리소스가 생기거나 기존 작업 리소스의 상태가 수정됩니다.

Amazon ECS 서비스 스케줄러가 태스크를 시작 또는 중지하는 경우

태스크를 시작 또는 중지하면 새로운 작업 리소스가 생기거나 기존 작업 리소스의 상태가 수정됩니다.

Amazon ECS 컨테이너 에이전트가 SubmitTaskStateChange API 태스크를 호출하는 경우

Amazon ECS 컨테이너 에이전트는 컨테이너 인스턴스에서 작업 상태를 모니터링하며 모든 상태 변경을 보고합니다. 상태 변경에는 PENDING에서 RUNNING으로 또는 RUNNING에서 STOPPED로의 변경이 포함될 수 있습니다.

직접 또는 AWS Management Console이나 SDK를 통해 DeregisterContainerInstance API 태스크와 force 플래그를 사용하여 기본 컨테이너 인스턴스를 강제로 등록 해제합니다.

컨테이너 인스턴스를 등록 해제하면 해당 컨테이너 인스턴스의 상태와 Amazon ECS 컨테이너 에이전트의 연결 상태가 변경됩니다. 컨테이너 인스턴스에서 작업이 실행 중인 경우 등록을 해제하려면 force 플래그가 설정되어야 합니다. 그러면 인스턴스에서 모든 작업이 중지합니다.

기본 컨테이너 인스턴스가 중지 또는 종료되는 경우

컨테이너 인스턴스를 중지 또는 종료하면 해당 컨테이너 인스턴스에서 실행 중이던 작업이 STOPPED 상태로 전환됩니다.

작업 내 컨테이너의 상태가 변경되는 경우

Amazon ECS 컨테이너 에이전트는 작업 내 컨테이너의 상태를 모니터링합니다. 예를 들어 작업에서 실행 중인 컨테이너가 중지하는 경우 이 컨테이너 상태 변경은 이벤트를 트리거합니다.

Fargate 스팟 용량 공급자를 사용하는 태스크는 종료 공지를 받습니다.

작업이 FARGATE_SPOT 용량 공급자를 사용 중이고 스팟 중단으로 인해 중지되면 작업 상태 변경 이벤트가 트리거됩니다.

예 작업 상태 변경 이벤트

작업 상태 변경 이벤트는 다음 형식으로 제공됩니다. 다음 detail 섹션은 Amazon Elastic 컨테이너 서비스 API 참조DescribeTasks API 작업에서 반환되는 작업 객체와 유사합니다. 컨테이너에서 Amazon ECR로 호스팅되는 이미지를 사용하는 경우 imageDigest 필드가 반환됩니다.

참고

createdAt, connectivityAt, pullStartedAt, startedAt, pullStoppedAtupdatedAt 필드의 값은 DescribeTasks 작업의 응답에서는 UNIX 타임스탬프인 반면, 작업 상태 변경 이벤트에서는 ISO 문자열 타임스탬프입니다.

CloudWatch 파라미터에 대한 자세한 정보는 Amazon EventBridge 사용 설명서이벤트 및 이벤트 패턴을 참조하세요.

{ "version": "0", "id": "3317b2af-7005-947d-b652-f55e762e571a", "detail-type": "ECS Task State Change", "source": "aws.ecs", "account": "111122223333", "time": "2020-01-23T17:57:58Z", "region": "us-west-2", "resources": [ "arn:aws:ecs:us-west-2:111122223333:task/FargateCluster/c13b4cb40f1f4fe4a2971f76ae5a47ad" ], "detail": { "attachments": [ { "id": "1789bcae-ddfb-4d10-8ebe-8ac87ddba5b8", "type": "eni", "status": "ATTACHED", "details": [ { "name": "subnetId", "value": "subnet-abcd1234" }, { "name": "networkInterfaceId", "value": "eni-abcd1234" }, { "name": "macAddress", "value": "0a:98:eb:a7:29:ba" }, { "name": "privateIPv4Address", "value": "10.0.0.139" } ] } ], "availabilityZone": "us-west-2c", "clusterArn": "arn:aws:ecs:us-west-2:111122223333:cluster/FargateCluster", "containers": [ { "containerArn": "arn:aws:ecs:us-west-2:111122223333:container/cf159fd6-3e3f-4a9e-84f9-66cbe726af01", "lastStatus": "RUNNING", "name": "FargateApp", "image": "111122223333.dkr.ecr.us-west-2.amazonaws.com/hello-repository:latest", "imageDigest": "sha256:74b2c688c700ec95a93e478cdb959737c148df3fbf5ea706abe0318726e885e6", "runtimeId": "ad64cbc71c7fb31c55507ec24c9f77947132b03d48d9961115cf24f3b7307e1e", "taskArn": "arn:aws:ecs:us-west-2:111122223333:task/FargateCluster/c13b4cb40f1f4fe4a2971f76ae5a47ad", "networkInterfaces": [ { "attachmentId": "1789bcae-ddfb-4d10-8ebe-8ac87ddba5b8", "privateIpv4Address": "10.0.0.139" } ], "cpu": "0" } ], "createdAt": "2020-01-23T17:57:34.402Z", "launchType": "FARGATE", "cpu": "256", "memory": "512", "desiredStatus": "RUNNING", "group": "family:sample-fargate", "lastStatus": "RUNNING", "overrides": { "containerOverrides": [ { "name": "FargateApp" } ] }, "connectivity": "CONNECTED", "connectivityAt": "2020-01-23T17:57:38.453Z", "pullStartedAt": "2020-01-23T17:57:52.103Z", "startedAt": "2020-01-23T17:57:58.103Z", "pullStoppedAt": "2020-01-23T17:57:55.103Z", "updatedAt": "2020-01-23T17:57:58.103Z", "taskArn": "arn:aws:ecs:us-west-2:111122223333:task/FargateCluster/c13b4cb40f1f4fe4a2971f76ae5a47ad", "taskDefinitionArn": "arn:aws:ecs:us-west-2:111122223333:task-definition/sample-fargate:1", "version": 4, "platformVersion": "1.3.0" } }

서비스 작업 이벤트

Amazon ECS는 세부 정보 유형 ECS 서비스 태스크와 함께 서비스 작업 이벤트를 보냅니다. 컨테이너 인스턴스 및 작업 상태 변경 이벤트와 달리 서비스 작업 이벤트는 details 응답 필드에 버전 번호를 포함하지 않습니다. 다음은 Amazon ECS 서비스 작업 이벤트에 대한 EventBridge 규칙을 만드는 데 사용되는 이벤트 패턴입니다. 자세한 정보는 Amazon EventBridge 사용 설명서EventBridge 규칙 생성을 참조하세요.

{ "source": [ "aws.ecs" ], "detail-type": [ "ECS Service Action" ] }

Amazon ECS는 INFO, WARNERROR이벤트 유형과 함께 이벤트를 보냅니다. 다음은 서비스 작업 이벤트입니다.

INFO 이벤트 유형이 있는 서비스 작업 이벤트

SERVICE_STEADY_STATE

이 서비스는 건강하고 원하는 수의 작업으로 안정적인 상태에 도달합니다. 서비스 스케줄러는 주기적으로 상태를 보고하므로 이 메시지를 여러 번 받을 수 있습니다.

TASKSET_STEADY_STATE

작업 세트는 건강하고 원하는 수의 작업으로 안정적인 상태에 도달합니다.

CAPACITY_PROVIDER_STEADY_STATE

서비스와 관련된 용량 공급자가 안정적인 상태에 도달합니다.

SERVICE_DESIRED_COUNT_UPDATED

서비스 스케줄러가 서비스 또는 작업 세트에 대해 계산된 원하는 수를 업데이트하는 경우. 사용자가 원하는 수를 수동으로 업데이트하면 이 이벤트가 전송되지 않습니다.

WARN 이벤트 유형이 있는 서비스 작업 이벤트

SERVICE_TASK_START_IMPAIRED

서비스가 일부 태스크를 시작할 수 없습니다.

SERVICE_DISCOVERY_INSTANCE_UNHEALTHY

서비스 검색을 사용하는 서비스에 비정상 작업이 포함되어 있습니다. 서비스 스케줄러는 서비스 레지스트리 내의 작업이 비정상임을 감지합니다.

ERROR 이벤트 유형이 있는 서비스 작업 이벤트

SERVICE_DAEMON_PLACEMENT_CONSTRAINT_VIOLATED

DAEMON 서비스 스케줄러 전략을 사용하는 서비스의 작업이 더 이상 서비스에 대한 배치 제약 전략을 충족하지 않습니다.

ECS_OPERATION_THROTTLED

Amazon ECS API 스로틀 한도로 인해 서비스 스케줄러가 제한되었습니다.

SERVICE_DISCOVERY_OPERATION_THROTTLED

AWS Cloud Map API 스로틀 한도로 인해 서비스 스케줄러가 제한되었습니다. 이 문제는 서비스 검색을 사용하도록 구성된 서비스에서 발생할 수 있습니다.

SERVICE_TASK_PLACEMENT_FAILURE

서비스 스케줄러가 태스크를 배치할 수 없습니다. 원인은 reason 필드에 설명됩니다.

이 서비스 이벤트가 트리거되는 일반적인 원인은 태스크를 배치할 클러스터의 리소스가 부족하기 때문입니다. 예를 들어 사용 가능한 컨테이너 인스턴스의 CPU 또는 메모리 용량이 충분하지 않거나 사용 가능한 컨테이너 인스턴스가 없는 경우입니다. 또 다른 일반적인 원인은 Amazon ECS 컨테이너 에이전트가 컨테이너 인스턴스에서 연결 해제되어 스케줄러가 태스크를 배치 할 수 없는 경우입니다.

SERVICE_TASK_CONFIGURATION_FAILURE

서비스 스케줄러가 구성 오류로 인해 태스크를 배치할 수 없습니다. 원인은 reason 필드에 설명됩니다.

이 서비스 이벤트가 트리거되는 일반적인 원인은 태그가 서비스에 적용되었지만 사용자 또는 역할이 해당 지역의 새로운 Amazon 리소스 이름(ARN) 형식을 선택하지 않았기 때문입니다. 자세한 정보는 Amazon 리소스 이름(ARN) 및 ID 섹션을 참조하세요. 또 다른 일반적인 원인은 제공된 작업 IAM 역할을 Amazon ECS가 맡을 수 없기 때문입니다.

예 서비스 안정 상태 이벤트

서비스 안정 상태 이벤트는 다음과 같은 형식으로 제공됩니다. EventBridge 파라미터에 대한 자세한 정보는 Amazon EventBridge 사용 설명서이벤트 및 이벤트 패턴을 참조하세요.

{ "version": "0", "id": "af3c496d-f4a8-65d1-70f4-a69d52e9b584", "detail-type": "ECS Service Action", "source": "aws.ecs", "account": "111122223333", "time": "2019-11-19T19:27:22Z", "region": "us-west-2", "resources": [ "arn:aws:ecs:us-west-2:111122223333:service/default/servicetest" ], "detail": { "eventType": "INFO", "eventName": "SERVICE_STEADY_STATE", "clusterArn": "arn:aws:ecs:us-west-2:111122223333:cluster/default", "createdAt": "2019-11-19T19:27:22.695Z" } }

예 용량 공급자 안정 상태 이벤트

용량 공급자 안정 상태 이벤트는 다음 형식으로 제공됩니다.

{ "version": "0", "id": "b9baa007-2f33-0eb1-5760-0d02a572d81f", "detail-type": "ECS Service Action", "source": "aws.ecs", "account": "111122223333", "time": "2019-11-19T19:37:00Z", "region": "us-west-2", "resources": [ "arn:aws:ecs:us-west-2:111122223333:service/default/servicetest" ], "detail": { "eventType": "INFO", "eventName": "CAPACITY_PROVIDER_STEADY_STATE", "clusterArn": "arn:aws:ecs:us-west-2:111122223333:cluster/default", "capacityProviderArns": [ "arn:aws:ecs:us-west-2:111122223333:capacity-provider/ASG-tutorial-capacity-provider" ], "createdAt": "2019-11-19T19:37:00.807Z" } }

예 서비스 작업 시작 장애 이벤트

서비스 작업 시작 장애 이벤트는 다음 형식으로 제공됩니다.

{ "version": "0", "id": "57c9506e-9d21-294c-d2fe-e8738da7e67d", "detail-type": "ECS Service Action", "source": "aws.ecs", "account": "111122223333", "time": "2019-11-19T19:55:38Z", "region": "us-west-2", "resources": [ "arn:aws:ecs:us-west-2:111122223333:service/default/servicetest" ], "detail": { "eventType": "WARN", "eventName": "SERVICE_TASK_START_IMPAIRED", "clusterArn": "arn:aws:ecs:us-west-2:111122223333:cluster/default", "createdAt": "2019-11-19T19:55:38.725Z" } }

예 서비스 작업 배치 실패 이벤트

서비스 작업 배치 실패 이벤트는 다음 형식으로 제공됩니다. EventBridge 파라미터에 대한 자세한 정보는 Amazon EventBridge 사용 설명서이벤트 및 이벤트 패턴을 참조하세요.

다음 예제에서는 작업이 FARGATE_SPOT 용량 공급자를 사용하려고 시도했지만 서비스 스케줄러가 Fargate 스팟 용량을 획득할 수 없습니다.

{ "version": "0", "id": "ddca6449-b258-46c0-8653-e0e3a6d0468b", "detail-type": "ECS Service Action", "source": "aws.ecs", "account": "111122223333", "time": "2019-11-19T19:55:38Z", "region": "us-west-2", "resources": [ "arn:aws:ecs:us-west-2:111122223333:service/default/servicetest" ], "detail": { "eventType": "ERROR", "eventName": "SERVICE_TASK_PLACEMENT_FAILURE", "clusterArn": "arn:aws:ecs:us-west-2:111122223333:cluster/default", "capacityProviderArns": [ "arn:aws:ecs:us-west-2:111122223333:capacity-provider/FARGATE_SPOT" ], "reason": "RESOURCE:FARGATE", "createdAt": "2019-11-06T19:09:33.087Z" } }

EC2 시작 유형에 대한 다음 예에서는 컨테이너 인스턴스 2dd1b186f39845a584488d2ef155c131에서 태스크를 시작하려고 했지만 CPU가 부족하여 서비스 스케줄러가 태스크를 배치할 수 없습니다.

{ "version": "0", "id": "ddca6449-b258-46c0-8653-e0e3a6d0468b", "detail-type": "ECS Service Action", "source": "aws.ecs", "account": "111122223333", "time": "2019-11-19T19:55:38Z", "region": "us-west-2", "resources": [ "arn:aws:ecs:us-west-2:111122223333:service/default/servicetest" ], "detail": { "eventType": "ERROR", "eventName": "SERVICE_TASK_PLACEMENT_FAILURE", "clusterArn": "arn:aws:ecs:us-west-2:111122223333:cluster/default", "containerInstanceArns": [ "arn:aws:ecs:us-west-2:111122223333:container-instance/default/2dd1b186f39845a584488d2ef155c131" ], "reason": "RESOURCE:CPU", "createdAt": "2019-11-06T19:09:33.087Z" } }

서비스 배포 상태 변경 이벤트

Amazon ECS는 세부 정보 유형 ECS 배포 상태 변경과 함께 서비스 배포 변경 상태 이벤트를 보냅니다. 다음은 Amazon ECS 서비스 배포 상태 변경 이벤트에 대한 EventBridge 규칙을 만드는 데 사용되는 이벤트 패턴입니다. 자세한 정보는 Amazon EventBridge 사용 설명서EventBridge 규칙 생성을 참조하세요.

{ "source": [ "aws.ecs" ], "detail-type": [ "ECS Deployment State Change" ] }

Amazon ECS는 INFOERROR 이벤트 유형과 함께 이벤트를 보냅니다. 서비스 배포 상태 변경 이벤트는 다음과 같습니다.

SERVICE_DEPLOYMENT_IN_PROGRESS

서비스 배포가 진행 중입니다. 이 이벤트는 초기 배포 및 롤백 배포 모두에 대해 전송됩니다.

SERVICE_DEPLOYMENT_COMPLETED

서비스 배포가 완료되었습니다. 배포 후 서비스가 안정적인 상태에 도달하면 이 이벤트가 전송됩니다.

SERVICE_DEPLOYMENT_FAILED

서비스 배포가 실패했습니다. 이 이벤트는 배포 회로 차단기 논리가 켜진 서비스에 대해 전송됩니다.

예 서비스 배포 진행 중 이벤트

서비스 배포 진행 중 이벤트는 초기 배포와 롤백 배포가 모두 시작될 때 전달됩니다. 두 항목의 차이점은 reason 필드에 있습니다. EventBridge 파라미터에 대한 자세한 정보는 Amazon EventBridge 사용 설명서이벤트 및 이벤트 패턴을 참조하세요.

다음은 초기 배포가 시작되는 경우의 출력 예입니다.

{ "version": "0", "id": "ddca6449-b258-46c0-8653-e0e3a6EXAMPLE", "detail-type": "ECS Deployment State Change", "source": "aws.ecs", "account": "111122223333", "time": "2020-05-23T12:31:14Z", "region": "us-west-2", "resources": [ "arn:aws:ecs:us-west-2:111122223333:service/default/servicetest" ], "detail": { "eventType": "INFO", "eventName": "SERVICE_DEPLOYMENT_IN_PROGRESS", "deploymentId": "ecs-svc/123", "updatedAt": "2020-05-23T11:11:11Z", "reason": "ECS deployment deploymentId in progress." } }

다음은 롤백 배포가 시작되는 경우의 출력 예입니다. reason 필드는 서비스가 롤백되는 배포의 ID를 제공합니다.

{ "version": "0", "id": "ddca6449-b258-46c0-8653-e0e3aEXAMPLE", "detail-type": "ECS Deployment State Change", "source": "aws.ecs", "account": "111122223333", "time": "2020-05-23T12:31:14Z", "region": "us-west-2", "resources": [ "arn:aws:ecs:us-west-2:111122223333:service/default/servicetest" ], "detail": { "eventType": "INFO", "eventName": "SERVICE_DEPLOYMENT_IN_PROGRESS", "deploymentId": "ecs-svc/123", "updatedAt": "2020-05-23T11:11:11Z", "reason": "ECS deployment circuit breaker: rolling back to deploymentId deploymentID." } }

예 서비스 배포 완료 이벤트

서비스 배포 완료 상태 이벤트는 다음과 같은 형식으로 제공됩니다. 자세한 정보는 롤링 업데이트 섹션을 참조하세요.

{ "version": "0", "id": "ddca6449-b258-46c0-8653-e0e3aEXAMPLE", "detail-type": "ECS Deployment State Change", "source": "aws.ecs", "account": "111122223333", "time": "2020-05-23T12:31:14Z", "region": "us-west-2", "resources": [ "arn:aws:ecs:us-west-2:111122223333:service/default/servicetest" ], "detail": { "eventType": "INFO", "eventName": "SERVICE_DEPLOYMENT_COMPLETED", "deploymentId": "ecs-svc/123", "updatedAt": "2020-05-23T11:11:11Z", "reason": "ECS deployment deploymentID completed." } }

예 서비스 배포 실패 이벤트

서비스 배포 실패 상태 이벤트는 다음과 같은 형식으로 제공됩니다. 서비스 배포 실패 상태 이벤트는 배포 회로 차단기 논리가 켜진 서비스에 대해서만 전송됩니다. 자세한 정보는 롤링 업데이트을 참조하십시오.

{ "version": "0", "id": "ddca6449-b258-46c0-8653-e0e3aEXAMPLE", "detail-type": "ECS Deployment State Change", "source": "aws.ecs", "account": "111122223333", "time": "2020-05-23T12:31:14Z", "region": "us-west-2", "resources": [ "arn:aws:ecs:us-west-2:111122223333:service/default/servicetest" ], "detail": { "eventType": "ERROR", "eventName": "SERVICE_DEPLOYMENT_FAILED", "deploymentId": "ecs-svc/123", "updatedAt": "2020-05-23T11:11:11Z", "reason": "ECS deployment circuit breaker: task failed to start." } }