

# Amazon ECS 서비스 작업 이벤트
<a name="ecs_service_events"></a>

Amazon ECS는 세부 정보 유형 **ECS 서비스 태스크와** 함께 서비스 작업 이벤트를 보냅니다. 컨테이너 인스턴스 및 작업 상태 변경 이벤트와 달리 서비스 작업 이벤트는 `details` 응답 필드에 버전 번호를 포함하지 않습니다. 다음은 Amazon ECS 서비스 작업 이벤트에 대한 EventBridge 규칙을 만드는 데 사용되는 이벤트 패턴입니다. 자세한 내용은 *Amazon EventBridge 사용 설명서*의 [Amazon EventBridge 시작하기](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-get-started.html)를 참조하세요.

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

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

## `INFO` 이벤트 유형이 있는 서비스 작업 이벤트
<a name="ecs_service_events_info_type"></a>

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

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

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

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

`TASKS_STOPPED`  
실행 중인 태스크가 서비스에서 중지되었습니다.

`SERVICE_DEPLOYMENT_IN_PROGRESS`  
서비스 배포가 진행 중입니다. 서비스 배포가 롤백 또는 새 서비스 개정일 수 있습니다.

`SERVICE_DEPLOYMENT_COMPLETED`  
서비스 배포가 안정 상태이고 완료되었습니다. 서비스 배포가 롤백이거나 업데이트된 서비스 개정을 배포하는 것일 수 있습니다.

## `WARN` 이벤트 유형이 있는 서비스 작업 이벤트
<a name="ecs_service_events_warn_type"></a>

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

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

`VPC_LATTICE_TARGET_UNHEALTHY`  
VPC Lattice가 사용되는 서비스에서 VPC Lattice의 대상 중 하나가 비정상이라는 것이 탐지되었습니다.

## `ERROR` 이벤트 유형이 있는 서비스 작업 이벤트
<a name="ecs_service_events_error_type"></a>

`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](ecs-account-settings.md#ecs-resource-ids)을 참조하세요. 또 다른 일반적인 원인은 제공된 작업 IAM 역할을 Amazon ECS가 맡을 수 없기 때문입니다.

`SERVICE_HEALTH_UNKNOWN`  
서비스에서 태스크의 상태 데이터가 설명되지 못했습니다.

`SERVICE_DEPLOYMENT_FAILED`  
서비스 배포가 안정에 도달하지 않았습니다. 이는 CloudWatch가 트리거되거나 회로 차단기에서 서비스 배포 실패가 탐지되면 발생합니다.

**Example 서비스 안정 상태 이벤트**  
서비스 안정 상태 이벤트는 다음과 같은 형식으로 제공됩니다. EventBridge 파라미터에 대한 자세한 내용은 *Amazon EventBridge 사용 설명서*의 [EventBridge의 이벤트](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-events.html)를 참조하세요.  

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

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

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

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

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

**Example 서비스 작업 배치 실패 이벤트**  
서비스 작업 배치 실패 이벤트는 다음 형식으로 제공됩니다. 자세한 내용은 *Amazon EventBridge 사용 설명서*의 [Amazon EventBridge 이벤트](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-events.html)를 참조하세요.  
다음 예제에서는 작업이 `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"
  }
}
```