Application Auto Scaling의 스케일링 문제를 해결하려면 어떻게 해야 합니까?
확장 가능한 대상이 AWS Application Auto Scaling의 동적 스케일링 정책이나 예정된 작업을 따르지 않습니다.
해결 방법
참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생하면 AWS CLI의 오류 해결을 참조하십시오. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.
동적 스케일링 정책을 따르지 않는 리소스 문제 해결
CloudWatch 경보를 올바르게 구성했는지 확인
사용하는 AWS 서비스를 기반으로 올바른 지표에 대한 Amazon CloudWatch 경보를 생성하십시오. 또한 스케일링 정책에 연결된 CloudWatch 경보에 대한 경보 작업을 활성화해야 합니다.
CloudWatch 경보 구성을 확인하려면 다음 describe-alarms AWS CLI 명령을 실행합니다.
aws cloudwatch describe-alarms --alarm-names example-alarm
참고: example-alarm을 해당 경보 이름으로 바꾸십시오.
출력에서 ActionsEnabled가 true인지 확인합니다. 또한 Namespace, MetricName 및 Dimensions 값을 확인하여 올바른 지표에 대한 경보를 구성했는지 확인합니다.
또는 다음 단계를 완료하여 CloudWatch 콘솔에서 CloudWatch 경보 구성을 확인하십시오.
- CloudWatch 콘솔을 엽니다.
- 탐색 창에서 경보를 선택한 다음 모든 알람을 선택합니다.
- Auto Scaling 경보 숨기기가 비활성화되어 있는지 확인합니다.
- 세부 정보에서 경보가 올바른 지표를 사용하는지 확인합니다.
- 작업 탭을 선택한 다음 작업이 비활성화됨 메모를 확인합니다.
경보 작업을 활성화하려면 다음 enable-alarm-actions 명령을 실행합니다.
aws cloudwatch enable-alarm-actions --alarm-names example-alarm
참고: example-alarm을 해당 경보 이름으로 바꾸십시오.
올바른 지표에 대한 경보를 생성하려면 스케일링 정책을 호출하는 경보 생성 또는 대상 추적 스케일링 정책 생성을 참조하십시오. 경보를 생성할 수 있는 예시 지표 목록은 리소스 사용 모니터링을 위한 CloudWatch 지표를 참조하십시오.
대상의 스케일링 활동을 활성화했는지 확인
대상의 스케일링 활동이 중단됨 상태인지 확인합니다. 중단된 경우 재개하십시오.
스케일링 활동을 검토하려면 다음 describe-scaling-activities 명령을 실행합니다.
aws application-autoscaling describe-scaling-activities --include-not-scaled-activities --service-namespace example-service-namespace --scalable-dimension example-scalable-dimension --resource-id example-resource-id
참고: example-service-namespace를 리소스를 제공하는 AWS 서비스의 네임스페이스로, example-scalable-dimension을 확장 가능한 차원으로, example-resource-id를 리소스 ID로 바꾸십시오.
출력에서 NotScaledReasons 값을 확인합니다. AlreadyAtMaxCapacity인 경우 확장 가능한 목표가 이미 최대 용량에 도달한 것입니다. AlreadyAtDesiredCapacity인 경우 CloudWatch 경보를 활성화했더라도 스케일링 정책의 규모가 조정되지 않을 수 있습니다. 자세한 내용은 이유 코드를 참조하십시오.
참고: 스케일링이 동일한 이유 코드로 여러 번 발생하지 않은 경우 이전 NotScaledReasons 값을 확인하십시오. 중복 값은 출력에 표시되지 않습니다.
단계 조정 정책 휴지 기간 또는 대상 추적 조정 정책 휴지 기간 동안 발생하는 활성 스케일링 활동을 확인합니다. Application Auto Scaling은 휴지 기간 동안 스케일 인되지 않습니다. 진행 중이거나 휴지 상태인 스케일링 활동보다 스케일 아웃이 클 경우 Application Auto Scaling은 활동 중에 스케일 아웃합니다.
경쟁하는 스케일링 정책이 없는지 확인
스케일링 정책을 검토하려면 다음 describe-scaling-policies 명령을 실행합니다.
aws application-autoscaling describe-scaling-policies --service-namespace example-service-namespace --scalable-dimension example-scalable-dimension --resource-id example-resource-id
참고: example-service-namespace를 리소스를 제공하는 AWS 서비스의 네임스페이스로, example-scalable-dimension을 확장 가능한 차원으로, example-resource-id를 리소스 ID로 바꾸십시오.
출력에서 정책이 여러 개 있는지 확인합니다. 두 정책이 동시에 활성화되면 Application Auto Scaling은 효과가 더 큰 정책을 사용합니다. 예를 들어 한 정책에서 리소스 2개를 추가하고 다른 정책에서 5개를 추가하는 경우 Application Auto Scaling은 리소스 5개를 추가합니다. describe-scaling-activities 명령을 사용하여 여러 정책을 확인할 수는 없습니다.
대상 추적 조정 정책을 사용하는 경우 DisableScaleIn 파라미터가 False인지 확인하여 스케일 인을 활성화하십시오. 기본적으로 이 파라미터 값은 False입니다.
DisableScaleIn이 True인 경우 스케일링 정책 JSON 파일을 업데이트하여 DisableScaleIn을 False로 설정하십시오. 그리고 다음 put-scaling-policy 명령을 실행하여 변경 사항을 적용합니다.
aws application-autoscaling put-scaling-policy \ --service-namespace example-service-namespace --scalable-dimension example-scalable-dimension --resource-id example-resource-id --policy-name example-name --policy-type TargetTrackingScaling --target-tracking-scaling-policy-configuration file://example.json
참고: example-service-namespace를 리소스를 제공하는 AWS 서비스의 네임스페이스로, example-scalable-dimension을 확장 가능한 차원으로, example-resource-id를 리소스 ID로 바꾸십시오. 또한 example-name을 정책 이름으로 바꾸고 example.json을 스케일링 정책 JSON 파일로 바꾸십시오.
예약된 작업에 응답하지 않는 확장 가능한 대상 문제 해결
예약된 작업의 시간대를 구성했는지 확인하십시오. 기본적으로 예약된 작업은 UTC+0 시간대를 사용합니다. 시간대를 설정한 경우 다음 describe-scheduled-actions 명령을 실행하여 작업이 해당 시간대를 기준으로 실행되는지 확인하십시오.
aws application-autoscaling describe-scheduled-actions \ --service-namespace example-service-namespace --resource-id example-resource-id --scheduled-action-names example-name
참고: example-namespace를 리소스를 제공하는 AWS 서비스의 네임스페이스로, example-resource-id를 리소스 ID로, example-name을 작업 이름으로 바꾸십시오.
또한 위 명령의 출력을 확인하여 StartTime을 지정했는지 확인하십시오. StartTime 값을 지정하면 Application Auto Scaling이 해당 시간에 예약된 작업을 먼저 활성화합니다. Application Auto Scaling은 지정된 시작 시간이 지나면 사용자가 지정한 cron 또는 rate 표현식을 기반으로 예약된 활동을 활성화합니다.
예약된 작업과 충돌하는 스케일링 활동에 대한 확장 가능한 대상의 활동 기록을 검토하려면 다음 describe-scaling-activities 명령을 실행하십시오.
aws application-autoscaling describe-scaling-activities --include-not-scaled-activities --service-namespace example-service-namespace --scalable-dimension example-scalable-dimension --resource-id example-resource-id
참고: example-service-namespace를 리소스를 제공하는 AWS 서비스의 네임스페이스로, example-scalable-dimension을 확장 가능한 차원으로, example-resource-id를 리소스의 식별자로 바꾸십시오.
스케일 아웃 및 스케일 인 작업을 예약하는 경우 스케일 아웃에 대해 한 작업을 예약하고 스케일 인에 대해 다른 작업을 예약했는지 확인하십시오. 동일한 예약 작업을 스케일 인과 스케일 아웃에 사용할 수 없습니다.
관련 정보
- 언어
- 한국어
