Amazon ECS 서비스 오토 스케일링에 대한 예측 규모 조정 정책 생성 - Amazon Elastic Container Service

Amazon ECS 서비스 오토 스케일링에 대한 예측 규모 조정 정책 생성

기록 데이터를 기반으로 서비스가 실행되는 태스크 수가 Amazon ECS에서 증가하거나 감소하는 예측 규모 조정 정책을 생성합니다.

참고

예측이 생성될 수 있으려면 새 서비스에서 최소 24시간의 데이터가 제공되어야 합니다.

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

  2. 정책에 사용되는 지표를 결정합니다. 다음과 같은 지표를 사용할 수 있습니다.

    • ECSServiceAverageCPUUtilization - 서비스에서 사용되는 평균 CPU 사용률입니다.

    • ECSServiceAverageMemoryUtilization - 서비스에서 사용되는 평균 메모리 사용률입니다.

    • ALBRequestCountPerTarget - 작업에 이상적으로 수신되는 분당 평균 요청 수입니다.

    그 대신에 사용자 지정 지표를 사용할 수 있습니다. 다음과 같은 값을 정의해야 합니다.

    • 로드 - 애플리케이션의 전체 로드를 정확하게 나타내는 지표이며, 규모 조정 시 가장 중요한 애플리케이션 측면입니다.

    • 규모 조정 지표 - 애플리케이션에 이상적인 사용률에 대한 최상의 예측기입니다.

  3. https://console.aws.amazon.com/ecs/v2에서 콘솔을 엽니다.

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

  5. 클러스터 세부 정보 페이지의 서비스 단원에서 서비스를 선택합니다.

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

  6. 서비스 오토 스케일링을 선택한 다음 작업 수 설정을 선택합니다.

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

    태스크 수 단원이 나타납니다.

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

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

    3. 저장을 선택합니다.

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

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

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

  9. 규모 조정 정책 유형에는 예측 규모 조정을 선택합니다.

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

  11. 지표 쌍에는 옵션 목록 중에서 지표를 선택합니다.

    Application Load Balancer request count per target(대상당 Application Load Balancer 요청 수)을 선택한 경우, Target group(대상 그룹)에서 대상 그룹을 선택합니다. 대상별 Application Load Balancer 요청 수는 서비스에 Application Load Balancer 대상 그룹을 연결한 경우에만 지원됩니다.

    사용자 지정 지표 쌍를 선택하는 경우 로드 지표규모 조정 지표의 목록에서 개별 지표를 선택합니다.

  12. 목표 사용률에는 Amazon ECS에서 유지 관리되어야 하는 태스크의 백분율에 대한 대상 값을 입력합니다. 서비스 오토 스케일링에서는 평균 사용률이 목표 사용률에 도달하거나 사용자가 지정한 최대 태스크 수에 도달할 때까지 용량이 스케일 아웃됩니다.

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

다음과 같이 AWS CLI를 사용하여 Amazon ECS 서비스에 대한 예측 규모 조정 정책을 구성합니다. user input placeholder를 사용자의 정보로 바꿉니다.

지정 가능한 CloudWatch 지표에 대한 자세한 내용은 Amazon EC2 Auto Scaling API 참조PredictiveScalingMetricSpecification을 참조하세요.

예제 1: 사전 정의된 메모리가 있는 예측 규모 조정 정책입니다.

다음은 사전 정의된 메모리 구성이 있는 예제 정책입니다.

cat policy.json { "MetricSpecifications": [ { "TargetValue": 40, "PredefinedMetricPairSpecification": { "PredefinedMetricType": "ECSServiceMemoryUtilization" } } ], "SchedulingBufferTime": 3600, "MaxCapacityBreachBehavior": "HonorMaxCapacity", "Mode": "ForecastOnly" }

다음 예제에서는 지정된 구성 파일로 put-scaling-policy 명령을 실행하여 정책을 생성하는 것을 보여줍니다.

aws application-autoscaling put-scaling-policy \ --service-namespace ecs \ --region us-east-1 \ --policy-name predictive-scaling-policy-example \ --resource-id service/MyCluster/test \ --policy-type PredictiveScaling \ --scalable-dimension ecs:service:DesiredCount \ --predictive-scaling-policy-configuration file://policy.json

이 명령이 제대로 실행되면 정책의 ARN이 반환됩니다.

{ "PolicyARN": "arn:aws:autoscaling:us-east-1:012345678912:scalingPolicy:d1d72dfe-5fd3-464f-83cf-824f16cb88b7:resource/ecs/service/MyCluster/test:policyName/predictive-scaling-policy-example", "Alarms": [] }

예제 2: 사전 정의된 CPU가 있는 예측 규모 조정 정책입니다.

다음은 사전 정의된 CPU 구성이 있는 예제 정책입니다.

cat policy.json { "MetricSpecifications": [ { "TargetValue": 0.00000004, "PredefinedMetricPairSpecification": { "PredefinedMetricType": "ECSServiceCPUUtilization" } } ], "SchedulingBufferTime": 3600, "MaxCapacityBreachBehavior": "HonorMaxCapacity", "Mode": "ForecastOnly" }

다음 예제에서는 지정된 구성 파일로 put-scaling-policy 명령을 실행하여 정책을 생성하는 것을 보여줍니다.

aws aas put-scaling-policy \ --service-namespace ecs \ --region us-east-1 \ --policy-name predictive-scaling-policy-example \ --resource-id service/MyCluster/test \ --policy-type PredictiveScaling \ --scalable-dimension ecs:service:DesiredCount \ --predictive-scaling-policy-configuration file://policy.json

이 명령이 제대로 실행되면 정책의 ARN이 반환됩니다.

{ "PolicyARN": "arn:aws:autoscaling:us-east-1:012345678912:scalingPolicy:d1d72dfe-5fd3-464f-83cf-824f16cb88b7:resource/ecs/service/MyCluster/test:policyName/predictive-scaling-policy-example", "Alarms": [] }