Amazon ECS 서비스 파라미터의 모범 사례
애플리케이션 다운타임이 발생하지 않도록 배포 프로세스는 다음과 같습니다.
-
기존 컨테이너를 계속 실행하면서 새 애플리케이션 컨테이너를 시작합니다.
-
새 컨테이너가 정상 상태인지 확인합니다.
-
이전 컨테이너를 중지합니다.
배포 구성과 클러스터의 예약되지 않은 여유 공간 크기에 따라 이전 작업을 모두 새 작업으로 교체하려면 이 작업을 여러 번 반복해야 할 수 있습니다.
숫자를 수정하는 데 사용할 수 있는 두 가지 서비스 구성 옵션이 있습니다.
-
minimumHealthyPercent
: 100%(기본값)배포 중 서비스가
RUNNING
상태를 유지해야 하는 작업 수의 하한. 가장 가까운 정수로 반올림된desiredCount
의 비율입니다. 이 파라미터를 통해 추가 클러스터 용량을 사용하지 않고 배포할 수 있습니다. -
maximumPercent
: 200%(기본값)배포 중
RUNNING
또는PENDING
상태를 유지해야 하는 서비스에 대한 작업 수의 상한. 가장 가까운 정수로 반내림된desiredCount
의 비율입니다.
예: 기본 구성 옵션
총 8개의 작업 공간이 있는 클러스터에 6개의 작업이 배포된 다음과 같은 서비스를 고려합니다. 기본 서비스 구성 옵션으로는 배포에서 원하는 6개 작업의 100% 미만으로 내려갈 수 없습니다.
배포 프로세스는 다음과 같습니다.
-
목표는 6개 작업을 대체하는 것입니다.
-
기본 설정에서는 실행 중인 작업이 6개여야 하기 때문에 스케줄러가 2개의 새 작업을 시작합니다.
이제 기존 작업 6개와 새 작업 2개가 있습니다.
-
스케줄러는 기존 작업 중 2개를 중지합니다.
이제 기존 작업 4개와 새 작업 2개가 있습니다.
-
스케줄러는 추가로 2개의 새 작업을 시작합니다.
이제 기존 태스크 4개와 새 태스크 4개가 있습니다.
-
스케줄러는 기존 작업 중 2개를 종료합니다.
이제 기존 작업 2개와 새 작업 4개가 있습니다.
-
스케줄러는 추가로 2개의 새 작업을 시작합니다.
이제 기존 작업 2개와 새 작업 6개가 있습니다.
-
스케줄러가 마지막 2개의 기존 작업을 종료합니다.
이제 6개의 새 작업이 있습니다.
위 예제에서 옵션의 기본값을 사용하는 경우 새 작업이 시작될 때마다 2.5분의 대기 시간이 있습니다. 또한 로드 밸런서는 이전 작업이 중지될 때까지 5분을 기다려야 할 수도 있습니다.
예: minimumHealthyPercent
수정
minimumHealthyPercent
값을 50% 로 설정하여 배포 속도를 높일 수 있습니다.
총 8개의 작업 공간이 있는 클러스터에 6개의 작업이 배포된 다음과 같은 서비스를 고려합니다. 배포 프로세스는 다음과 같습니다.
-
목표는 6개 작업을 대체하는 것입니다.
-
스케줄러는 기존 작업 중 3개를 중지합니다.
minimumHealthyPercent
값을 충족하는 3개의 기존 작업이 아직 실행 중입니다. -
스케줄러는 5개의 새 작업을 시작합니다.
이제 기존 작업 3개와 새 작업 5개가 있습니다.
-
스케줄러는 나머지 3개의 기존 작업을 중지합니다.
이제 5개의 새 작업이 있습니다.
-
스케줄러는 마지막 새 작업을 시작합니다.
이제 6개의 새 작업이 있습니다.
예: 클러스터 여유 공간 수정
추가 작업을 실행할 수 있도록 여유 공간을 더 추가할 수도 있습니다.
총 10개의 작업 공간이 있는 클러스터에 6개의 작업이 배포된 다음과 같은 서비스를 고려합니다. 배포 프로세스는 다음과 같습니다.
-
목표는 기존 작업을 대체하는 것입니다.
-
스케줄러는 기존 작업 중 3개를 중지합니다.
이제 3개의 기존 작업이 있습니다.
-
스케줄러는 6개의 새 작업을 시작합니다.
이제 기존 작업 3개와 새 작업 6개가 있습니다.
-
스케줄러는 기존 작업 3개를 중지합니다.
이제 6개의 새 작업이 있습니다.
권장 사항
작업이 한동안 유휴 상태이고 사용률이 높지 않은 경우 서비스 구성 옵션에 다음 값을 사용합니다.
-
minimumHealthyPercent
: 50% -
maximumPercent
: 200%