Amazon ECS Managed Instances에서 실행 중인 Amazon ECS 워크로드 안전하게 중지하기
Amazon ECS Managed Instances에서 실행 중인 Amazon ECS 워크로드 안전하게 중지하기
서비스 확장이나 배포로 인한 scale-in 이벤트가 태스크를 종료하지 못하도록, Amazon ECS 태스크 scale-in 보호(scale-in protection)를 사용할 수 있어요. 일부 애플리케이션은 낮은 사용률 기간이나 서비스 배포 중에 scale-in 이벤트가 미션 크리티컬한 태스크를 종료하지 못하게 보호하는 메커니즘이 필요합니다.
출처: 문서
본문
Amazon ECS 태스크 scale-in 보호를 사용하면 서비스 확장 또는 배포의 scale-in 이벤트로부터 태스크가 종료되는 것을 보호할 수 있습니다. 일부 애플리케이션은 낮은 사용률 기간이나 서비스 배포 중에, scale-in 이벤트가 미션 크리티컬한 태스크를 종료하지 못하게 보호하는 메커니즘이 필요해요. 예를 들어:
- 누적 서비스 사용률이 낮아도 일부 태스크가 몇 시간씩 실행되어야 하는, 비디오 트랜스코딩 작업 같은 큐 처리 비동기 애플리케이션
- 모든 사용자가 로그아웃했어도 게임 서버를 태스크로 계속 실행해 서버 재시작 시 시작 지연을 줄여야 하는 게임 애플리케이션
- 새 코드 버전을 배포할 때, 재처리 비용이 크기 때문에 태스크가 계속 실행되어야 하는 경우
서비스에 속한 태스크가 scale-in 이벤트에서 종료되지 않도록 보호하려면 ProtectionEnabled 속성을 true로 설정하세요. ProtectionEnabled를 true로 설정하면 태스크는 기본적으로 2시간 동안 보호됩니다. ExpiresInMinutes 속성으로 보호 기간을 사용자 지정할 수 있어요. 최소 1분에서 최대 2880분(48시간)까지 보호할 수 있습니다. AWS CLI를 사용한다면 --protection-enabled 옵션을 지정할 수 있습니다.
태스크가 필요한 작업을 마친 후에는 ProtectionEnabled 속성을 false로 설정하여, 이후 scale-in 이벤트에서 태스크가 종료되도록 허용할 수 있습니다. AWS CLI를 사용한다면 --no-protection-enabled 옵션을 지정하세요.
태스크 scale-in 보호 메커니즘
태스크 scale-in 보호는 Amazon ECS 컨테이너 에이전트 엔드포인트나 Amazon ECS API를 사용해 설정하고 조회할 수 있습니다.
Amazon ECS 컨테이너 에이전트 엔드포인트
보호 필요성을 스스로 판단할 수 있는 태스크에는 Amazon ECS 컨테이너 에이전트 엔드포인트 사용을 권장합니다. 큐 기반 또는 작업 처리 워크로드에 이 방식을 사용하세요.
컨테이너가 SQS 메시지 소비 같은 작업 처리를 시작하면, 컨테이너 안에서 태스크 scale-in 보호 엔드포인트 경로인 $ECS_AGENT_URI/task-protection/v1/state로 ProtectionEnabled 속성을 설정할 수 있습니다. 그러면 Amazon ECS는 scale-in 이벤트 중에도 이 태스크를 종료하지 않습니다. 태스크가 작업을 마친 뒤에는 같은 엔드포인트로 ProtectionEnabled 속성을 해제해, 이후 scale-in 이벤트에서 태스크가 종료될 수 있게 만들 수 있어요.
더 알아보기 (Learn more)
- 태스크 scale-in 보호에 대한 자세한 내용은 AWS 공식 문서를 참고해 주세요.