Complete a 3 Question Survey and Earn a re:Post Badge
Help improve AWS Support Official channel in re:Post and share your experience - complete a quick three-question survey to earn a re:Post badge!
Fargate에서 Amazon ECS 서비스 오토 스케일링을 구성하려면 어떻게 해야 하나요?
AWS Fargate에서 Amazon Elastic Container Service(Amazon ECS) 서비스 오토 스케일링을 구성하고 싶습니다.
간략한 설명
작업 수를 늘리거나 줄이려면 Fargate의 Amazon ECS를 Amazon CloudWatch 알림 및 AWS Application Auto Scaling과 통합하세요. 그런 다음 CloudWatch 지표를 사용해 CloudWatch 알림을 구성할 수 있습니다.
CloudWatch 알림에서 오토 스케일링을 시작하면 Application Auto Scaling에 구성된 스케일링 정책에 따라 새로운 수치가 결정됩니다. 그러면 Application Auto Scaling에서 새로운 수치를 사용해 Amazon ECS에 UpdateService API를 호출합니다. Amazon ECS 서비스 스케줄러는 새로운 수치에 맞춰 작업을 시작하거나 종료합니다. 스케일링 활동은 새 수치와 실행 수치가 같아질 때까지 InProgress 상태로 유지됩니다.
해결 방법
참고: AWS Identity and Access Management(IAM) 사용자가 서비스 오토 스케일링 설정에 액세스하려면 동적 스케일링을 지원하는 서비스에 대한 적절한 권한이 있어야 합니다. 자세한 내용은 서비스 오토 스케일링에 필요한 IAM 권한을 참고하세요.
Amazon ECS 콘솔
Fargate에서 Amazon ECS 서비스 오토 스케일링을 구성하려면 Amazon ECS 콘솔을 사용해 서비스 오토 스케일링을 구성하세요. 그 후 서비스에 스케일링 정책을 추가합니다.
서비스 오토 스케일링 구성
Amazon ECS 콘솔의 서비스 오토 스케일링에서 서비스를 생성하거나 업데이트하려면 다음 단계를 따르세요.
- 서비스 오토 스케일링 사용 옵션을 선택합니다.
- 최소 작업 개수에 서비스 오토 스케일링에 사용할 최소 작업 수를 입력합니다.
- 최대 작업 개수에 서비스 오토 스케일링에 사용할 최대 작업 수를 입력합니다.
참고: 서비스의 최소 및 최대 작업 개수는 하드 한도입니다.
서비스에 스케일링 정책 추가
요구 사항에 따라 목표 추적 정책 또는 단계별 스케일링 정책을 선택할 수 있습니다.
- 목표 추적 정책: 목표 추적 스케일링 정책에서 Amazon ECS 콘솔을 사용해 Amazon ECS 서비스의 목표 스케일링 정책을 구성하는 방법에 안내된 단계를 따르세요.
- 단계별 스케일링 정책: 단계별 스케일링 정책에서 Amazon ECS 콘솔을 사용해 Amazon ECS 서비스의 단계별 스케일링 정책을 구성하는 방법에 안내된 단계를 따르세요.
AWS CLI
참고: AWS Command Line Interface(AWS CLI) 명령 실행 시 오류가 발생하는 경우, AWS CLI 오류 문제 해결을 참고하세요. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하세요.
Fargate에서 Amazon ECS 서비스 오토 스케일링을 구성하려면 AWS CLI를 사용해 서비스 오토 스케일링을 구성하세요. 그 후 설정한 값을 기반으로 목표 추적 또는 단계별 스케일링 정책을 생성합니다.
서비스 오토 스케일링 구성
Application Auto Scaling에서 Fargate 서비스를 스케일링 대상으로 등록하려면 다음 명령을 실행하세요.
aws application-autoscaling register-scalable-target \ --service-namespace ecs --scalable-dimension ecs:service:DesiredCount \ --resource-id service/<cluster>/<service-name> \ --min-capacity 1 --max-capacity 10 --region us-east-1
목표 추적 또는 단계별 스케일링 정책 생성
추적 가능한 대상에 목표 추적 또는 단계별 스케일링 정책 생성 다음 예시에서는 Fargate 서비스가 스케일링 대상입니다.
목표 추적 정책:
aws application-autoscaling put-scaling-policy \ --service-namespace ecs --scalable-dimension ecs:service:DesiredCount \ --resource-id service/<cluster>/<service-name> \ --policy-name Test-target-tracking-scaling-policy --policy-type TargetTrackingScaling \ --target-tracking-scaling-policy-configuration '{ "TargetValue": 75.0, "PredefinedMetricSpecification": {"PredefinedMetricType": "ECSServiceAverageCPUUtilization" }, "ScaleOutCooldown": 60,"ScaleInCooldown": 60}'
**참고:**목표 추적 정책을 생성하면 Application Auto Scaling에서 선택한 목표 값을 기반으로 스케일링을 할 CloudWatch 알림을 생성합니다.
단계별 스케일링 정책
-
스케일링 활동에 필요한 단계가 포함된 단계별 스케일링 정책을 만드세요.
aws application-autoscaling put-scaling-policy \ --service-namespace ecs --scalable-dimension ecs:service:DesiredCount \ --resource-id service/<cluster>/<service-name> \ --policy-name Test-Step-scaling-policy-ScaleOut --policy-type StepScaling \ --step-scaling-policy-configuration '{"AdjustmentType": "ExactCapacity","StepAdjustments": [ { "MetricIntervalLowerBound": 20, "ScalingAdjustment": 10}, { "MetricIntervalLowerBound": 0, "MetricIntervalUpperBound": 20,"ScalingAdjustment": 5}],"Cooldown": 60, "MetricAggregationType": "Average"}'
-
내 스케일링 정책을 CloudWatch 알림 활동과 연결하세요.
aws cloudwatch put-metric-alarm \ --alarm-name Test-ScaleOut --metric-name MemoryUtilization \ --namespace AWS/ECS --statistic Average --period 60 --threshold 60 \ --comparison-operator GreaterThanOrEqualToThreshold --evaluation-periods 1 --datapoints-to-alarm 1 \ --dimensions Name=ClusterName,Value=<cluster> Name=ServiceName,Value=<service-name> --unit Percent \ --alarm-actions "arn:aws:autoscaling:us-east-1:xxxxxxx:scalingPolicy:xxxxxx/Test-Step-scaling-policy-ScaleOut"
-
이 단계를 반복하여 활동 스케일링에 2단계 스케일링 정책과 CloudWatch 알림을 생성하세요.
참고: CloudWatch가 스케일 아웃하는 경우 스케일 아웃 활동이 완료될 때까지 CloudWatch의 스케일 인 활동이 모두 차단됩니다. Amazon ECS의 경우 Application Auto Scaling에서 설정한 구성 개수를 충족하지 못하면 InProgress 스케일 아웃 활동 제한 시간이 초과됩니다. 시간이 초과되는 일반적인 원인에는 이미지 또는 네트워킹 문제가 있습니다. 스케일 아웃 휴지 기간 동안 CloudWatch 지표가 스케일 인되기 시작하고 스케일 아웃 활동이 완료되면 스케일 인 활동이 실행됩니다.
관련 정보
관련 콘텐츠
- 질문됨 6달 전lg...