

# CloudWatch 경보를 기반으로 미리 정의된 증분을 사용하여 Amazon ECS 서비스 규모 조정
<a name="service-autoscaling-stepscaling"></a>

단계 조정 정책을 사용하여 조정 프로세스를 호출하는 CloudWatch 경보를 생성하고 관리합니다. 경보 위반이 발생하면 해당 경보와 관련된 규모 조정 정책이 Amazon ECS에서 시작됩니다. 단계 규모 조정 정책에서는 단계 조정이라는 조정 세트를 통해 태스크 규모가 조정됩니다. 조정 크기는 경보 위반 규모에 따라 다릅니다.
+ 첫 번째 임계값을 초과한 위반의 경우 Amazon ECS에서는 첫 번째 단계 조정이 적용됩니다.
+ 두 번째 임계값을 초과한 위반의 경우 Amazon ECS에서는 두 번째 단계 조정이 적용되는 식으로 진행됩니다.

목표 추적 조정 정책을 사용하여 목표당 평균 요청 수 또는 평균 CPU 사용률과 같은 지표에 따라 조정하는 것이 좋습니다 용량이 증가할 때 감소하고 용량이 감소할 때 증가하는 지표를 사용하여 비례적으로 스케일 아웃하거나 대상 추적을 사용하여 작업 수를 늘릴 수 있습니다. 이는 애플리케이션에 대한 수요 곡선을 Amazon ECS에서 긴밀하게 따르는 데 도움이 됩니다.

# Amazon ECS 서비스 오토 스케일링에 대한 단계 규모 조정 정책 생성
<a name="step-scaling-create-policy"></a>

서비스에서 원하는 태스크 수가 Amazon ECS에서 자동으로 증가하거나 감소하는 단계 규모 조정 정책을 생성합니다. 단계 규모 조정은 경보 위반의 크기에 따라 달라지는 단계 조정이라는 규모 조정 세트를 기반으로 실행됩니다.

## 콘솔
<a name="step-scaling-create-policy-aws-console"></a>

1. 서비스를 생성 및 업데이트하는 표준 IAM 권한 외에도 추가 권한이 필요합니다. 자세한 내용은 [Amazon ECS 서비스 Auto Scaling에 필요한 IAM 권한](auto-scaling-IAM.md) 섹션을 참조하세요.

1. 정책에 사용되는 지표를 결정합니다. 다음과 같은 지표를 사용할 수 있습니다.
   +  **ECSServiceAverageCPUUtilization** - 서비스에서 사용되는 평균 CPU 사용률입니다.
   + **ECSServiceAverageMemoryUtilization** - 서비스에서 사용되는 평균 메모리 사용률입니다.
   + **ALBRequestCountPerTarget** - 작업에 이상적으로 수신되는 분당 평균 요청 수입니다.

1. 지표에 대한 CloudWatch 경보를 생성합니다. 자세한 내용은 *Amazon CloudWatch 사용 설명서*의 [정적 임계값을 기반으로 CloudWatch 경보 생성](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ConsoleAlarms.html)을 참조하세요.

1. [https://console.aws.amazon.com/ecs/v2](https://console.aws.amazon.com/ecs/v2)에서 콘솔을 엽니다.

1. **클러스터(Clusters)** 페이지에서 클러스터를 선택합니다.

1. 클러스터 세부 정보 페이지의 **서비스** 섹션에서 서비스를 선택합니다.

   서비스 세부 정보 페이지가 나타납니다.

1. **태스크 수 설정**을 선택합니다.

1. **Amazon ECS 서비스 태스크 수**에서 **오토 스케일링 사용**을 선택합니다.

   **태스크 수 섹션**이 나타납니다.

   1. **작업의 최소 개수**에 서비스 Auto Scaling에서 사용할 작업 수의 하한을 입력합니다. 바람직한 수는 이 숫자 이내여야 합니다.

   1. 사용할 서비스 오토 스케일링에 대한 태스크 수의 상한을 **최대**에 입력합니다. 바람직한 수는 이 숫자 이내여야 합니다.

   1. **저장**을 선택합니다.

      정책 페이지가 나타납니다.

1. **규모 조정 정책 생성**을 선택합니다.

   **정책 생성** 페이지가 나타납니다.

1. **규모 조정 정책 유형**에서 **단계 규모 조정**을 선택합니다.

1. 스케일 아웃 속성을 구성합니다. **태스크에 추가되는 단계**에서 다음을 수행합니다.

   1. **정책 이름(Policy name)**에 정책 이름을 입력합니다.

   1. **CloudWatch 경보 이름**에서 CloudWatch 경보를 선택합니다.

   1. **지표 집계 유형**에는 선택한 지표가 정의된 임계값과 비교되는 방식을 선택합니다.

   1. **조정 유형**에는 조정이 태스크 수 변경 또는 작업 백분율 변경에 따라 달라지는지 여부를 선택합니다.

   1. **취할 조치**에는 취할 조치의 값을 입력합니다.

      **단계 추가**를 선택하여 추가 조치를 추가합니다.

1. 스케일 인 속성을 구성합니다. **태스크 제거 단계**에서 다음을 수행합니다.

   1. **정책 이름(Policy name)**에 정책 이름을 입력합니다.

   1. **CloudWatch 경보 이름**에서 CloudWatch 경보를 선택합니다.

   1. **지표 집계 유형**에는 선택한 지표가 정의된 임계값과 비교되는 방식을 선택합니다.

   1. **조정 유형**에는 조정이 태스크 수 변경 또는 작업 백분율 변경에 따라 달라지는지 여부를 선택합니다.

   1. **취할 조치**에는 취할 조치의 값을 입력합니다.

      **단계 추가**를 선택하여 추가 조치를 추가합니다.

1. **휴지 기간**에 이전 조정 활동이 적용될 때까지 대기하는 시간(초)을 입력합니다. 추가 정책의 경우 이 시간은 스케일 아웃 활동 이후 조정 정책이 스케일 인 활동을 차단하고 한 번에 스케일 아웃할 수 있는 작업 수를 제한하는 시간입니다. 제거 정책의 경우 스케일 인 활동 이후 다른 스케일 인 활동을 시작하기 전까지 경과해야 하는 시간입니다.

1. **규모 조정 정책 생성**을 선택합니다.

## AWS CLI
<a name="step-scaling-create-policy-aws-cli"></a>

1. [register-scalable-target](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html) 명령을 사용하여 Amazon ECS 서비스를 조정 가능 대상으로 등록합니다.

1. [put-scaling-policy](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scaling-policy.html) 명령을 사용하여 조정 정책을 생성합니다.