Amazon ECS 서비스 이벤트 메시지

Amazon ECS 서비스 이벤트 메시지

Amazon ECS 콘솔에서 볼 수 있는 서비스 이벤트 메시지의 예시와 원인을 알아봐요.

출처: 문서

본문

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

service (service-name) has reached a steady state.

서비스 스케줄러는 서비스가 건강하고 원하는 태스크 수에 있어 안정 상태(steady state)에 도달하면 service (service-name) has reached a steady state. 서비스 이벤트를 보내요. 서비스 스케줄러는 상태를 주기적으로 보고하므로 이 메시지를 여러 번 받을 수 있어요.

service (service-name) was unable to place a task because no container instance met all of its requirements.

서비스 스케줄러는 다른 태스크를 추가하기 위한 사용 가능한 리소스를 찾지 못했을 때 이 이벤트 메시지를 보내요. 가능한 원인은:

  • 용량 제공자로 EC2 인스턴스를 자동 확장하세요. 자세한 내용은 Amazon ECS capacity providers for EC2 workloads 참고. capacity provider를 사용하려는 경우 capacity provider 전략을 전달하거나 클러스터에 기본 capacity provider 전략을 연결하고, 입력으로 launch type과 capacity provider 전략을 함께 전달하지 않는지 확인하세요.
  • 클러스터에서 컨테이너 인스턴스를 찾을 수 없음 - 태스크를 실행하려는 클러스터에 등록된 컨테이너 인스턴스가 없으면 이 오류를 받아요. 클러스터에 컨테이너 인스턴스를 추가해야 해요. 자세한 내용은 Launching an Amazon ECS Linux container instance 참고.
  • 포트 부족 (Not enough ports) - 태스크가 고정 호스트 포트 매핑을 사용하면(예: 웹 서버를 위해 호스트에서 포트 80 사용) 단일 호스트 포트는 한 번에 하나의 컨테이너만 사용할 수 있으므로 태스크당 최소 하나의 컨테이너 인스턴스가 있어야 해요. 클러스터에 컨테이너 인스턴스를 추가하거나 원하는 태스크 수를 줄여야 해요.
  • 너무 많은 포트 등록 (Too many ports registered) - 태스크 배치를 위해 가장 근접하게 일치하는 컨테이너 인스턴스가 컨테이너 인스턴스당 최대 허용 예약 포트 한도인 100개 호스트 포트를 초과할 수 없어요. 동적 호스트 포트 매핑을 사용하면 문제를 해결할 수 있어요.
  • 포트 이미 사용 중 (Port already in-use) - 이 태스크의 태스크 정의가 선택된 컨테이너 인스턴스에서 이미 실행 중인 태스크와 같은 포트를 포트 매핑에 사용해요. 서비스 이벤트 메시지는 선택된 컨테이너 인스턴스 ID를 다음 메시지의 일부로 가질 거예요.
The closest matching container-instance is already using a port required by your task.
  • 메모리 부족 (Not enough memory) - 태스크 정의가 1000 MiB의 메모리를 지정하고 클러스터의 컨테이너 인스턴스가 각각 1024 MiB의 메모리를 가진다면, 컨테이너 인스턴스당 이 태스크 사본을 하나만 실행할 수 있어요. 태스크 정의에서 메모리를 줄여 컨테이너 인스턴스당 태스크를 더 많이 시작하거나 클러스터에 컨테이너 인스턴스를 더 시작할 수 있어요.
    • 참고 — 특정 인스턴스 유형에 대해 태스크에 가능한 한 많은 메모리를 제공해 리소스 활용을 최대화하려면 Reserving Amazon ECS Linux container instance memory 참고.
  • CPU 부족 (Not enough CPU) - 컨테이너 인스턴스는 CPU 코어마다 1,024 CPU 단위를 가져요. 태스크 정의가 1,000 CPU 단위를 지정하고 클러스터의 컨테이너 인스턴스가 각각 1,024 CPU 단위를 가진다면, 컨테이너 인스턴스당 이 태스크 사본을 하나만 실행할 수 있어요. 태스크 정의에서 CPU 단위를 줄여 컨테이너 인스턴스당 태스크를 더 많이 시작하거나 클러스터에 컨테이너 인스턴스를 더 시작할 수 있어요.
  • 사용 가능한 ENI 연결 지점 부족 (Not enough available ENI attachment points) - awsvpc 네트워크 모드를 사용하는 태스크는 각각 자체 탄력적 네트워크 인터페이스(ENI)를 받으며, 이는 호스팅하는 컨테이너 인스턴스에 연결돼요. Amazon EC2 인스턴스에는 연결할 수 있는 ENI 수에 제한이 있으며, ENI 용량이 사용 가능한 컨테이너 인스턴스가 클러스터에 없어요.

개별 컨테이너 인스턴스의 ENI 한도는 다음 조건에 따라 달라져요:

  • awsvpcTrunking 계정 설정에 옵트인하지 않았다면 각 컨테이너 인스턴스의 ENI 한도는 인스턴스 유형에 따라 달라져요. 자세한 내용은 Amazon EC2 User Guide의 IP Addresses Per Network Interface Per Instance Type 참고.
  • awsvpcTrunking 계정 설정에 옵트인했지만 옵트인 후 지원되는 인스턴스 유형으로 새 컨테이너 인스턴스를 시작하지 않았다면, 각 컨테이너 인스턴스의 ENI 한도는 여전히 기본값이에요. 자세한 내용은 Amazon EC2 User Guide의 IP Addresses Per Network Interface Per Instance Type 참고.
  • awsvpcTrunking 계정 설정에 옵트인했고 옵트인 후 지원되는 인스턴스 유형으로 새 컨테이너 인스턴스를 시작했다면 추가 ENI를 사용할 수 있어요. 자세한 내용은 Supported instances for increased Amazon ECS container network interfaces 참고.

더 알아보기 (Learn more)