Amazon ECS 관리형 인스턴스 드레이닝 문제 해결 - Amazon Elastic Container Service

Amazon ECS 관리형 인스턴스 드레이닝 문제 해결

Amazon ECS 관리형 인스턴스에서 태스크를 시작할 때 Amazon ECS는 먼저 기존 용량에 태스크를 배치하려고 시도하고 배치할 수 없는 태스크에 대한 추가 용량을 요청합니다. 인스턴스 프로비저닝이 실패하면 Amazon EC2 요청 ID가 태스크 장애 메시지에 포함됩니다. 이 요청 ID를 사용하여 추가 문제 해결을 위해 CloudTrail에서 실패한 요청의 세부 정보를 조회할 수 있습니다.

참고

AmazonECSInstanceRolePolicyForManagedInstances 관리형 정책을 사용하는 대신 최소 권한을 적용하고 인스턴스 프로파일에 대한 자체 권한을 지정하도록 선택한 경우 Amazon ECS 관리형 인스턴스의 태스크 관련 문제를 해결하는 데 도움이 되는 다음 권한을 추가할 수 있습니다.

  • ecs:StartTelemetrySession

  • ecs:PutSystemLogEvents

태스크 정의가 Amazon ECS 관리형 인스턴스와 호환되지 않음

일반적인 원인

이 오류는 태스크 정의에 Amazon ECS 관리형 인스턴스에서 지원되지 않는 파라미터 또는 구성이 포함되어 있을 때 발생합니다. 일반적인 비호환성으로, 지원되지 않는 네트워크 모드, 태스크 역할 또는 리소스 요구 사항이 포함됩니다.

해결 방법

  1. 태스크 정의에서 MANAGED_INSTANCES로 설정된 requiresCompatibilities를 사용하는지 확인합니다.

  2. 태스크 정의가 awsvpc 네트워크 모드를 사용하는지 확인합니다.

  3. CPU 및 메모리 값이 Amazon ECS 관리형 인스턴스에 대해 지원되는 범위에 있는지 확인합니다.

  4. 특정 비호환성 세부 정보는 자세한 오류 메시지를 검토하세요.

클러스터와 연결되지 않은 용량 공급자

일반적인 원인

이 오류는 용량 공급자 전략에 지정된 용량 공급자가 클러스터와 연결되지 않았거나 존재하지 않을 때 발생합니다.

해결 방법

  1. 용량 공급자가 계정 및 리전에 있는지 확인합니다.

  2. Amazon ECS 콘솔 또는 CLI를 사용하여 용량 공급자를 클러스터에 연결합니다.

  3. 용량 공급자를 사용하기 전에 용량 공급자가 ACTIVE 상태인지 확인합니다.

인프라 역할 권한 오류

일반적인 원인

이 오류는 Amazon ECS 인프라 역할에 사용자를 대신해 Amazon EC2 작업을 수행하는 데 필요한 권한이 없거나 신뢰 관계 문제로 인해 역할을 수임할 수 없을 때 발생합니다.

해결 방법

  1. 인프라 역할이 Amazon ECS와 적절한 신뢰 관계를 맺고 있는지 확인합니다.

  2. ec2:RunInstances, ec2:DescribeInstances, iam:PassRole을 포함하여 역할에 필요한 Amazon EC2 권한이 있는지 확인합니다.

  3. 특정 권한 세부 정보는 CloudTrail에서 인코딩된 권한 부여 실패 메시지를 확인하세요.

  4. 오류 메시지에서 식별된 누락된 권한을 포함하도록 역할 정책을 업데이트합니다.

VcpuLimitExceeded 오류

일반적인 원인

이 오류는 현재 리전의 인스턴스 유형 패밀리에 대한 vCPU 서비스 할당량에 도달했을 때 발생합니다. Amazon ECS 관리형 인스턴스는 용량을 사용할 수 있을 때까지 추가 인스턴스를 시작할 수 없습니다.

해결 방법

  1. AWS 지원 센터를 통해 영향을 받는 인스턴스 유형 패밀리에 대한 서비스 할당량 증가를 요청합니다.

  2. 다른 vCPU 할당량 범주에 속하는 다른 인스턴스 유형을 사용하는 방법을 고려합니다.

  3. 사용하지 않는 Amazon EC2 인스턴스를 종료하여 vCPU 용량을 확보합니다.

  4. 용량 공급자 구성을 검토하여 vCPU 요구 사항이 낮은 인스턴스 유형을 사용합니다.

InsufficientCapacity 및 관련 용량 오류

일반적인 원인

이러한 오류는 AWS에 인스턴스 요청을 이행하기에 충분한 용량이 없을 때 발생합니다. 여기에는 요청된 가용 영역의 인스턴스 용량 부족, 주소 용량 또는 볼륨 용량이 포함될 수 있습니다.

해결 방법

  1. 용량 공급자에서 여러 서브넷을 구성하여 서로 다른 가용 영역에서 인스턴스를 시작해 보세요.

  2. 사용 가능한 용량이 더 많을 수 있는 다양한 인스턴스 유형을 사용하는 방법을 고려합니다.

  3. 용량 가용성이 자주 변경되면 작업을 기다렸다가 다시 시도하세요.

  4. 영구 용량 요구 사항에 대해서는 예약 인스턴스 또는 절감형 플랜 사용을 고려합니다.

UnauthorizedOperation error

일반적인 원인

이 오류는 Amazon ECS 서비스에 Amazon EC2 작업을 수행하거나 IAM 역할을 전달하는 데 필요한 권한이 없을 때 발생합니다. 일반적인 시나리오로, ec2:RunInstances 권한 누락 또는 인스턴스 프로파일에 대한 iam:PassRole 권한 누락이 포함됩니다.

해결 방법

  1. Amazon ECS 인프라 역할에 Amazon EC2 인스턴스를 시작하는 데 필요한 권한이 있는지 확인합니다.

  2. 인프라 역할에 Amazon ECS 관리형 인스턴스에서 사용하는 인스턴스 프로파일에 대한 iam:PassRole 권한이 있는지 확인합니다.

  3. 특정 권한 세부 정보는 CloudTrail에서 인코딩된 권한 부여 실패 메시지를 확인하세요.

  4. 오류 메시지에서 식별된 누락된 권한을 포함하도록 역할 정책을 업데이트합니다.

용량 대기 중 태스크 제한 시간 초과됨

일반적인 원인

이 오류는 인스턴스가 클러스터를 시작하고 등록하는 데 예상보다 오래 걸릴 때 발생합니다. Amazon EC2 용량 제약, 인스턴스 시작 실패 또는 네트워크 연결 문제로 인해 발생할 수 있습니다.

해결 방법

  1. 리전의 Amazon EC2 서비스 상태를 확인하여 진행 중인 문제가 있는지 확인합니다.

  2. 서브넷에 사용 가능한 IP 주소가 충분한지 확인합니다.

  3. 보안 그룹이 Amazon ECS 에이전트 통신에 필요한 트래픽을 허용하는지 확인합니다.

  4. 여러 가용 영역을 사용하여 용량 가용성을 개선하는 방법을 고려합니다.

  5. 용량 제약 조건은 종종 일시적이므로 태스크 시작 작업을 재시도하세요.

네트워크 구성 오류

일반적인 원인

이러한 오류는 VPC 불일치 또는 누락된 네트워크 구성과 같이 작업의 네트워크 요구 사항과 용량 공급자의 네트워크 구성 간에 불일치가 있을 때 발생합니다.

해결 방법

  1. 용량 공급자가 올바른 VPC 및 서브넷으로 구성되었는지 확인합니다.

  2. 보안 그룹과 서브넷이 동일한 VPC에 속하는지 확인합니다.

  3. 태스크 정의의 네트워크 구성이 용량 공급자와 호환되는지 확인합니다.

  4. 용량 공급자 구성을 올바른 네트워크 설정으로 업데이트합니다.

멈춘 인스턴스로 인해 용량 공급자를 삭제할 수 없음

일반적인 원인

이러한 오류는 Amazon ECS 관리형 인스턴스가 ACTIVE 또는 DRAINING 상태에서 멈춰 있지만 인스턴스에서 실행 중인 태스크가 없는 경우에 발생합니다.

해결 방법

용량 공급자 삭제를 계속하려면 다음 명령을 사용하여 멈춘 인스턴스의 등록을 강제로 취소할 수 있습니다.

aws ecs deregister-container-instance \ --cluster arn:aws:ecs:us-east-1:111122223333:cluster/MyCluster \ --container-instance arn:aws:ecs:us-east-1:111122223333:container-instance/a1b2c3d4-5678-90ab-cdef-11111EXAMPLE \ --force