

# Amazon ECS 서비스 이벤트 메시지 보기
<a name="service-event-messages"></a>

서비스 문제를 해결하려는 경우, 제일 먼저 진단 정보를 확인할 곳은 서비스 이벤트 로그입니다. `DescribeServices` API, AWS CLI 또는 AWS Management Console을 사용하여 서비스 이벤트를 볼 수 있습니다.

Amazon ECS API를 사용하여 서비스 이벤트 메시지를 보는 경우 서비스 스케줄러의 이벤트만 반환됩니다. 여기에는 가장 최근의 작업 배치 및 인스턴스 상태 이벤트가 포함됩니다. 그러나 Amazon ECS 콘솔에는 다음 소스의 서비스 이벤트가 표시됩니다.
+ Amazon ECS 서비스 스케줄러의 작업 배치 및 인스턴스 상태 이벤트. 이러한 이벤트의 접두사는 **service *(service-name)***입니다. 이 이벤트 보기가 도움이 되도록 `100`개의 최신 이벤트만 표시합니다. 원인이 해결되거나 6시간이 경과할 때까지 중복 이벤트 메시지가 생략됩니다. 6시간 이내에 원인이 해결되지 않으면 해당 원인에 대한 다른 서비스 이벤트 메시지를 수신합니다.
+ 서비스 Auto Scaling 이벤트. 이러한 이벤트는 **Message** 접두사가 있고 서비스가 Application Auto Scaling 오토 스케일링 정책을 사용하여 구성된 경우에만 발생합니다.

**작은 정보**  
[Amazon ECS MCP 서버](ecs-mcp-introduction.md)를 AI 어시스턴트와 함께 사용하여 자연어로 서비스 이벤트를 분석할 수 있습니다.

다음 단계에 따라 현재 서비스 이벤트 메시지를 확인합니다.

------
#### [ Console ]

1. [https://console.aws.amazon.com/ecs/v2](https://console.aws.amazon.com/ecs/v2)에서 콘솔을 엽니다.

1. 탐색 창에서 **클러스터**를 선택합니다.

1. **클러스터(Clusters)** 페이지에서 클러스터를 선택합니다.

1. 검사할 서비스를 선택합니다.

1. **이벤트** 탭에서 메시지를 확인하세요.

------
#### [ AWS CLI ]

[describe-services](https://docs.aws.amazon.com/cli/latest/reference/ecs/describe-services.html) 명령을 사용하여 지정된 서비스에 대한 서비스 이벤트 메시지를 확인합니다.

다음 AWS CLI 예제에서 설명하는 *기본* 클러스터의 *service-name* 서비스는 최신 서비스 이벤트 메시지를 제공합니다.

```
aws ecs describe-services \
    --cluster default \
    --services service-name \
    --region us-west-2
```

------

# Amazon ECS 서비스 이벤트 메시지
<a name="service-event-messages-list"></a>

다음은 Amazon ECS 콘솔에서 볼 수 있는 서비스 이벤트 메시지의 예제입니다.

## 서비스(*service-name*)가 안정적인 상태에 도달했습니다.
<a name="service-event-messages-steady"></a>

서비스 스케줄러는 `service (service-name) has reached a steady state.` 서비스가 정상이고 원하는 수의 작업에 도달하면 서비스 이벤트를 보내 안정적인 상태에 도달합니다.

서비스 스케줄러는 주기적으로 상태를 보고하므로 이 메시지를 여러 번 받을 수 있습니다.

## 모든 요구 사항을 충족하는 컨테이너 인스턴스가 없기 때문에 서비스(*service-name*)가 태스크를 배치할 수 없습니다.
<a name="service-event-messages-1"></a>

서비스 스케줄러는 다른 작업을 추가하는 데 사용 가능한 리소스를 찾을 수 없을 때 이 이벤트 메시지를 보냅니다. 가능한 원인은 다음과 같습니다.

용량 공급자를 사용하여 자동으로 EC2 인스턴스 규모를 조정합니다. 자세한 내용은 [EC2 워크로드를 위한 Amazon ECS 용량 공급자](asg-capacity-providers.md) 섹션을 참조하세요.  
용량 공급자를 사용하려는 경우 용량 공급자 전략을 전달하거나 클러스터와 연결된 기본 용량 공급자 전략이 있고 시작 유형 및 용량 공급자 전략을 입력으로 전달하지 않아야 합니다.

클러스터에서 컨테이너 인스턴스를 찾을 수 없음  
작업을 실행하려는 클러스터에 등록된 컨테이너 인스턴스가 없는 경우 이 오류가 발생합니다. 클러스터에 컨테이너 인스턴스를 추가해야 합니다. 자세한 내용은 [Amazon ECS Linux 컨테이너 인스턴스 시작](launch_container_instance.md) 섹션을 참조하세요.

포트가 충분하지 않음  
작업에서 고정된 호스트 포트 매핑을 사용하는 경우(예를 들어 작업이 웹 서버 호스트에서 포트 80을 사용하는 경우), 하나의 컨테이너만 한 번에 하나의 호스트 포트를 사용할 수 있기 때문에 작업당 하나 이상의 컨테이너 인스턴스가 있어야 합니다. 클러스터에 컨테이너 인스턴스를 추가하거나 원하는 작업 수를 줄여야 합니다.

너무 많은 포트가 등록되었습니다.  
작업 배치에 가장 근접하게 일치하는 컨테이너 인스턴스는 컨테이너 인스턴스당 허용되는 최대 예약 포트 제한인 100개의 호스트 포트를 초과할 수 없습니다. 동적 호스트 포트 매핑을 사용하면 문제가 해결될 수 있습니다.

포트 이미 사용 중  
이 작업의 작업 정의는 선택된 컨테이너 인스턴스에서 이미 실행 중인 작업과 동일한 포트를 포트 매핑에 사용합니다. 서비스 이벤트 메시지에는 아래 메시지의 일부로 선택된 컨테이너 인스턴스 ID가 있습니다.  

```
The closest matching container-instance is already using a port required by your task.
```

메모리가 충분하지 않음  
태스크 정의에서 지정된 메모리가 1000MiB이고 클러스터의 컨테이너 인스턴스 각각의 메모리가 1024MiB이라면 컨테이너 인스턴스당 이 작업의 사본 하나만 실행할 수 있습니다. 컨테이너 인스턴스당 2개 이상의 태스크를 시작하거나 보다 많은 컨테이너 인스턴스를 클러스터로 시작할 수 있도록 태스크 정의에서 이보다 적은 메모리를 실험할 수 있습니다.  
특정 인스턴스 유형에 대해 태스크에 가능한 한 많은 메모리를 제공하여 리소스 사용률을 최대화하려는 경우 [Amazon ECS Linux 컨테이너 인스턴스 메모리 예약](memory-management.md) 섹션을 참조하세요.

CPU가 충분하지 않음  
하나의 컨테이너 인스턴스에는 CPU 코어마다 1,024개의 CPU 단위가 있습니다. 태스크 정의에서 지정된 CPU 단위가 1,000이고 클러스터의 컨테이너 인스턴스 각각의 CPU 단위가 1,024라면 컨테이너 인스턴스당 이 작업의 사본 하나만 실행할 수 있습니다. 컨테이너 인스턴스당 2개 이상의 태스크를 시작하거나 보다 많은 컨테이너 인스턴스를 클러스터로 시작할 수 있도록 태스크 정의에서 이보다 적은 CPU 단위를 시험해 볼 수 있습니다.

사용 가능한 ENI 연결 지점이 충분하지 않음  
`awsvpc` 네트워크 모드를 사용하는 태스크는 각각 고유한 탄력적 네트워크 인터페이스(ENI)를 받습니다. 이 ENI는 이를 호스팅하는 컨테이너 인스턴스에 연결되어 있습니다. Amazon EC2 인스턴스는 연결할 수 있는 ENI 개수에 대한 제한이 있고 클러스터에 사용 가능한 ENI 용량이 있는 컨테이너 인스턴스가 없습니다.  
개별 컨테이너 인스턴스에 대한 ENI 제한은 다음 조건에 따라 다릅니다.  
+ `awsvpcTrunking` 계정 설정에 옵트인**하지 않은** 경우 각 컨테이너 인스턴스에 대한 ENI 제한은 인스턴스 유형에 따라 다릅니다. 자세한 내용은 *Amazon EC2 사용 설명서*의 [인스턴스 유형별/네트워크 인터페이스당 IP 주소](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html)를 참조하세요.
+ `awsvpcTrunking` 계정 설정에 옵트인**했지만** 옵트인 후 지원되는 인스턴스 유형을 사용하여 새로운 컨테이너 인스턴스를 시작하지 **않은** 경우 각 컨테이너 인스턴스에 대한 ENI 제한은 여전히 기본값으로 설정됩니다. 자세한 내용은 *Amazon EC2 사용 설명서*의 [인스턴스 유형별/네트워크 인터페이스당 IP 주소](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html)를 참조하세요.
+ `awsvpcTrunking` 계정 설정에 옵트인**했으며** 옵트인 후 지원되는 인스턴스 유형을 사용하여 새 컨테이너 인스턴스를 **시작한** 경우 추가 ENI를 사용할 수 있습니다. 자세한 내용은 [증가한 Amazon ECS 컨테이너 네트워크 인터페이스에 대해 지원되는 인스턴스](eni-trunking-supported-instance-types.md) 섹션을 참조하세요.
`awsvpcTrunking` 계정 설정 옵트인에 대한 자세한 내용은 [Amazon ECS Linux 컨테이너 인스턴스 네트워크 인터페이스 증가](container-instance-eni.md) 섹션을 참조하세요.  
클러스터에 컨테이너 인스턴스를 추가하여 가용 네트워크 어댑터를 더 많이 제공할 수 있습니다.

필요한 속성이 누락된 컨테이너 인스턴스  
일부 태스크 정의 파라미터의 경우, 특정 도커 원격 API 버전을 컨테이너 인스턴스에 설치해야 합니다. 로깅 드라이버 옵션 등 다른 태스크 정의 파라미터의 경우, 컨테이너 인스턴스가 `ECS_AVAILABLE_LOGGING_DRIVERS` 에이전트 구성 변수를 사용하여 이러한 로깅 드라이버를 등록해야 합니다. 태스크 정의에 특정 컨테이너 인스턴스 속성을 필요로 하는 파라미터가 포함되어 있고 이 요구 사항을 충족할 수 있는 사용 가능한 컨테이너 인스턴스가 없는 경우, 해당 작업을 배치할 수 없습니다.  
서비스에서 `awsvpc` 네트워크 모드 및 EC2를 사용하는 태스크를 사용하고 있는 경우가 이 오류의 일반적인 원인입니다. 서비스를 생성할 때 `awsvpcConfiguration`에 지정된 동일한 서브넷에서 지정한 클러스터에 컨테이너 인스턴스가 등록되어 있지 않습니다.  
AWSSupport-TroubleshootECSContainerInstance 런북을 사용하여 문제를 해결할 수 있습니다. 런북에서는 인스턴스의 사용자 데이터에 올바른 클러스터 정보가 포함되어 있는지 여부, 인스턴스 프로파일에 필요한 권한이 포함되어 있는지 여부, 그리고 네트워크 구성 문제를 검토합니다. 자세한 내용은 *AWS Systems Manager 자동화 런북 레퍼런스 사용 설명서*의 [AWSSupport-TroubleshootECSContainerInstance](https://docs.aws.amazon.com/systems-manager-automation-runbooks/latest/userguide/automation-aws-troubleshoot-ecs-container-instance.html)를 참조하세요.  
특정 태스크 정의 파라미터와 에이전트 구성 변수에 어떤 속성이 필요한지에 대한 자세한 내용은 [Fargate에 대한 Amazon ECS 태스크 정의 파라미터](task_definition_parameters.md) 및 [Amazon ECS 컨테이너 에이전트 구성](ecs-agent-config.md) 섹션을 참조하세요.

## 모든 요구 사항을 충족하는 컨테이너 인스턴스가 없기 때문에 서비스(*service-name*)가 태스크를 배치할 수 없습니다. 가장 가깝게 일치하는 컨테이너 인스턴스 *container-instance-id*에 가용 CPU 단위가 부족합니다.
<a name="service-event-messages-2"></a>

작업 배치를 위해 가장 가깝게 일치하는 컨테이너 인스턴스에는 CPU 단위가 부족하여 작업 정의의 요구 사항을 충족할 수 없습니다. 태스크 정의의 작업 크기 및 컨테이너 정의 파라미터 모두의 CPU 요구 사항을 검토합니다.

## 모든 요구 사항을 충족하는 컨테이너 인스턴스가 없기 때문에 서비스(*service-name*)가 태스크를 배치할 수 없습니다. 가장 가깝게 일치하는 컨테이너 인스턴스 *container-instance-id*에 오류 "AGENT"가 발생했습니다.
<a name="service-event-messages-3"></a>

작업 배치에 가장 가깝게 일치하는 컨테이너 인스턴스 상의 Amazon ECS 컨테이너 에이전트 연결이 끊겼습니다. SSH를 사용해 컨테이너 인스턴스에 연결할 수 있는 경우, 에이전트 로그를 검사할 수 있습니다. 자세한 내용은 [Amazon ECS 컨테이너 에이전트 로그 구성 파라미터](ecs-agent-versions.md#agent-logs) 섹션을 참조하세요. 인스턴스에서 에이전트가 실행 중인지도 확인해야 합니다. Amazon ECS 최적화 AMI를 사용하는 경우 다음 명령을 사용하여 에이전트를 중지하고 다시 시작해 볼 수 있습니다.
+ Amazon ECS 최적화 Amazon Linux 2 AMI 및 Amazon ECS 최적화 Amazon Linux 2023 AMI의 경우

  ```
  sudo systemctl restart ecs
  ```
+ Amazon ECS 최적화 Amazon Linux AMI의 경우

  ```
  sudo stop ecs && sudo start ecs
  ```

## service (*service-name*) (task *task-id*) (instance *instance-id*) is unhealthy in (elb *elb-name*) due to (reason Instance has failed at least the UnhealthyThreshold number of health checks consecutively.)
<a name="service-event-messages-4"></a>

이 서비스가 로드 밸런서에 등록되어 있고 로드 밸런서 상태 확인이 실패합니다. 해당 메시지에는 상태 확인에 실패한 특정 태스크를 식별하는 데 도움이 되는 태스크 ID가 포함되어 있습니다. 자세한 내용은 [Amazon ECS의 서비스 로드 밸런서 문제 해결](troubleshoot-service-load-balancers.md) 섹션을 참조하세요.

## 서비스(*service-name*)는 일부 태스크를 시작할 수 없습니다.
<a name="service-event-messages-5"></a>

이 서비스에는 연속 시도 후 시작에 실패한 작업이 포함되어 있습니다. 이 지점에서 서비스 스케줄러는 재시도 간격을 점차적으로 증가시키기 시작합니다. 작업 시작이 왜 실패하는지 문제를 해결해야 합니다. 자세한 내용은 [Amazon ECS 서비스 제한 로직](service-throttle-logic.md) 섹션을 참조하세요.

서비스가 업데이트되면 업데이트된 태스크 정의 등을 사용하여 서비스 스케줄러가 정상적인 동작을 다시 시작합니다.

## 서비스(*service-name*) 작업이 제한되고 있습니다. 나중에 다시 시도합니다.
<a name="service-event-messages-6"></a>

이 서비스는 API 조절 제한으로 인해 더 많은 태스크를 시작할 수 없습니다. 서비스 스케줄러가 더 많은 태스크를 시작할 수 있게 되면 재개됩니다.

API 속도 제한 할당량 증가를 요청하려면 [AWS Support 센터](https://console.aws.amazon.com/support/home#/) 페이지를 열고 필요한 경우 로그인한 후 **사례 생성(Create case)**을 선택합니다. **서비스 한도 증가(Service Limit increase)**를 선택합니다. 양식을 작성하고 제출합니다.

## 서비스 배포 구성으로 인해 배포 중에 서비스(*service-name*)에서 태스크를 중지하거나 시작할 수 없습니다. minimumHealthyPercent 또는 maximumPercent 값을 업데이트하고 다시 시도하세요.
<a name="service-event-messages-7"></a>

배포 구성으로 인해 서비스 배포 중에 이 서비스에서 태스크를 중지하거나 시작할 수 없습니다. 배포 구성은 `minimumHealthyPercent` 및 `maximumPercent` 값으로 구성되며, 이 값은 서비스가 생성될 때 정의됩니다. 이 값은 기존 서비스에서도 업데이트할 수 있습니다.

`minimumHealthyPercent`는 배포 중 또는 컨테이너 인스턴스가 드레이닝될 때 서비스에 대해 실행되어야 하는 작업 수의 하한을 나타냅니다. 이는 서비스에서 원하는 작업 수의 비율입니다. 이 값은 반올림됩니다. 예를 들어, 최소 정상 상태 백분율이 `50`이고 원하는 작업 수가 4개인 경우 스케줄러는 두 개의 새 작업을 시작하기 전에 두 개의 기존 작업을 중지할 수 있습니다. 마찬가지로 최소 정상 상태 백분율이 75%이고 원하는 작업 수가 2이면 결과 값이 2이기 때문에 스케줄러는 태스크를 중지 할 수 없습니다.

`maximumPercent`는 배포 중 또는 컨테이너 인스턴스가 드레이닝될 때 서비스에 대해 실행되어야 하는 작업 수의 상한을 나타냅니다. 이는 서비스에서 원하는 작업 수의 비율입니다. 이 값은 내림됩니다. 예를 들어, 최대 백분율이 `200`이고 원하는 작업 수가 4개인 경우 스케줄러는 4개의 기존 작업을 중지하기 전에 4개의 새 작업을 시작할 수 있습니다. 마찬가지로 최대 백분율이 `125`이고 원하는 작업 수가 3이면 결과 값이 3이기 때문에 스케줄러는 태스크를 시작할 수 없습니다.

최소 정상 상태 백분율 또는 최대 백분율을 설정할 때는 배포가 트리거될 때 스케줄러가 하나 이상의 태스크를 중지하거나 시작할 수 있는지 확인해야 합니다.

## 서비스(*service-name*)에서 태스크를 배치할 수 없습니다. 이유: 동시에 실행할 수 있는 작업 수가 제한에 도달했습니다.
<a name="service-event-messages-8"></a>

오류를 일으킨 리소스에 대한 할당량 증가를 요청할 수 있습니다. 자세한 내용은 [Amazon ECS 서비스 할당량](service-quotas.md) 섹션을 참조하세요. 할당량 증가를 요청하려면 *Service Quotas 사용 설명서*의 [할당량 증가 요청](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html)을 참조하세요.

## 서비스(*service-name*)에서 태스크를 배치할 수 없습니다. 이유: 내부 오류.
<a name="service-event-messages-9"></a>

이 오류의 잠재적 원인은 다음과 같습니다.

서브넷이 지원되지 않는 가용 영역에 있기 때문에 서비스가 태스크를 시작할 수 없습니다.

지원되는 Fargate 리전 및 가용 영역에 대한 자세한 내용은 [AWS Fargate의 Amazon ECS에 대해 지원되는 리전](AWS_Fargate-Regions.md) 섹션을 참조하세요.

서브넷 가용 영역을 보는 방법에 대한 자세한 내용은 *Amazon VPC 사용 설명서*의 [서브넷 보기](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-vpcs.html#view-subnet)를 참조하세요.

## 서비스(*service-name*)에서 태스크를 배치할 수 없습니다. 이유: 요청된 CPU 구성이 제한을 초과합니다.
<a name="service-event-messages-10"></a>

오류를 일으킨 리소스에 대한 할당량 증가를 요청할 수 있습니다. 자세한 내용은 [Amazon ECS 서비스 할당량](service-quotas.md) 섹션을 참조하세요. 할당량 증가를 요청하려면 *Service Quotas 사용 설명서*의 [할당량 증가 요청](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html)을 참조하세요.

## 서비스(*service-name*)에서 태스크를 배치할 수 없습니다. 이유: 요청된 메모리 구성이 제한을 초과합니다.
<a name="service-event-messages-11"></a>

오류를 일으킨 리소스에 대한 할당량 증가를 요청할 수 있습니다. 자세한 내용은 [Amazon ECS 서비스 할당량](service-quotas.md) 섹션을 참조하세요. 할당량 증가를 요청하려면 *Service Quotas 사용 설명서*의 [할당량 증가 요청](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html)을 참조하세요.

## 서비스(*service-name*)에서 태스크를 배치할 수 없습니다. 이유: 동시에 실행할 수 있는 vCPU 수가 제한에 도달했습니다.
<a name="service-event-messages-12"></a>

AWS Fargate은 태스크 수 기반 할당량에서 vCPU 기반 할당량으로 전환하고 있습니다.

Fargate vCPU 기반 할당량에 대한 할당량 증가를 요청할 수 있습니다. 자세한 내용은 [Amazon ECS 서비스 할당량](service-quotas.md) 섹션을 참조하세요. Fargate 할당량 증가를 요청하려면 *Service Quotas 사용 설명서*의 [할당량 증가 요청](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html)을 참조하세요.

## 작업 세트(*taskSet-ID*)를 스케일 인할 수 없기 때문에 서비스(*service-name*)가 안정 상태에 도달할 수 없습니다. 사유: 보호된 태스크 수가 원하는 태스크 수보다 많음
<a name="service-event-messages-13"></a>

이 서비스에는 원하는 태스크 수보다 많은 보호된 태스크가 있습니다. 다음 중 하나를 수행할 수 있습니다.
+ 현재 작업에 대한 보호가 만료될 때까지 기다리면 작업이 종료됩니다.
+ 중지할 수 있는 작업을 결정하고 `protectionEnabled` 옵션을 `false`로 설정한 상태에서 `UpdateTaskProtection` API를 사용하여 이러한 작업에 대한 보호를 해제합니다.
+ 서비스의 바람직한 작업 수를 보호되는 작업 수 이상으로 늘립니다.

## 서비스(*service-name*)가 안정 상태에 도달할 수 없습니다. 원인: 용량 공급자에서 컨테이너 인스턴스를 찾을 수 없습니다.
<a name="service-event-messages-14"></a>

서비스 스케줄러는 다른 작업을 추가하는 데 사용 가능한 리소스를 찾을 수 없을 때 이 이벤트 메시지를 보냅니다. 가능한 원인은 다음과 같습니다.

클러스터에 연결된 용량 공급자가 없음  
`describe-services`를 사용하여 클러스터와 연결된 용량 공급자가 있는지 확인합니다. 서비스에 대한 용량 공급자 전략을 업데이트할 수 있습니다.  
용량 공급자에서 사용 가능한 용량이 있는지 확인합니다. EC2의 경우 컨테이너 인스턴스가 태스크 정의 요구 사항을 충족하는지 확인합니다.

클러스터에서 컨테이너 인스턴스를 찾을 수 없음  
작업을 실행하려는 클러스터에 등록된 컨테이너 인스턴스가 없는 경우 이 오류가 발생합니다. 클러스터에 컨테이너 인스턴스를 추가해야 합니다. 자세한 내용은 [Amazon ECS Linux 컨테이너 인스턴스 시작](launch_container_instance.md) 섹션을 참조하세요.

포트가 충분하지 않음  
작업에서 고정된 호스트 포트 매핑을 사용하는 경우(예를 들어 작업이 웹 서버 호스트에서 포트 80을 사용하는 경우) 작업당 하나 이상의 컨테이너 인스턴스가 있어야 합니다. 한 번에 하나의 컨테이너만 단일 호스트 포트를 사용할 수 있습니다. 클러스터에 컨테이너 인스턴스를 추가하거나 원하는 작업 수를 줄여야 합니다.

너무 많은 포트가 등록되었습니다.  
작업 배치에 가장 근접하게 일치하는 컨테이너 인스턴스는 컨테이너 인스턴스당 허용되는 최대 예약 포트 제한인 100개의 호스트 포트를 초과할 수 없습니다. 동적 호스트 포트 매핑을 사용하면 문제가 해결될 수 있습니다.

포트 이미 사용 중  
이 작업의 작업 정의는 선택된 컨테이너 인스턴스에서 이미 실행 중인 작업과 동일한 포트를 포트 매핑에 사용합니다. 서비스 이벤트 메시지에는 아래 메시지의 일부로 선택된 컨테이너 인스턴스 ID가 있습니다.  

```
The closest matching container-instance is already using a port required by your task.
```

메모리가 충분하지 않음  
태스크 정의에서 지정된 메모리가 1000MiB이고 클러스터의 컨테이너 인스턴스 각각의 메모리가 1024MiB이라면 컨테이너 인스턴스당 이 작업의 사본 하나만 실행할 수 있습니다. 컨테이너 인스턴스당 2개 이상의 태스크를 시작하거나 보다 많은 컨테이너 인스턴스를 클러스터로 시작할 수 있도록 태스크 정의에서 이보다 적은 메모리를 실험할 수 있습니다.  
특정 인스턴스 유형에 대해 작업에 가능한 한 많은 메모리를 제공하여 리소스 사용률을 최대화하려는 경우 [Amazon ECS Linux 컨테이너 인스턴스 메모리 예약](memory-management.md) 섹션을 참조하세요.

사용 가능한 ENI 연결 지점이 충분하지 않음  
`awsvpc` 네트워크 모드를 사용하는 태스크는 각각 고유한 탄력적 네트워크 인터페이스(ENI)를 받습니다. 이 ENI는 이를 호스팅하는 컨테이너 인스턴스에 연결되어 있습니다. Amazon EC2 인스턴스는 연결할 수 있는 ENI 개수에 대한 제한이 있고 클러스터에 사용 가능한 ENI 용량이 있는 컨테이너 인스턴스가 없습니다.  
개별 컨테이너 인스턴스에 대한 ENI 제한은 다음 조건에 따라 다릅니다.  
+ `awsvpcTrunking` 계정 설정에 옵트인**하지 않은** 경우 각 컨테이너 인스턴스에 대한 ENI 제한은 인스턴스 유형에 따라 다릅니다. 자세한 내용은 *Amazon EC2 사용 설명서*의 [인스턴스 유형별/네트워크 인터페이스당 IP 주소](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html)를 참조하세요.
+ `awsvpcTrunking` 계정 설정에 옵트인**했지만** 옵트인 후 지원되는 인스턴스 유형을 사용하여 새로운 컨테이너 인스턴스를 시작하지 **않은** 경우 각 컨테이너 인스턴스에 대한 ENI 제한은 여전히 기본값으로 설정됩니다. 자세한 내용은 *Amazon EC2 사용 설명서*의 [인스턴스 유형별/네트워크 인터페이스당 IP 주소](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html)를 참조하세요.
+ `awsvpcTrunking` 계정 설정에 옵트인**했으며** 옵트인 후 지원되는 인스턴스 유형을 사용하여 새 컨테이너 인스턴스를 **시작한** 경우 추가 ENI를 사용할 수 있습니다. 자세한 내용은 [증가한 Amazon ECS 컨테이너 네트워크 인터페이스에 대해 지원되는 인스턴스](eni-trunking-supported-instance-types.md) 섹션을 참조하세요.
`awsvpcTrunking` 계정 설정 옵트인에 대한 자세한 내용은 [Amazon ECS Linux 컨테이너 인스턴스 네트워크 인터페이스 증가](container-instance-eni.md) 섹션을 참조하세요.  
클러스터에 컨테이너 인스턴스를 추가하여 가용 네트워크 어댑터를 더 많이 제공할 수 있습니다.

필요한 속성이 누락된 컨테이너 인스턴스  
일부 태스크 정의 파라미터의 경우, 특정 도커 원격 API 버전을 컨테이너 인스턴스에 설치해야 합니다. 로깅 드라이버 옵션 등 다른 태스크 정의 파라미터의 경우, 컨테이너 인스턴스가 `ECS_AVAILABLE_LOGGING_DRIVERS` 에이전트 구성 변수를 사용하여 이러한 로깅 드라이버를 등록해야 합니다. 태스크 정의에 특정 컨테이너 인스턴스 속성을 필요로 하는 파라미터가 포함되어 있고 이 요구 사항을 충족할 수 있는 사용 가능한 컨테이너 인스턴스가 없는 경우, 해당 작업을 배치할 수 없습니다.  
이 오류의 일반적인 원인은 서비스에서 `awsvpc` 네트워크 모드 및 EC2를 사용하는 태스크를 사용하고 지정한 클러스터에 서비스를 생성할 때 `awsvpcConfiguration`에서 지정한 것과 동일한 서브넷에 컨테이너 인스턴스가 등록되어 있지 않은 경우입니다.  
AWSSupport-TroubleshootECSContainerInstance 런북을 사용하여 문제를 해결할 수 있습니다. 런북에서는 인스턴스의 사용자 데이터에 올바른 클러스터 정보가 포함되어 있는지 여부, 인스턴스 프로파일에 필요한 권한이 포함되어 있는지 여부, 그리고 네트워크 구성 문제를 검토합니다. 자세한 내용은 *AWS Systems Manager 자동화 런북 레퍼런스 사용 설명서*의 [AWSSupport-TroubleshootECSContainerInstance](https://docs.aws.amazon.com/systems-manager-automation-runbooks/latest/userguide/automation-aws-troubleshoot-ecs-container-instance.html)를 참조하세요.  
특정 태스크 정의 파라미터와 에이전트 구성 변수에 어떤 속성이 필요한지에 대한 자세한 내용은 [Fargate에 대한 Amazon ECS 태스크 정의 파라미터](task_definition_parameters.md) 및 [Amazon ECS 컨테이너 에이전트 구성](ecs-agent-config.md) 섹션을 참조하세요.

## 서비스(*service-name*)에서 태스크를 배치할 수 없습니다. 원인: 지금은 용량을 사용할 수 없습니다. 나중에 다시 시도하거나 다른 가용 영역에서 시도하세요.
<a name="service-event-messages-15"></a>

현재 서비스를 실행할 수 있는 가용 용량이 없습니다.

다음 중 하나를 수행할 수 있습니다.
+ Fargate 용량 또는 EC2 컨테이너 인스턴스를 사용할 수 있을 때까지 기다리세요.
+ 서비스를 다시 시작하고 추가 서브넷을 지정하세요.

## 서비스(*service-name*) 배포 실패: 작업을 시작하지 못했습니다.
<a name="service-event-messages-16"></a>

서비스의 작업을 시작하지 못했습니다.

중지된 작업을 디버깅하는 방법에 대한 자세한 내용은 [Amazon ECS 중지된 작업 오류 메시지](stopped-task-error-codes.md) 섹션을 참조하세요.

## 서비스(*service-name*) Amazon ECS Agent가 시작되길 기다리는 중 제한 시간을 초과했습니다. /var/log/ecs/ecs-agent.log에서 로그를 확인하세요.
<a name="service-event-messages-17"></a>

작업 배치에 가장 가깝게 일치하는 컨테이너 인스턴스 상의 Amazon ECS 컨테이너 에이전트 연결이 끊겼습니다. SSH를 사용해 컨테이너 인스턴스에 연결할 수 있는 경우, 에이전트 로그를 검사할 수 있습니다. 자세한 내용은 [Amazon ECS 컨테이너 에이전트 로그 구성 파라미터](ecs-agent-versions.md#agent-logs) 섹션을 참조하세요. 인스턴스에서 에이전트가 실행 중인지도 확인해야 합니다. Amazon ECS 최적화 AMI를 사용하는 경우 다음 명령을 사용하여 에이전트를 중지하고 다시 시작해 볼 수 있습니다.
+ Amazon ECS 최적화 Amazon Linux 2 AMI의 경우

  ```
  sudo systemctl restart ecs
  ```
+ Amazon ECS 최적화 Amazon Linux AMI의 경우

  ```
  sudo stop ecs && sudo start ecs
  ```

## `TARGET GROUP IS NOT FOUND`로 인해 서비스(*service-name*) 태스크 세트(*taskSet-ID*)(태스크 *task-id*)가 대상 그룹(*targetGroup-ARN)*)에서 비정상 상태입니다.
<a name="service-event-messages-18"></a>

대상 그룹을 찾을 수 없으므로 서비스에 설정된 작업의 상태 확인에 실패합니다. 해당 메시지에는 상태 확인에 실패한 특정 태스크를 식별하는 데 도움이 되는 태스크 ID가 포함되어 있습니다. 서비스를 삭제하고 다시 생성해야 합니다. 해당 Amazon ECS 서비스가 이미 삭제된 경우가 아니면 Elastic Load Balancing 대상 그룹을 삭제하지 않습니다.

## `TARGET IS NOT FOUND`로 인해 서비스(*service-name*) 태스크 세트(*taskSet-ID*)(태스크 *task-id*)가 대상 그룹(*targetGroup-ARN)*)에서 비정상 상태입니다.
<a name="service-event-messages-19"></a>

대상을 찾을 수 없으므로 서비스에 설정된 작업의 상태 확인에 실패합니다. 해당 메시지에는 상태 확인에 실패한 특정 태스크를 식별하는 데 도움이 되는 태스크 ID가 포함되어 있습니다.

## IAM 권한 정책이 잘못 구성되거나 변경되었으며 ECS가 더 이상 서비스를 유지 관리할 수 없음
<a name="service-event-messages-20"></a>

잘못 구성되거나 변경된 IAM 권한 정책으로 인해 서비스가 태스크를 유지할 수 없습니다. ECS 서비스 또는 태스크와 연결된 IAM 역할에 필요한 권한이 없을 수 있습니다.

이 문제를 해결하려면 IAM 역할에 필요한 권한을 추가합니다. IAM 권한 정책 관리에 대한 자세한 내용은 *IAM 사용 설명서*의 [IAM 자격 증명 권한 추가 및 제거](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)를 참조하세요.

## IAM 신뢰 관계가 잘못 구성되거나 변경되었으며 ECS가 더 이상 서비스를 유지 관리할 수 없음
<a name="service-event-messages-21"></a>

잘못 구성되거나 변경된 IAM 신뢰 관계로 인해 서비스가 태스크를 유지할 수 없습니다. ECS 서비스 또는 태스크와 연결된 IAM 역할에 잘못된 신뢰 정책이 있을 수 있습니다.

이 문제를 해결하려면 태스크 정의에 사용되는 역할에 대한 신뢰 정책을 구성합니다. 사용자 지정 역할에 대한 신뢰 정책 생성에 대한 자세한 내용은 *IAM 사용자 설명서*의 [사용자 지정 사용 사례에 대한 역할 생성](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-custom.html)을 참조하세요.

## service (*service-name*) could not launch *number* tasks for deployment *deployment-id*.
<a name="service-event-messages-22"></a>

배포 워크플로가 일부 태스크를 성공적으로 시작하지만 용량 부족 오류로 인해 요청된 모든 태스크를 시작하지 못하면 서비스 스케줄러가 이 이벤트 메시지를 보냅니다. 이는 일반적으로 회로 차단기가 활성화되어 있고 배포가 실패하거나 롤백될 수 있는 이유에 대한 가시성을 제공할 때 발생합니다.

메시지에는 CPU, 메모리 또는 기타 리소스 제약 조건 부족과 같은 특정 실패 이유가 포함됩니다. 이를 통해 배포 문제를 해결하기 위해 해결해야 할 리소스를 이해할 수 있습니다.

자세한 내용은 [모든 요구 사항을 충족하는 컨테이너 인스턴스가 없기 때문에 서비스(*service-name*)가 태스크를 배치할 수 없습니다.](#service-event-messages-1) 섹션을 참조하세요.

## service (*service-name*) was unable to place tasks in your cluster because the tasks provisioning capacity limit was exceeded.
<a name="service-event-messages-23"></a>

클러스터가 동시에 `PROVISIONING` 상태에 있을 수 있는 500개의 태스크 한도에 도달하면 서비스 스케줄러가 이 이벤트 메시지를 보냅니다. 이는 클러스터 수준 한도이며 서비스에 특정한 문제가 아닙니다.

이는 일반적으로 사전 프로비저닝된 용량이 제한된 원하는 태스크 수가 많은 서비스를 시작하거나 여러 서비스가 동시에 시작되어 태스크 이탈이 높을 때 발생합니다.

이 문제를 해결하려면:
+ 기존 태스크가 프로비저닝을 완료하고 `RUNNING` 상태로 전환될 때까지 기다립니다.
+ 프로비저닝 한도에 도달하지 않도록 서비스를 더 점진적으로 조정하는 방법을 고려합니다.
+ 클러스터의 용량 공급자 구성을 검토하여 적절한 리소스를 사용할 수 있는지 확인합니다.

Amazon ECS 서비스 할당량에 대한 자세한 내용은 *Amazon Web Services 일반 참조*의 [Amazon Elastic Container Service 엔드포인트 및 할당량](https://docs.aws.amazon.com/general/latest/gr/ecs-service.html)을 참조하세요.

# Amazon ECS 서비스 비정상 이벤트 메시지
<a name="service-unhealthy-event-messages"></a>

다음은 서비스 비정상 이벤트 메시지의 예제입니다.

## EC2: (이유 *failure-reason*)로 인해 (서비스 *service-name*)(태스크 *task-id*)(인스턴스 *instance-id*)(포트 *port-number*)가 (대상 그룹 *target-group-name*)에서 비정상 상태임
<a name="service-unhealthy-ec2"></a>

이 메시지는 EC2 인스턴스에서 실행 중인 태스크가 상태 확인에 실패했음을 나타냅니다. 자세한 내용은 다음을 참조하세요.
+ [EC2를 사용하여 Application Load Balancer 상태 확인을 전달하는 Amazon ECS 태스크를 가져오려면 어떻게 해야 합니까?](https://repost.aws/knowledge-center/troubleshoot-unhealthy-checks-ecs)

## 태스크 세트가 있는 EC2: (이유 *failure-reason*)로 인해 (서비스 *service-name*, 태스크 세트 *taskSet-id*)(태스크 *task-id*)(인스턴스 *instance-id*)(포트 *port-number*)가 (대상 그룹 *target-group-name*)에서 비정상 상태임
<a name="service-unhealthy-ec2-taskset"></a>

이 메시지는 EC2 인스턴스에서 실행 중인 태스크 세트의 태스크가 상태 확인에 실패했음을 나타냅니다. 자세한 내용은 다음을 참조하세요.
+ [EC2를 사용하여 Application Load Balancer 상태 확인을 전달하는 Amazon ECS 태스크를 가져오려면 어떻게 해야 합니까?](https://repost.aws/knowledge-center/troubleshoot-unhealthy-checks-ecs)

## Fargate: (이유 *failure-reason*)로 인해 (서비스 *service-name*)(태스크 *task-id*)(포트 *port-number*)가 (대상 그룹 *target-group-name*)에서 비정상 상태임
<a name="service-unhealthy-fargate"></a>

이 메시지는 Fargate 태스크가 상태 확인에 실패했음을 나타냅니다.

Fargate 태스크의 상태 확인 실패 문제 해결에 대한 자세한 내용은 [Fargate의 Amazon ECS 태스크에 대한 상태 확인 실패 문제를 해결하려면 어떻게 해야 합니까?](https://repost.aws/knowledge-center/ecs-fargate-health-check-failures)를 참조하세요.

## 태스크 세트가 있는 Fargate: (이유 *failure-reason*)로 인해 (서비스 *service-name*, 태스크 세트 *taskSet-id*)(태스크 *task-id*)(포트 *port-number*)가 (대상 그룹 *target-group-name*)에서 비정상 상태임
<a name="service-unhealthy-fargate-taskset"></a>

이 메시지는 Fargate에서 실행되는 태스크 세트의 태스크가 상태 확인에 실패했음을 나타냅니다.

Fargate 태스크의 상태 확인 실패 문제 해결에 대한 자세한 내용은 [Fargate의 Amazon ECS 태스크에 대한 상태 확인 실패 문제를 해결하려면 어떻게 해야 합니까?](https://repost.aws/knowledge-center/ecs-fargate-health-check-failures)를 참조하세요.

# Amazon ECS 가용 영역 서비스 리밸런싱 서비스 이벤트 메시지
<a name="service-rebalancing-event-messages-list"></a>

다음은 참조할 수 있는 서비스 이벤트 메시지 예제입니다.

## 서비스(*service-name*)는 *가용 영역 1*의 *number-tasks* 태스크, *가용 영역 2*의 *number-tasks* 및 *가용 영역 3*의 *number-tasks*로 밸런싱된 AZ가 아닙니다. AZ 리밸런싱이 진행 중입니다.
<a name="service-rebalancing-started"></a>

서비스 스케줄러에서는 태스크 수가 가용 영역에 균등하게 분산되지 않을 때 `service (service-name) is not AZ balanced` 서비스 이벤트를 보냅니다. 취할 조치는 없습니다. 이는 정보 이벤트입니다.

## 서비스(*service-name*)는 *가용 영역 1*의 *number-tasks* 태스크, *가용 영역 2*의 *number-tasks* 태스크 및 *가용 영역 3*의 *number-tasks* 태스크로 밸런싱된 AZ입니다.
<a name="service-rebalancing-completed"></a>

서비스 스케줄러에서는 가용 영역 서비스 리밸런싱이 완료되면 `service (service-name) is AZ balanced` 서비스 이벤트를 보냅니다. 취할 조치는 없습니다. 이는 정보 이벤트입니다.

## *service-name*이 AZ 리밸런싱에 대한 *가용 영역*의 *number-tasks* 태스크를 시작했습니다(*task-ids*).
<a name="service-rebalancing-tasks-started"></a>

서비스 스케줄러에서는 서비스 리밸런싱 때문에 가용 영역에서 태스크가 시작될 때 *가용 영역* 서비스 이벤트에서 *number*개의 태스크를 시작한 *service-name*/*task-set-name*을 보냅니다. 취할 조치는 없습니다. 이는 정보 이벤트입니다.

## *service-name*이 AZ 리밸런싱으로 인해 *가용 영역*에서 실행 중인 태스크 *number-tasks*를 중지했습니다(*task-id*).
<a name="service-rebalancing-tasks-stopped"></a>

서비스 스케줄러에서는 서비스 리밸런싱 때문에 가용 영역에서 태스크가 중지될 때 *가용 영역* 서비스 이벤트에서 *number*개의 태스크를 중지한 *service-name*/*task-set-name*을 보냅니다. 취할 조치는 없습니다. 이는 정보 이벤트입니다.

## 모든 요구 사항을 충족하는 컨테이너 인스턴스가 없기 때문에 서비스(*service-name*)가 태스크를 *가용 영역*에 배치할 수 없습니다.
<a name="service-rebalancing-placement-failure-instance"></a>

서비스 스케줄러에서는 모든 요구 사항을 충족하는 컨테이너 인스턴스가 없기 때문에 *service-name*에서 태스크를 *가용 영역* 배치할 수 없다는 서비스 이벤트를 보냅니다. 문제를 해결하려면 가용 영역에서 인스턴스를 시작합니다.

## 서비스(*service-name*)가 태스크를 *가용 영역*에 배치할 수 없습니다.
<a name="service-rebalancing-placement-failure"></a>

Fargate를 사용하고 사용 가능한 용량이 없으면 서비스 스케줄러에서는 *service-name*에서 *가용 영역*에 태스크를 배치할 수 없다는 서비스 이벤트를 보냅니다.

오류 메시지의 가용 영역에 추가 서브넷을 추가하거나 지원에 문의하여 추가 용량을 얻을 수 있습니다.

## *reason* 사유로 인해 *task-set-name* 태스크가 스케일 인될 수 없어서 서비스(*service-name*)가 AZ 리밸런싱할 수 없었습니다.
<a name="service-rebalancing-task-protection-failure"></a>

서비스 스케줄러에서는 Task scale-in protection 사용 시 서비스 스케줄러에서는 *reason*(으)로 인해 *task-set-name*이(가) 스케일 인될 수 없어서 *service-name*이(가) AZ 리밸런싱할 수 없다는 서비스 이벤트를 보냅니다.

 다음 중 하나를 수행할 수 있습니다.
+ 현재 작업에 대한 보호가 만료될 때까지 기다리면 작업이 종료됩니다.
+ 중지할 수 있는 작업을 결정하고 `protectionEnabled` 옵션을 `false`로 설정한 상태에서 `UpdateTaskProtection` API를 사용하여 이러한 작업에 대한 보호를 해제합니다.
+ 서비스의 바람직한 작업 수를 보호되는 작업 수 이상으로 늘립니다.

## 서비스(*service-name*)가 AZ 리밸런싱을 중지했습니다.
<a name="service-rebalancing-operation-stopped"></a>

가용 영역 리밸런싱 작업이 중지되면 서비스 스케줄러에서는 *service-name* 서비스가 AZ 리밸런싱을 중지했다는 서비스 이벤트를 보냅니다. 이는 정보 이벤트입니다. Amazon ECS에서는 자세한 내용이 제공되는 추가 이벤트를 보냅니다.