Amazon CloudWatch 경보가 Amazon Elastic Compute Cloud(Amazon EC2) Auto Scaling 정책을 호출하도록 구성되어 있지만 작동하지 않습니다.
간략한 설명
CloudWatch 경보가 새 경보 상태로 전환되면 경보는 해당 경보 상태에 대해 구성된 모든 작업을 호출합니다. Amazon EC2 Auto Scaling은 경보에 구성된 기간을 사용하여 경보 상태를 변경해야 하는지 여부를 결정합니다. 그러나 경보는 구성된 기간에 관계없이 경보가 새 상태로 유지될 때 1분에 한 번씩 오토 스케일링 작업을 호출합니다.
CloudWatch 경보 상태 변경이 Amazon EC2 Auto Scaling 정책을 호출하지 않는 일반적인 이유는 다음과 같습니다.
- CloudWatch 경보에 대해 오토 스케일링 작업이 설정되어 있지 않습니다.
- Amazon EC2 Auto Scaling 그룹의 조정 정책이 설정되지 않았습니다. 이로 인해 Auto Scaling 그룹을 평가할 수 없습니다.
- Auto Scaling 그룹에는 충돌하는 단순 조정 정책 또는 단계 조정 정책이 있습니다. 이로 인해 일부 정책이 시작되지 않습니다.
- Auto Scaling 그룹에 불완전한 수명 주기 후크가 있습니다. 이로 인해 모든 단순 조정 정책이 적용되지 않습니다. 또한 보류 중인 인스턴스로 인해 단계 및 대상 추적 조정 정책이 지연됩니다. 이는 오토 스케일링이 수명 주기 후크 및 워밍업 시간(스케일 아웃의 경우)이 완료될 때까지 인스턴스를 그룹의 용량에 포함시키지 않기 때문입니다. 인스턴스는 과도한 확장을 방지하기 위해 그룹의 용량(스케일 인의 경우)에 포함됩니다.
- 수명 주기 후크는 시간이 초과되거나 CompleteLifecycleAction 작업 또는 AWS Command Line Interface(AWS CLI)를 호출할 때 완료됩니다.
해결 방법
시작하기 전에 CloudWatch 경보가 ALARM 상태인지 확인합니다. 경보의 구성이 모니터링 중인 지표 임계값과 일치하지 않으면 경보가 ALARM 상태로 전환되지 않을 수 있습니다. 경보가 상태를 변경하지 않으면 오토 스케일링 정책을 호출하지 않습니다. CloudWatch 경보 평가 방법에 대한 자세한 내용은 경보 평가를 참조하세요.
경보의 임계값을 확인하여 CloudWatch 경보가 예상할 때 ALARM 상태로 전환되는지 확인합니다. 예상 값과 일치하도록 임계값을 늘리거나 줄입니다. 또한 경보의 기간과 평가 기간을 검토합니다. 예상대로 오토 스케일링 정책을 호출하기 위해 경보의 기간과 평가 기간을 편집해야 할 수 있습니다. 경보 작업 확인에 대한 자세한 내용은 CloudWatch 경보가 작업을 활성화하는지 어떻게 확신할 수 있나요?를 참조하세요.
중요: 경보를 생성하거나 편집할 때 다음 사항에 유의하세요.
- Auto Scaling 그룹에 대한 조정 프로세스를 일시 중지하지 않았는지 확인합니다. 스케일링 프로세스가 일시 중단된 경우 프로세스를 재개합니다.
- 대상 추적 조정 정책과 연결된 경보를 생성, 편집 또는 삭제하지 마세요. 이렇게 자동으로 생성된 알람을 변경하면 의도하지 않은 효과가 발생할 수 있습니다. 이러한 경보의 임계값은 스케일링 정책에 설정된 대상 값에 따라 자동으로 결정됩니다.
CloudWatch 경보에 대해 오토 스케일링 작업이 허용되는지 확인
CloudWatch 경보가 오토 스케일링 정책을 호출하려면 경보 구성에서 ActionsEnabled 파라미터를 켭니다. 경보 구성에서 ActionsEnabled 파라미터가 true로 설정되어 있는지 확인합니다.
참고: CloudWatch 콘솔에서 경보를 생성하거나 업데이트하는 경우 ActionsEnabled 파라미터는 기본적으로 true로 설정됩니다.
AWS CLI를 사용하여 경보 작업을 확인하고 허용하려면 다음 단계를 완료합니다.
-
describe-alarms 명령을 사용하여 구성을 확인합니다.
aws cloudwatch describe-alarms --alarm-names "myalarm" --query 'MetricAlarms[].ActionsEnabled'
참고: myalarm을 경보 ID로 바꿉니다.
-
출력을 검토합니다. ActionsEnabled 파라미터가 true로 설정되지 않은 경우 enable-alarm-actions 명령을 사용하여 경보 작업을 켭니다.
aws cloudwatch enable-alarm-actions --alarm-names myalarm
참고: AWS CLI 명령을 실행할 때 오류가 발생하면, AWS CLI 오류 문제 해결을 참조하세요. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인합니다.
CloudWatch API를 사용하여 경보 작업을 확인하고 켜려면 다음 단계를 완료하세요.
- DescribeAlarms 작업을 호출하여 현재 구성을 확인합니다.
- 경보에 대해 작업이 허용되지 않는 경우 EnableAlarmActions 작업을 호출하여 작업을 켭니다.
Auto Scaling 그룹의 단순 조정 및 단계별 조정 정책을 확인합니다.
Amazon EC2 콘솔에서 그룹의 조정 정책을 확인하려면 다음 단계를 완료하세요.
- Amazon EC2 콘솔을 엽니다.
- 탐색 창에 있는 오토 스케일링에서 Auto Scaling 그룹을 선택합니다.
- 콘텐츠 창에서 Auto Scaling 그룹을 선택합니다.
- 오토 스케일링 탭을 선택한 다음 정책 유형을 기록해 둡니다.
AWS CLI를 사용하여 조정 정책을 확인하려면 --policy-types 파라미터와 함께 describe-policies 명령을 실행합니다. AWS API를 사용하여 조정 정책을 확인하려면 PolicyTypes 파라미터를 사용하여 DescribePolicies 작업을 호출합니다. 출력에는 각 정책 유형이 나열됩니다.
하나의 단순 조정 정책이 적용되고 있는 경우 다음 조건이 충족될 때까지 다른 단순 조정 정책이 호출되지 않습니다.
- 적용 중인 단순 조정 정책이 완료되었습니다.
- 오토 스케일링 정책의 휴지 기간이 경과했습니다. 단순 조정 정책은 오토 스케일링 정책의 기본 또는 지정된 휴지 기간을 따릅니다.
참고: 단순 조정 정책을 실행한다고 해서 단계 조정 또는 대상 추적 조정 정책이 완전히 차단되지는 않습니다. 모순되는 정책이 동시에 적용되지 않도록 해야 합니다.
오토 스케일링 정책에서 오토 스케일링 수명 주기 후크 확인
단순 조정 정책의 조정 활동은 오토 스케일링 수명 주기 후크가 실행 중일 때 일시 중지됩니다. 그러나 수명 주기 후크가 실행 중인 경우 단계 조정 정책은 계속 실행됩니다.
전역 제한 시간 또는 하트비트 제한 시간이 종료된 후 모든 수명 주기 후크가 CONTINUE 또는 ABANDON 결과로 완료되는지 확인합니다.
Amazon EC2 콘솔에서 수명 주기 후크 작업을 확인하려면 다음 단계를 완료합니다.
- Amazon EC2 콘솔을 엽니다.
- 탐색 창에 있는 오토 스케일링에서 Auto Scaling 그룹을 선택합니다.
- 콘텐츠 창에서 Auto Scaling 그룹을 선택합니다.
- 활동 탭을 선택한 다음 활동 기록 섹션으로 스크롤합니다.
- 진행 중인 수명 주기 후크 작업에 대한 활동을 검토합니다.
수명 주기 후크를 완료하는 단계는 수명 주기 작업 완료를 참조하세요.
관련 정보
Amazon EC2 Auto Scaling 그룹의 스케일링 문제를 해결하려면 어떻게 해야 하나요?
Amazon EC2 Auto Scaling 문제 해결