Amazon ECS 서비스 파라미터의 모범 사례 - Amazon Elastic Container Service

Amazon ECS 서비스 파라미터의 모범 사례

애플리케이션 다운타임이 발생하지 않도록 배포 프로세스는 다음과 같습니다.

  1. 기존 컨테이너를 계속 실행하면서 새 애플리케이션 컨테이너를 시작합니다.

  2. 새 컨테이너가 정상 상태인지 확인합니다.

  3. 이전 컨테이너를 중지합니다.

배포 구성과 클러스터의 예약되지 않은 여유 공간 크기에 따라 이전 작업을 모두 새 작업으로 교체하려면 이 작업을 여러 번 반복해야 할 수 있습니다.

숫자를 수정하는 데 사용할 수 있는 두 가지 ECS 서비스 구성 옵션이 있습니다.

  • minimumHealthyPercent: 100%(기본값)

    배포 중 서비스가 RUNNING 상태를 유지해야 하는 작업 수의 하한. 가장 가까운 정수로 반올림된 desiredCount의 비율입니다. 이 파라미터를 통해 추가 클러스터 용량을 사용하지 않고 배포할 수 있습니다.

  • maximumPercent: 200%(기본값)

    배포 중 RUNNING 또는 PENDING 상태를 유지해야 하는 서비스에 대한 작업 수의 상한. 가장 가까운 정수로 반내림된 desiredCount의 비율입니다.

총 8개의 작업 공간이 있는 클러스터에 6개의 황갈색 작업이 배포된 다음 서비스를 고려합니다. 기본 Amazon ECS 서비스 구성 옵션으로는 배포에서 원하는 6개 작업의 100% 미만으로 내려갈 수 없습니다.

8개의 작업 공간이 있는 클러스터에서 6개 작업을 보여주는 다이어그램.

배포 프로세스는 다음과 같습니다.

  1. 목표는 황갈색 작업을 파란색 작업으로 대체하는 것입니다.

  2. 기본 설정에서는 실행 중인 작업이 6개여야 하기 때문에 스케줄러가 2개의 새 파란색 작업을 시작합니다.

  3. 총 6개의 작업(황갈색 4개, 파란색 2개)이 있기 때문에 스케줄러는 황갈색 작업 중 2개를 중지합니다.

  4. 스케줄러는 추가로 2개의 파란색 작업을 시작합니다.

  5. 스케줄러가 2개의 황갈색 작업을 종료합니다.

  6. 스케줄러는 추가로 2개의 파란색 작업을 시작합니다.

  7. 스케줄러가 마지막 2개의 황갈색 작업을 종료합니다.

위 예제에서 옵션의 기본값을 사용하는 경우 새 작업이 시작될 때마다 2.5분의 대기 시간이 있습니다. 또한 로드 밸런서는 이전 작업이 중지될 때까지 5분을 기다려야 할 수도 있습니다.

minimumHealthyPercent 값을 50% 로 설정하여 배포 속도를 높일 수 있습니다.

총 8개의 작업 공간이 있는 클러스터에 6개의 황갈색 작업이 배포된 다음 서비스를 고려합니다.

8개 작업을 위한 공간이 있고 minimumHealthyPercent 값이 50%인 클러스터에서 6개 작업을 보여주는 다이어그램.

배포 프로세스는 다음과 같습니다.

  1. 목표는 황갈색 작업을 파란색 작업으로 대체하는 것입니다.

  2. 스케줄러는 3개의 황갈색 작업을 중지합니다. minimumHealthyPercent 값을 충족하는 3개의 황갈색 작업이 아직 실행 중입니다.

  3. 스케줄러는 5개의 파란색 작업을 시작합니다.

  4. 스케줄러는 나머지 3개의 황갈색 작업을 중지합니다.

  5. 스케줄러는 마지막 파란색 작업을 시작합니다.

추가 작업을 실행할 수 있도록 여유 공간을 더 추가할 수도 있습니다.

8개의 작업 공간이 있는 클러스터에서 6개 작업을 보여주는 다이어그램.

배포 프로세스는 다음과 같습니다.

  1. 목표는 황갈색 작업을 파란색 작업으로 대체하는 것입니다.

  2. 스케줄러는 황갈색 작업 중 3개를 중지합니다.

  3. 스케줄러는 6개의 파란색 작업을 시작합니다.

  4. 스케줄러는 3개의 황갈색 작업을 중지합니다.

작업이 한동안 유휴 상태이고 사용률이 높지 않은 경우 Amazon ECS 서비스 구성 옵션에 다음 값을 사용합니다.

  • minimumHealthyPercent: 50%

  • maximumPercent: 200%