ECS 컨테이너 헬스 체크 미설정

실제 애플리케이션 상태를 확인할 컨테이너 헬스 체크를 구성하세요.

설명

ECS 작업 정의에 컨테이너 HealthCheck가 없으면 이 경로로 애플리케이션의 응답 상태를 확인할 수 없습니다. 프로세스가 실행 중이라는 사실만으로 정상 응답을 보장할 수는 없습니다.

잠재적 영향

다른 점검 수단도 없다면 응답하지 않는 컨테이너를 발견하고 교체하는 데 더 오래 걸릴 수 있습니다.

해결 방법

주요 컨테이너에 적절한 HealthCheck 명령, 간격과 타임아웃을 설정하세요. 명령에 필요한 도구를 이미지에 포함하고 실제 시작 시간과 실패 동작을 확인하세요.

예시

AppImage는 curl이 설치되어 있고 8080 포트의 / 경로로 상태 확인에 응답하는 이미지여야 합니다. 예시는 컨테이너 설정의 발췌로, 나머지 작업 속성은 생략했습니다.

변경 전

yaml
Resources:
  TaskDefinition:
    Type: AWS::ECS::TaskDefinition
    Properties:
      ContainerDefinitions:
        - Name: app
          Image: !Ref AppImage
          Essential: true

변경 후

yaml
Resources:
  TaskDefinition:
    Type: AWS::ECS::TaskDefinition
    Properties:
      ContainerDefinitions:
        - Name: app
          Image: !Ref AppImage
          Essential: true
          HealthCheck:
            Command:
              - CMD-SHELL
              - curl -f http://localhost:8080/ || exit 1
            Interval: 30
            Retries: 3
            Timeout: 5

참조