설명
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