Health Check Grace Period는 ECS에서 컨테이너가 시작된 직후 일정 시간 동안 Health Check를 면제해주는 유예 기간입니다. 이 설정은 특히 애플리케이션이 초기화하는 데 시간이 걸리는 경우에 유용합니다. 초기화 시간 동안 Health Check에 실패하여 컨테이너가 불필요하게 재시작되는 상황을 방지할 수 있습니다.
AWS CLI를 사용하여 설정할 수도 있습니다. 아래는 예제 명령어입니다.
aws ecs update-service \
--cluster <클러스터 이름> \
--service <서비스 이름> \
--health-check-grace-period-seconds 300
여기서 <클러스터 이름>
과 <서비스 이름>
을 자신의 환경에 맞게 변경하세요.
인프라를 코드로 관리하는 경우, CloudFormation 템플릿에 아래와 같이 설정할 수 있습니다.
Resources:
MyService:
Type: AWS::ECS::Service
Properties:
Cluster: !Ref MyCluster
TaskDefinition: !Ref MyTaskDefinition
HealthCheckGracePeriodSeconds: 300
Auto Scaling 정책을 설정할 때 Health Check Grace Period를 충분히 고려하지 않으면, 스케일 아웃된 인스턴스가 정상적으로 기동되기도 전에 비정상으로 간주될 수 있습니다. 이는 불필요한 리소스 낭비와 서비스 불안정을 초래할 수 있습니다.
Health Check Grace Period 설정 후에도 CloudWatch 로그를 통해 서비스의 상태를 지속적으로 모니터링해야 합니다. 이를 통해 유예 시간이 충분한지, 혹은 과도하게 설정되었는지를 판단할 수 있습니다.