내용으로 건너뛰기

프로비저닝 루프에서 멈춘 Amazon ECS 작업의 문제를 해결하려면 어떻게 해야 합니까?

3분 분량
0

Amazon Elastic Container Service(Amazon ECS) 작업이 프로비저닝 상태에서 멈췄습니다.

해결 방법

참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생하면 AWS CLI의 오류 해결을 참조하십시오. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.

이 문제를 해결하려면 영향을 받는 서비스의 Amazon ECS 서비스 이벤트를 보고 최근 배포 활동 및 장애를 확인하십시오. 이벤트 패턴 및 오류 메시지를 사용하여 문제가 용량, 네트워킹 또는 구성 문제와 관련이 있는지 확인하십시오. 작업 시작 실패에 대한 자세한 내용은 중지된 작업 오류 메시지에서 TaskFailedToStart 오류를 확인하십시오.

용량 공급자 구성 확인

용량 공급자의 Amazon EC2 Auto Scaling 그룹이 작업 프로비저닝 중에 최대 용량에 도달했는지 확인하려면 다음 describe-auto-scaling-groups AWS CLI 명령을 실행합니다.

aws autoscaling describe-auto-scaling-groups \
    --auto-scaling-group-names your-asg-name \
    --query 'AutoScalingGroups[].{DesiredCapacity:DesiredCapacity,MaxSize:MaxSize,RunningInstances:Instances[?LifecycleState==InService].InstanceId|length}'

참고: your-asg-name을 EC2 Auto Scaling 그룹 이름으로 바꾸십시오.

모든 컨테이너 인스턴스와 해당 상태를 보려면 다음 list-container-instance 명령을 실행합니다.

aws ecs list-container-instances \
    --cluster your-cluster-name \
    --status ACTIVE \
    --query 'containerInstanceArns[]'

Auto Scaling 그룹의 용량을 늘리려면 다음 update-auto-scaling-group 명령을 실행합니다.

aws autoscaling update-auto-scaling-group \
--auto-scaling-group-name your-asg-name \
--max-size new-max-size

참고: your-asg-name을 EC2 Auto Scaling 그룹 이름으로 바꾸고 new-max-size를 업데이트된 EC2 Auto Scaling 그룹 크기로 바꾸십시오.

또한 Amazon ECS 에이전트가 컨테이너 인스턴스에서 실행 중이고 정상인지 확인하십시오.

용량 공급자 오류를 추가로 해결하려면 Amazon ECS 클러스터의 새 용량 공급자를 설정하거나 기존 용량 공급자를 업데이트하려고 할 때 발생하는 문제를 해결하려면 어떻게 해야 합니까?를 참조하십시오.

서비스 구성 및 작업 규모 조정 확인

서비스의 원하는 개수가 컨테이너 인스턴스의 CPU 및 메모리에서 사용 가능한 인프라 용량과 일치하는지 확인하십시오. 서비스의 원하는 개수와 실행 중인 개수를 보려면 다음 describe-services 명령을 실행합니다.

aws ecs describe-services \
--cluster your-cluster-name \
--services your-service-name \
--query 'services[].{desiredCount:desiredCount,runningCount:runningCount,pendingCount:pendingCount}'

참고: your-cluster-name을 클러스터 이름으로, your-service-name을 서비스 이름으로 바꾸십시오.

서비스의 원하는 개수를 업데이트하려면 다음 update-service 명령을 실행합니다.

aws ecs update-service \
--cluster your-cluster-name \
--service your-service-name \
--desired-count new-count
--force-new-deployment

참고: your-cluster-name을 클러스터 이름으로, your-service-name을 서비스 이름으로, new-count를 원하는 작업 개수로 바꾸십시오. --force-new-deployment 옵션은 서비스를 강제로 업데이트합니다.

서비스 할당량 확인

Amazon ECS 서비스 할당량을 초과하면 작업 문제가 발생할 수 있습니다. 서비스 할당량 문제를 해결하려면 Amazon ECS 서비스 할당량 문제를 해결하려면 어떻게 해야 합니까?를 참조하십시오.

네트워킹 구성 확인

작업 보안 그룹 규칙을 확인하고 서브넷에 사용 가능한 IP 주소가 있는지 확인합니다. NAT 게이트웨이가 없는 프라이빗 서브넷의 경우 구성에 필요한 VPC 엔드포인트를 설정합니다. VPC 엔드포인트 보안 그룹은 작업 서브넷 CIDR로부터의 인바운드 트래픽을 허용해야 합니다.

보안 그룹은 다음 트래픽도 허용해야 합니다.

  • 컨테이너 이미지를 가져오기 위한 인터넷 또는 NAT 게이트웨이로의 아웃바운드 HTTPS(포트 443) 트래픽.
  • 사용하는 VPC 엔드포인트에 대한 아웃바운드 트래픽.
  • Application Load Balancer를 사용하는 구성에 대한 Application Load Balancer 보안 그룹의 인바운드 트래픽.
  • 통신이 필요한 컨테이너 간 인바운드 트래픽.

Amazon ECS 서비스 서브넷에 필요한 IP 주소가 있는지 확인하려면 다음 describe-subnets 명령을 실행합니다.

aws ec2 describe-subnets \
    --subnet-ids subnet-abcde \
    --query 'Subnets[].{SubnetId:SubnetId,AvailableIPs:AvailableIpAddressCount,TotalIPs:CidrBlock}'

참고: subnet-abcde를 서브넷 ID로 바꾸십시오.

작업의 네트워크 모드 요구 사항을 준수해야 합니다.

  • awsvpc 모드의 경우 각 작업에 전용 탄력적 네트워크 인터페이스가 있어야 합니다.
    참고: 각 인스턴스 유형의 네트워크 인터페이스에 대한 최대 할당량이 있습니다. 새 작업에 사용할 수 있는 네트워크 인터페이스 연결 지점이 컨테이너 인스턴스에 있는지 확인하십시오.
  • 브리지 모드의 경우 docker0 브리지의 풀에 충분한 IP 주소가 있는지 확인하십시오.
  • 호스트 모드의 경우 특정 네트워크 리소스 제약이 없습니다. 그러나 여러 작업이 동일한 호스트 포트를 사용하는 경우 포트 충돌이 발생할 수 있습니다.

관련 정보

Amazon ECS 문제 해결

Amazon ECS 서비스 할당량

Amazon ECS 서비스 자동 규모 조정

Amazon ECS에 대한 솔루션 설계

AWS 공식업데이트됨 일 년 전
댓글 없음

관련 콘텐츠