내용으로 건너뛰기

Amazon ECS 작업의 대상 등록 취소 문제를 해결하려면 어떻게 해야 합니까?

3분 분량
0

내 Amazon Elastic Container Service(Amazon ECS) 작업이 대상 그룹에서 등록 취소되었습니다.

해결 방법

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

Amazon ECS 작업이 대상 그룹에서 등록 취소되는 경우작업에 오류 메시지가 있는지 확인하십시오. 또는 다음 describe-tasks AWS CLI 명령을 실행합니다.

aws ecs describe-tasks \
    --cluster cluster-name \
    --tasks task-ARN

참고: cluster-name을 클러스터 이름으로 바꾸고 task-ARN을 작업 ARN으로 바꾸십시오. 중지된 작업의 세부 정보는 작업이 중지된 후 1시간 동안만 볼 수 있습니다.

명령의 출력에서 exitCode, reason, stopCode 및 stoppedReason을 확인한 다음 중지된 작업의 문제를 해결하십시오.

작업의 필수 컨테이너가 종료되었는지 확인

모든 작업에는 필수 컨테이너가 하나 이상 있어야 합니다. 필수 컨테이너에 장애가 발생하거나 중지되면 Amazon ECS는 작업의 모든 컨테이너를 중지합니다. 더 자세히 조사하려면 애플리케이션 로그를 확인하십시오.

작업에서 awslogs 로그 드라이버를 사용하는 경우 다음 get-log-events 명령을 실행하여 Amazon CloudWatch에서 애플리케이션 로그를 확인하십시오.

aws logs get-log-events \
--log-group-name awslogs-group \
--log-stream-name awslogs-stream-prefix/container-name/task-id

참고: awslogs-group을 로그 그룹 이름으로, awslogs-stream-prefix를 로그 스트림 이름으로, container-name을 컨테이너 이름으로, task-id를 작업 ID로 바꾸십시오.

CloudWatch로 로그를 전송하는 작업 정의의 예는 Amazon ECS 작업 정의 예시: 로그를 CloudWatch로 라우팅을 참조하십시오.

OutofMemory 문제 확인

컨테이너 프로세스가 작업 정의에서 할당한 양보다 많은 메모리를 사용하는 경우 작업 컨테이너가 종료됩니다.

이 문제를 해결하려면 컨테이너에 메모리를 더 할당하십시오. 비프로덕션 환경에서 부하 테스트를 실시하고 메모리 파라미터를 미세 조정하는 것이 가장 좋습니다. 메모리를 점진적으로 늘린 다음 성능을 모니터링하는 것도 모범 사례입니다. 예를 들어 256MB를 512MB로 늘리십시오. 작업 메모리를 업데이트할 때 CPU 할당도 검토하십시오. 자세한 내용은 Amazon EC2 작업 크기 모범 사례를 참조하십시오.

메모리를 업데이트하려면 컨테이너에 메모리를 정의했는지 작업 정의에 정의했는지 확인하십시오. 작업 정의를 업데이트한 다음 새 작업 정의 개정을 사용하도록 서비스를 업데이트합니다. 서비스를 모니터링하여 작업 정의가 새 메모리 설정과 함께 성공적으로 배포되었는지 확인합니다.

추가 문제 해결 단계는 Amazon ECS의 OutOfMemory 오류를 해결하려면 어떻게 해야 합니까?를 참조하십시오.

상태 확인 설정 검사

AWS Fargate 작업의 상태 확인 실패 문제를 해결하려면 Fargate에서 Amazon ECS 작업의 상태 확인 실패 문제를 해결하려면 어떻게 해야 합니까?를 참조하십시오.

등록 취소 오류는 작업이 Elastic Load Balancing(ELB) 상태 확인에 실패하고 다음 오류 중 하나가 나타날 때 발생할 수 있습니다.

  • "(service AWS-service) (port 8080) is unhealthy in (target-group arn:aws:elasticloadbalancing:us-east-1:111111111111:targetgroup/aws-targetgroup/123456789) due to (reason Health checks failed with these codes: [5xx]/[4xx]/[3xx]) or (Request timed out)."
  • "(service AWS-Service) (task eaa3ec9e9f104070b461490987654321) failed container health checks."
  • "(service AWS-Service) (instance 10.122.144.145) (port 8080) is unhealthy in (target-group arn:aws:elasticloadbalancing:ap-south-1:120987654321:targetgroup/AWS-Service-TG/159c835dc9d8cf84) due to (reason Target is in an Availability Zone that is not enabled for the load balancer)."

Amazon ECS 콘솔에서 다음과 같은 오류가 표시될 수도 있습니다.

"Task failed ELB health checks in (target-group arn:aws:elasticloadbalancing:us-east-1:111111111111:targetgroup/aws-targetgroup/123456789)(작업이 (대상 그룹 arn:aws:elasticloadbalancing:us-east-1:111111111111:targetgroup/aws-targetgroup/123456789)에서 ELB 상태 확인에 실패함)"

이 문제를 해결하려면 대상 그룹 상태 확인에서 구성한 엔드포인트가 정확한지 확인하십시오.

Amazon ECS 작업의 상태 확인 응답이 느린 경우 healthCheckGracePeriodSeconds 파라미터의 값을 높이는 것이 바람직합니다. 또한 느린 시작 모드를 사용하여 로드 밸런서가 상태 확인 요청을 보내기 전에 대상이 워밍업되도록 하십시오.

작업 및 서비스 구성 확인

서비스의 CPU 및 메모리 지표를 확인합니다. 리소스 사용량이 많으면 애플리케이션이 응답하지 않고 5xx 오류가 발생할 수 있습니다. Fargate와 Amazon EC2 시작 유형이 모두 있는 작업에 대해 이러한 문제를 해결하려면 Fargate에서 Amazon ECS 작업의 높은 메모리 사용률을 모니터링하려면 어떻게 해야 합니까?를 참조하십시오.

작업의 탄력적 네트워크 인터페이스 또는 컨테이너 인스턴스 보안 그룹이 네트워크 모드의 필수 포트에서 로드 밸런서의 트래픽을 허용하는지 확인합니다.

  • awsvpc 네트워크 모드의 경우 작업 정의에서 containerPort로 정의한 포트를 허용합니다.
  • 브리지 네트워크 모드의 경우 임시 포트(32768-60999)를 허용합니다.

관련 정보

Amazon ECS 중지된 작업 오류 메시지

Amazon ECS용 Application Load Balancer 사용

Amazon Elastic Container Service의 로깅 및 모니터링

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

관련 콘텐츠