Amazon ECS 태스크 수명 주기
Amazon ECS 태스크 수명 주기
태스크는 수동으로 시작되든 서비스의 일부로 시작되든, 스스로 완료되거나 수동으로 중지되기 전에 여러 상태를 거칠 수 있어요. 어떤 태스크는 배치 작업처럼 동작해서 자연스럽게 PENDING → RUNNING → STOPPED 상태로 진행됩니다. 또 다른 태스크(서비스의 일부일 수 있는)는 무기한 계속 실행되거나, 필요에 따라 확장·축소되도록 설계돼요.
출처: 문서
본문
태스크 중지나 서비스의 원하는 개수(desired count) 업데이트 같은 태스크 상태 변경이 요청되면, Amazon ECS 컨테이너 에이전트는 이를 태스크의 마지막 알려진 상태(lastStatus)와 원하는 상태(desiredStatus)로 추적합니다. 태스크의 마지막 알려진 상태와 원하는 상태는 모두 콘솔에서 확인하거나 API 또는 AWS CLI로 태스크를 describe해서 확인할 수 있어요. 아래 순서도는 태스크 수명 주기의 흐름을 보여줍니다.
수명 주기 상태
각 태스크 수명 주기 상태의 설명은 다음과 같아요.
PROVISIONING— Amazon ECS가 태스크를 시작하기 전에 추가 단계를 수행해야 해요. 예를 들어awsvpc네트워크 모드를 사용하는 태스크는 탄력적 네트워크 인터페이스를 프로비저닝해야 합니다.PENDING— Amazon ECS가 컨테이너 에이전트의 추가 조치를 기다리는 전환 상태예요. 태스크는 사용 가능한 리소스가 생길 때까지 pending 상태로 머뭅니다.ACTIVATING— 태스크가 시작된 후RUNNING상태로 전환되기 전에 Amazon ECS가 추가 단계를 수행해야 하는 전환 상태예요. 이 상태에서 Amazon ECS는 컨테이너 이미지를 가져오고, 컨테이너를 만들고, 태스크 네트워킹을 구성하고, 로드 밸런서 대상 그룹을 등록하며, 서비스 검색을 구성합니다.RUNNING— 태스크가 성공적으로 실행 중인 상태예요.DEACTIVATING— 태스크가 중지되기 전에 Amazon ECS가 추가 단계를 수행해야 하는 전환 상태예요. 예를 들어 Elastic Load Balancing 대상 그룹을 사용하도록 구성된 서비스의 일부인 태스크는 이 상태에서 대상 그룹 등록 해제가 발생합니다.STOPPING— Amazon ECS가 컨테이너 에이전트의 추가 조치를 기다리는 전환 상태예요. Linux 컨테이너의 경우 컨테이너 에이전트가 컨테이너 이미지의STOPSIGNAL지시문에 정의된 중지 신호를 보내 애플리케이션이 종료를 마무리하고 종료하도록 알려줘요. 기본값은SIGTERM입니다. 그런 다음 태스크 정의에 설정된StopTimeout시간만큼 기다린 뒤SIGKILL을 보냅니다.DEPROVISIONING— 태스크가 중지된 후STOPPED상태로 전환되기 전에 Amazon ECS가 추가 단계를 수행해야 해요. 예를 들어awsvpc네트워크 모드를 사용하는 태스크는 탄력적 네트워크 인터페이스를 분리하고 삭제해야 합니다.STOPPED— 태스크가 성공적으로 중지된 상태예요. 오류로 태스크가 중지되었다면 Amazon ECS 중지 태스크 오류 보기(Viewing Amazon ECS stopped task errors)를 참고하세요.DELETED— 태스크가 중지될 때 거치는 전환 상태예요. 이 상태는 콘솔에는 표시되지 않지만describe-tasks에는 표시됩니다.