Amazon ECS 작업의 컨테이너 상태 확인 실패 문제를 해결하려면 어떻게 해야 하나요?

3분 분량
0

Amazon Elastic Container Service(Amazon ECS) 작업이 컨테이너 상태 확인에 실패했습니다.

간략한 설명

다음 오류가 발생하면 작업의 Amazon ECS 컨테이너가 서비스가 통과할 수 없는 상태 확인을 사용하고 있는 것입니다.

(service AWS-Service) (task ff3e71a4-d7e5-428b-9232-2345657889) failed container health checks

해결 방법

Amazon ECS 컨테이너 상태 확인 실패 문제를 해결하려면 다음 단계를 완료하세요.

  • Amazon ECS에 프로비저닝하기 전에 컨테이너를 로컬에서 테스트하여 컨테이너 상태 확인을 통과하는지 확인하세요.
  • 컨테이너에 전달하는 명령이 올바른지, Amazon ECS 작업에 올바른 구문을 사용하는지 확인하세요.
  • 컨테이너가 시작할 수 있는 충분한 시간을 주세요.
  • Amazon ECS 작업이 오랜 시간 동안 계속 실행되는 경우 애플리케이션 로그와 Amazon CloudWatch Logs를 확인하세요.

컨테이너를 로컬로 테스트하여 컨테이너 상태 확인을 통과하는지 확인

Amazon ECS에 컨테이너를 프로비저닝하기 전에 컨테이너가 예상대로 작동하고 지정된 컨테이너 상태 확인을 통과할 수 있는지 확인하세요. Docker 웹 사이트에서 Dockerfile HEALTHCHECK 구성을 사용하여 컨테이너를 테스트하세요. 컨테이너가 Dockerfile에 정의된 상태 확인을 통과했는지 확인합니다. 그런 다음 Amazon ECS 컨테이너 에이전트가 상태 확인을 모니터링하고 보고할 수 있도록 작업 정의에 상태 점검 구성을 지정합니다.

참고: Amazon ECS는 컨테이너 이미지에 내장되어 있으며 컨테이너 정의에 지정되지 않은 Docker 상태 확인은 모니터링하지 않습니다. 컨테이너 정의에 지정된 상태 확인 파라미터는 컨테이너 이미지에 있는 Docker 상태 검사를 재정의합니다.

Amazon ECS 작업에 올바른 구문을 사용하고 있는지 확인

참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생하는 경우, 최신 버전의 AWS CLI를 사용하고 있는지 확인하세요.

Amazon ECS 작업에 올바른 명령과 구문을 사용하세요. AWS Management Console JSON 패널, AWS CLI 또는 API를 사용하는 경우 명령 목록을 괄호로 묶으세요.

명령 예시:

["CMD-SHELL", "curl -f http://localhost/ || exit 1"]

AWS Management Console을 사용하여 ECS 작업을 편집하는 경우 대괄호를 포함할 필요가 없습니다.

CMD-SHELL, Curl -f http://localhost/ || exit 1

상태 확인 명령을 ["CMD-SHELL", "healthcheck.sh", "||", "exit 1"]과 같이 큰 따옴표로 구분하지 마세요. 대신에 다음 명령 구문을 사용하세요.

["CMD-SHELL", "healthcheck.sh || exit 1"]

컨테이너가 시작할 수 있는 충분한 시간 주기

컨테이너를 시작하는 데 시간이 오래 걸리면 컨테이너가 컨테이너 상태 확인에 실패할 수 있습니다. 고급 컨테이너 정의 파라미터**에서 **startPeriod를 설정합니다. 이렇게 하면, 실패한 상태 확인이 최대 재시도 횟수에 포함되기 전에 Amazon ECS 컨테이너를 부트스트랩할 시간을 확보할 수 있습니다.

오랫동안 실행되는 작업의 경우 애플리케이션 로그와 Amazon CloudWatch Logs를 확인하세요

Amazon ECS 컨테이너가 오랫동안 실행되고 컨테이너 상태 확인에 실패하는 경우 애플리케이션 로그를 확인하세요. Amazon ECS 작업에서 awslogs 로그 드라이버를 사용하는 경우 CloudWatch에서 애플리케이션 로그를 확인하세요.

참고: AWS Fargate는 관리형 서비스입니다. 그러므로 기본 인프라에 액세스할 수 없습니다. 이 문제를 해결하려면 Amazon Elastic Compute Cloud(Amazon EC2)에서 Amazon ECS 작업을 시작하세요. 그런 다음 SSH를 사용하여 Amazon EC2 인스턴스에 연결합니다. Amazon ECS Exec을 사용하여 ECS 컨테이너와 직접 상호 작용할 수도 있습니다.

관련 정보

Amazon ECS의 Application Load Balancer 상태 확인을 통과하도록 Amazon EC2 시작 유형을 사용하여 Amazon ECS 작업을 실행하려면 어떻게 해야 하나요?

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

관련 콘텐츠