Amazon ECS 서비스 배포용 수명 주기 훅
Amazon ECS 서비스 배포용 수명 주기 훅 (Lifecycle hooks)
배포가 시작되면 수명 주기 단계를 거쳐 진행돼요. 각 단계는 IN_PROGRESS 또는 SUCCEEDED 같은 상태에 있을 수 있어요. 배포가 진행되기 전에 특정 단계에서 사용자 지정 로직을 실행하거나 결정 지점을 도입하도록 수명 주기 훅을 구성할 수 있어요. Amazon ECS는 두 가지 유형의 수명 주기 훅을 지원해요.
출처: 문서
본문
Lambda 훅 (Lambda hooks)
Amazon ECS는 배포의 특정 단계에서 Lambda 함수를 호출해요. 함수에는 사용자 지정 로직이 포함되어 있으며, SUCCEEDED, FAILED 또는 IN_PROGRESS 중 하나의 hookStatus를 포함하는 JSON 객체를 반환해 Amazon ECS에 어떻게 진행할지 알려 줘야 해요. 이 훅을 사용해 검증 테스트를 실행하거나, 거버넌스 정책을 적용하거나, 배포가 진행되기 전에 사용자 지정 승인 단계를 구현할 수 있어요. 자세한 내용은 Lambda hooks for Amazon ECS service deployments를 참고하세요.
일시 중지 훅 (Pause hooks)
Amazon ECS는 구성된 수명 주기 단계에서 배포를 일시 중지하고, 계속하거나 롤백하기 위해 ContinueServiceDeployment API를 호출할 때까지 기다려요. 일시 중지된 동안에는 수동 승인, 기존 도구와의 통합 테스트, 운영 준비 상태 확인, CI/CD 파이프라인 단계 같은 사용자 지정 워크플로를 외부에서 실행할 수 있어요. 자세한 내용은 Pause hooks for Amazon ECS service deployments를 참고하세요.
같은 수명 주기 단계에 Lambda 훅과 일시 중지 훅을 모두 구성할 수 있어요. 배포가 다음 단계로 진행되기 전에 두 훅이 모두 완료되어야 해요.
수명 주기 훅 세부 정보 (Lifecycle hook details)
배포 중에 훅이 활성화되어 있으면 DescribeServiceDeployments를 호출해 상태를 볼 수 있어요. 응답에는 활성화된 각 훅에 대해 다음 필드가 있는 lifecycleHookDetails 배열이 포함돼요.
| 필드 | 설명 |
|---|---|
hookId |
이 훅 실행의 고유 식별자. 일시 중지 훅에서 ContinueServiceDeployment를 호출할 때 이 값을 사용해요. |
targetType |
훅 유형: AWS_LAMBDA 또는 PAUSE. |
targetArn |
훅 대상의 ARN. Lambda 훅의 경우 이는 Lambda 함수 ARN이에요. 일시 중지 훅의 경우 이 필드는 설정되지 않아요. |
status |
훅의 현재 상태: AWAITING_ACTION, IN_PROGRESS, SUCCEEDED, FAILED 또는 TIMED_OUT. |
expiresAt |
훅이 만료되는 날짜와 시간. (예: 2026-05-06T12:06:49-07:00) |
timeoutAction |
훅이 시간 초과되었을 때 Amazon ECS가 취하는 조치: ROLLBACK 또는 CONTINUE. |
수명 주기 단계 범주 (Lifecycle stage categories)
수명 주기 단계는 두 가지 범주로 나뉘어요.
- 단일 호출 단계 (Single invocation stages) – Amazon ECS는 서비스 배포 중 이 단계를 한 번만 호출해요:
RECONCILE_SERVICE,PRE_SCALE_UP,POST_SCALE_UP,TEST_TRAFFIC_SHIFT,POST_TEST_TRAFFIC_SHIFT,POST_PRODUCTION_TRAFFIC_SHIFT. - 반복 호출 단계 (Recurring invocation stages) – Amazon ECS는 서비스 배포 중 이 단계를 여러 번 호출할 수 있어요. linear 및 canary 배포의 경우 이 단계는 각 트래픽 이동 단계마다 호출돼요:
PRE_PRODUCTION_TRAFFIC_SHIFT,PRODUCTION_TRAFFIC_SHIFT.
참고: TEST_TRAFFIC_SHIFT 또는 PRODUCTION_TRAFFIC_SHIFT에는 일시 중지 훅을 구성할 수 없어요. 이 단계들은 롤백 중에도 호출되기 때문이에요. 롤백 중에 일시 중지하면 롤백을 완료하기 위해 추가 ContinueServiceDeployment 호출이 필요하게 돼요.
훅 유형별 지원 단계 (Supported stages by hook type)
| 수명 주기 단계 | Lambda 훅 | 일시 중지 훅 |
|---|---|---|
RECONCILE_SERVICE |
예 | 예 |
PRE_SCALE_UP |
예 | 예 |
POST_SCALE_UP |
예 | 예 |
TEST_TRAFFIC_SHIFT |
예 | 아니요 |
POST_TEST_TRAFFIC_SHIFT |
예 | 예 |
PRE_PRODUCTION_TRAFFIC_SHIFT |
예 | 예 |
PRODUCTION_TRAFFIC_SHIFT |
예 | 아니요 |
POST_PRODUCTION_TRAFFIC_SHIFT |
예 | 예 |