Amazon ECS 서비스

Amazon ECS 서비스

Amazon ECS 서비스를 사용하면 Amazon ECS 클러스터에서 태스크 정의의 인스턴스를 지정된 수만큼 동시에 실행하고 유지할 수 있어요. 태스크 하나가 실패하거나 중지되면 Amazon ECS 서비스 스케줄러가 태스크 정의의 다른 인스턴스를 시작해 이를 대체해요.

출처: 문서

본문

Amazon ECS 서비스를 사용하면 Amazon ECS 클러스터에서 태스크 정의의 인스턴스를 지정된 수만큼 동시에 실행하고 유지할 수 있어요. 태스크 하나가 실패하거나 중지되면 Amazon ECS 서비스 스케줄러가 태스크 정의의 다른 인스턴스를 시작해 이를 대체해요. 이로써 서비스에서 원하는 태스크 수를 유지할 수 있어요.

또한 선택적으로 서비스를 로드 밸런서 뒤에서 실행할 수 있어요. 로드 밸런서는 서비스와 연결된 태스크 전체에 트래픽을 분산해요. 오래 실행되는 무상태(stateless) 서비스와 애플리케이션에는 서비스 스케줄러를 사용할 것을 권장해요. 서비스 스케줄러는 지정한 스케줄링 전략이 준수되도록 보장하고, 태스크가 실패하면 태스크를 다시 스케줄링해요. 예를 들어 기반 인프라가 실패하면 서비스 스케줄러가 태스크를 다시 스케줄링해요.

태스크 배치 전략과 제약 조건을 사용해 스케줄러가 태스크를 배치하고 종료하는 방식을 사용자 지정할 수 있어요. 서비스의 태스크가 중지되면 스케줄러는 이를 대체할 새 태스크를 시작해요. 이 프로세스는 서비스가 사용하는 스케줄링 전략에 따라 원하는 태스크 수에 도달할 때까지 계속돼요.

서비스 스케줄러는 컨테이너 상태 확인 또는 로드 밸런서 대상 그룹 상태 확인이 실패한 후 비정상(healthy하지 않음)으로 판정된 태스크도 대체해요. 이 대체는 서비스 정의 파라미터인 maximumPercent 와 desiredCount 에 따라 달라져요. 태스크가 비정상으로 표시되면 서비스 스케줄러는 먼저 대체 태스크를 시작해요. 그러면 다음이 발생해요.

  • 대체 태스크의 상태가 HEALTHY 이면 서비스 스케줄러는 비정상 태스크를 중지해요.
  • 대체 태스크의 상태가 UNHEALTHY 이면 스케줄러는 비정상 대체 태스크 또는 기존 비정상 태스크 중 하나를 중지해 총 태스크 수가 desiredCount 와 같아지도록 해요.
  • maximumPercent 파라미터가 먼저 대체 태스크를 시작하는 것을 제한하면 스케줄러는 용량을 확보하기 위해 한 번에 하나씩 무작위로 비정상 태스크를 중지한 다음 대체 태스크를 시작해요.

모든 비정상 태스크가 정상 태스크로 대체될 때까지 시작 및 중지 프로세스가 계속돼요. 모든 비정상 태스크가 대체되고 정상 태스크만 실행 중이면, 총 태스크 수가 desiredCount 를 초과하는 경우 총 태스크 수가 desiredCount 와 같아질 때까지 정상 태스크가 무작위로 중지돼요.

더 알아보기 (Learn more)