ECS 서비스 배포 가용성 설정 점검

ECS 배포 중 필요한 정상 태스크 수와 실행 여유 용량을 함께 확인하세요.

설명

ECS 서비스는 새 버전 배포나 교체 중에도 필요한 수의 정상 태스크를 유지해야 서비스 중단을 줄일 수 있습니다. 배포 설정, 헬스 체크와 실행 용량이 맞지 않으면 태스크가 부족해지거나 배포가 진행되지 않을 수 있습니다. deployment_configuration을 생략해도 서비스 기본값이 적용되므로 생략 자체가 실행 태스크 부재를 뜻하지는 않습니다.

잠재적 영향

  • 배포 중 처리 용량이 줄거나 서비스가 일시적으로 중단될 수 있습니다.
  • 새 태스크를 배치할 여유가 없으면 배포나 장애 복구가 지연될 수 있습니다.

해결 방법

  • 서비스의 배포 방식에 맞게 desired_count, minimum_healthy_percent, maximum_percent를 검토하세요. 비율을 실제 태스크 수로 환산해 충분한 정상 태스크와 교체 여유를 확보하세요.
  • 배치 제약, 클러스터 용량과 헬스 체크를 함께 검토하고 운영 조건에서 배포를 시험하세요.

예시

EC2 기반 복제 서비스의 롤링 배포를 가정합니다. 클러스터와 태스크 정의 및 배치 제약을 만족하는 인스턴스가 필요합니다.

변경 전

yaml
- name: ECS 서비스 생성
  community.aws.ecs_service:
    state: present
    name: test-service
    cluster: test-cluster
    task_definition: test-task-definition
    desired_count: 3
    placement_constraints:
      - type: memberOf
        expression: "attribute:flavor==test"
    placement_strategy:
      - type: binpack
        field: memory

태스크 수는 3으로 요청하며 배포 비율은 명시하지 않습니다. 실제 기본값과 사용 가능한 용량을 확인하세요.

변경 후

yaml
- name: ECS 서비스 생성
  community.aws.ecs_service:
    state: present
    name: test-service
    cluster: test-cluster
    task_definition: test-task-definition
    desired_count: 3
    deployment_configuration:
      minimum_healthy_percent: 75
      maximum_percent: 150
    placement_constraints:
      - type: memberOf
        expression: "attribute:flavor==test"
    placement_strategy:
      - type: binpack
        field: memory

태스크 3개에 대해 최소 비율 75%는 올림하여 3개, 최대 비율 150%는 내림하여 4개입니다. 새 태스크 하나를 추가할 용량이 있어야 이 배포 설정을 활용할 수 있습니다.

참조