Amazon ECS 서비스를 자동으로 확장하세요 - Amazon Elastic Container Service

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon ECS 서비스를 자동으로 확장하세요

Auto Scaling은 Amazon ECS 서비스에서 원하는 작업 수를 자동으로 늘리거나 줄이는 기능입니다. Amazon ECS는 Application Auto Scaling 서비스를 활용하여 이 기능을 제공합니다. 자세한 정보는 Application Auto Scaling 사용 설명서를 참조하세요.

Amazon ECS는 서비스의 평균 CPU 및 메모리 사용량과 함께 CloudWatch 지표를 게시합니다. 자세한 설명은 서비스 사용률 섹션을 참조하세요. 이러한 지표 및 기타 CloudWatch 지표를 사용하여 피크 시간대에 높은 수요를 처리하도록 서비스를 확장 (더 많은 작업 추가) 하고, 사용률이 낮은 기간에는 서비스를 확장 (더 적은 작업 실행) 하여 비용을 절감할 수 있습니다.

Amazon ECS 서비스 Auto Scaling은 다음과 같은 유형의 Auto Scaling을 지원합니다.

고려 사항

조정 정책을 사용하는 경우 다음 고려 사항을 참조하세요.

  • Amazon ECS는 1분 간격으로 메트릭을 에 전송합니다. CloudWatch 클러스터와 서비스가 지표를 보내기 전까지는 지표를 사용할 수 없으며 CloudWatch, 존재하지 않는 지표에 대해서는 CloudWatch 경보를 생성할 수 없습니다.

  • 조정 정책은 휴지 기간을 지원합니다. 이것은 이전의 조정 활동이 적용될 때까지 대기할 시간(초)입니다.

    • 확장 이벤트의 목적은 지속적이지만 과도하지는 않게 확장하는 것입니다. 서비스 Auto Scaling에서 조정 정책을 사용하여 성공적으로 확장하면 휴지 기간이 계산되기 시작합니다. 조정 정책은 더 큰 조정이 시작되거나 휴지 기간이 종료되지 않는 한 원하는 용량을 다시 늘리지 않습니다. 확장 휴지 기간이 진행되는 동안 확장 활동을 시작하여 추가된 용량은 다음 확장 활동에 대해 원하는 용량의 일부로 계산됩니다.

    • 축소 이벤트의 목적은 애플리케이션의 가용성을 보호하기 위해 보수적으로 축소하여 휴지 기간이 만료될 때까지 축소 활동을 차단하는 것입니다. 그러나 축소 휴지 기간 중에 다른 경보가 확장 활동을 시작하면 서비스 Auto Scaling은 대상을 즉시 확장합니다. 이 경우 축소 휴지 기간이 중지되고 완료되지 않습니다.

  • 서비스 스케줄러는 원하는 수를 항상 신뢰하지만 서비스에 활성화된 조정 정책과 경보가 있는 한 서비스 Auto Scaling은 사용자가 수동으로 설정한 원하는 수를 변경할 수 있습니다.

  • 서비스의 원하는 수가 최소 용량 값 미만으로 설정되고 경보가 스케일 아웃 활동을 시작하는 경우 Service Auto Scaling은 원하는 수를 최소 용량 값까지 확장한 다음 경보와 관련된 조정 정책에 따라 필요에 따라 계속 확장합니다. 하지만 원하는 수가 이미 최소 용량 값 미만이기 때문에 축소 활동은 원하는 수를 조정하지 않습니다.

  • 서비스의 원하는 수가 최대 용량 값보다 높게 설정되고 경보가 작업 확장을 시작하는 경우, Service Auto Scaling은 원하는 수를 최대 용량 값으로 확장한 다음 경보와 관련된 조정 정책에 따라 필요에 따라 계속 확장합니다. 하지만 원하는 수가 이미 최대 용량 값을 초과하므로 확장 활동은 원하는 수를 조절하지 않습니다.

  • 조정 활동 중에 서비스 Auto Scaling이 시작점으로 사용하는 값은 원하는 수가 아니라 서비스에서 실제 실행 중인 태스크 수입니다. 이것이 처리 용량입니다. 이로써, 가령 추가 태스크를 배치하기에 충분한 컨테이너 인스턴스 리소스가 없는 경우 등 충족될 수 없는 과도한(불필요한) 조정을 방지합니다. 나중에 컨테이너 인스턴스 용량을 사용할 수 있는 경우 대기 중인 조정 활동이 승계되며 휴지 기간 후에 추가 조정 활동이 계속될 수 있습니다.

  • 수행할 작업이 없을 때 태스크 수를 0으로 조정하려면 최소 용량을 0으로 설정합니다. 대상 추적 조정 정책을 사용하는 경우 실제 용량이 0이고 지표에 워크로드 요구량이 있다고 나타나면 서비스 Auto Scaling이 확장하기 전에 하나의 데이터 포인트가 전송될 때까지 기다립니다. 이 경우 시작 지점으로 가능한 최소량만큼 확장한 다음 실제 실행 중인 작업 수를 기준으로 조정을 재개합니다.

  • Application Auto Scaling은 Amazon ECS 배포가 진행 중인 동안 축소 프로세스를 비활성화합니다. 그러나 배포 중에 일시 중단되지 않는 한 확장 프로세스는 계속 발생합니다. 자세한 설명은 서비스 Auto Scaling 및 배포 섹션을 참조하세요.

  • Amazon ECS 작업을 위한 여러 Application Auto Scaling 옵션이 있습니다. 대상 추적이 가장 사용하기 쉬운 모드입니다. 이 옵션을 사용하는 경우 CPU 평균 사용률과 같은 지표의 목표 값을 설정하기만 하면 됩니다. 그러면 자동 스케일러가 해당 값을 달성하는 데 필요한 작업 수를 자동으로 관리합니다. 단계 조정을 사용하면 조정 지표의 특정 임계값과 임계값을 초과했을 때 추가 또는 제거할 작업 수를 정의하므로 수요 변화에 더 빠르게 대응할 수 있습니다. 더욱이 임계값 경보를 위반하는 시간을 최소화하여 수요 변화에 매우 빠르게 대응할 수 있습니다.

서비스 Auto Scaling 및 배포

Application Auto Scaling은 Amazon ECS 배포가 진행 중인 동안 축소 프로세스를 비활성화합니다. 그러나 배포 중에 일시 중단되지 않는 한 확장 프로세스는 계속 발생합니다. 배포가 진행되는 동안 확장 프로세스를 일시 중단하려면 다음 단계를 수행합니다.

  1. Application Auto Scaling에서 확장 가능한 대상과 연결된 서비스의 리소스 ID를 지정하여 describe-scalable-targets명령을 호출합니다 (예:service/default/sample-webapp). 출력 결과를 기록합니다. 다음 명령을 호출할 때 필요합니다.

  2. register-scalable-target명령을 호출하여 리소스 ID, 네임스페이스, 확장 가능한 차원을 지정합니다. DynamicScalingInSuspendedDynamicScalingOutSuspended 모두에 대해 true를 지정합니다.

  3. 배포가 완료되면 register-scalable-target명령을 호출하여 크기 조정을 재개할 수 있습니다.

자세한 정보는 Application Auto Scaling의 조정 일시 중지 및 재개를 참조하세요.