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