CloudWatch 경보의 상태가 변경될 때 Amazon EC2 Auto Scaling 정책이 트리거되지 않는 이유는 무엇입니까?

최종 업데이트 날짜: 2020년 12월 17일

Amazon Elastic Compute Cloud(Amazon EC2) Auto Scaling 정책을 트리거하도록 Amazon CloudWatch 경보를 구성했습니다. CloudWatch 경보의 상태가 변경될 때 Amazon EC2 Auto Scaling 정책이 트리거되지 않는 이유는 무엇입니까?

간략한 설명

CloudWatch 경보가 새로운 경보 상태(OK, ALARM 또는 INSUFFICIENT_DATA)로 전환되면 경보는 해당 상태에 대해 구성된 작업을 호출합니다. Amazon EC2 Auto Scaling은 경보에 구성된 기간만 사용하여 상태가 변경되어야 하는지 여부를 결정합니다. Auto Scaling 작업의 경우, 경보는 구성된 기간에 관계없이 해당 경보가 새로운 상태로 유지되는 모든 분 동안 구성된 작업을 지속적으로 호출합니다.

CloudWatch 경보 상태가 변경될 때 Amazon EC2 Auto Scaling 정책이 트리거되지 않는 일반적인 이유에는 다음이 포함됩니다.

  • Auto Scaling 작업이 CloudWatch 경보에 대해 활성화되어 있지 않으므로 조정 정책을 호출할 수 없습니다.
  • Auto Scaling 그룹의 조정 정책이 비활성화되어 있습니다. 비활성화된 정책은 그룹이 평가되지 않도록 합니다.
  • Auto Scaling 그룹에 충돌하는 단순 조정 정책 또는 단계 조정 정책이 있으므로 일부 정책을 트리거할 수 없습니다.
  • Auto Scaling 그룹에 불완전한 수명 주기 후크가 있으므로 모든 단순 조정 정책을 적용할 수 없습니다. 보류 중인 인스턴스는 또한 단계 및 대상 추적 조정 정책에서 지연을 발생시킵니다. 이는 Auto Scaling이 수명 주기 후크가 완료되고 워밍업 시간이 완료될 때까지(확장을 위해) 그룹의 용량에 인스턴스를 계산하지 않기 때문입니다. 과도하게 확장되는 것을 방지하기 위해 인스턴스는 여전히 그룹의 용량(축소를 위해)으로 계산됩니다. 수명 주기 후크는 시간이 초과되거나 CompleteLifecycleAction API 또는 AWS CLI(명령줄 인터페이스) 호출이 수행될 때 완료됩니다.

해결 방법

시작하기 전에 CloudWatch 경보가 ALARM 상태로 전환되고 있는지 확인합니다. 경보 구성이 모니터링 중인 지표의 임계값과 일치하지 않으면 경보가 ALARM 상태로 전환되지 않을 수 있습니다. 경보 상태가 변경되지 않으면 경보가 Amazon EC2 Auto Scaling 정책을 트리거하지 않습니다. CloudWatch 경보를 평가하는 방법에 대한 자세한 내용은 경보 평가를 참조하십시오.

경보의 Threshold(임계값)을 확인하여 예상될 때 CloudWatch 경보가 ALARM 상태로 전환되는지 확인합니다. 예상 값과 일치하도록 Threshold(임계값)을 높이거나 낮춥니다. 또한 경보의 Period(기간) 및 Evaluation Period(평가 기간)를 검토합니다. Amazon EC2 Auto Scaling 정책을 예상대로 트리거하도록 경보 Period(기간)Evaluation Period(평가 기간)를 편집해야 할 수 있습니다. 경보가 작업을 트리거하는지 확인하는 방법에 대한 자세한 내용은 CloudWatch 경보가 작업을 트리거하는지 확인하려면 어떻게 해야 합니까?를 참조하십시오.

중요: 경보를 만들거나 편집할 때는 다음 사항에 유의하십시오.

  • Amazon EC2 Auto Scaling 그룹에 대한 조정 프로세스(AlarmNotification, Launch(시작) 또는 Terminate(종료))를 일시 중지하지 않았는지 확인하십시오. 조정 프로세스를 일시 중지한 경우 이러한 조정 프로세스를 다시 시작해야 합니다.
  • 대상 추적 정책과 연결된 경보는 직접 편집하지 마십시오. 이러한 경보를 편집하면 의도하지 않은 효과가 발생할 수 있습니다. 이러한 경보의 임계값은 조정 정책에 설정된 대상 값에 따라 자동으로 결정됩니다.

Amazon EC2 Auto Scaling 작업이 CloudWatch 경보에 대해 활성화되어 있는지 확인

CloudWatch 경보가 Amazon EC2 Auto Scaling 정책을 호출하려면 경보 구성에서 ActionsEnabled 파라미터를 활성화해야 합니다. 경보 구성에서 ActionsEnabled 파라미터가 True인지 확인합니다.

참고: CloudWatch 콘솔을 사용하여 경보를 생성하고 업데이트하는 경우 ActionsEnabled 파라미터는 기본적으로 True로 설정됩니다.

AWS CLI를 사용하여 경보 작업을 확인하고 활성화하려면:

참고: AWS CLI 명령을 실행할 때 오류가 발생하는 경우, 최신 버전의 AWS CLI를 사용하고 있는지 확인하세요.

1.    다음과 같이 describe-alarms를 사용하여 현재 구성을 확인합니다. myalarm을 경보의 ID로 바꿔야 합니다.

aws cloudwatch describe-alarms --alarm-names "myalarm" --query 'MetricAlarms[].ActionsEnabled'

2.    출력을 검토합니다. ActionsEnabled 파라미터가 true로 설정되지 않은 경우 다음과 같이 enable-alarm-actions를 사용하여 경보 작업을 활성화합니다. myalarm을 경보의 ID로 바꿔야 합니다.

aws cloudwatch enable-alarm-actions --alarm-names myalarm

CloudWatch API를 사용하여 경보 작업을 확인하고 활성화하려면:

1.    DescribeAlarms를 사용하여 현재 구성을 확인합니다.

2.    작업이 경보에 대해 활성화되지 않은 경우 EnableAlarmActions를 사용하여 작업을 활성화합니다.

Amazon EC2 Auto Scaling 그룹에 대한 단순 조정 정책 및 단계 조정 정책 확인

Amazon EC2 콘솔을 사용하여 그룹의 조정 정책을 확인하려면:

1.    Amazon EC2 콘솔에 로그인합니다.

2.    탐색 창의 Auto Scaling에서 Auto Scaling 그룹을 선택합니다.

3.    콘텐츠 창에서 Auto Scaling 그룹을 선택합니다.

4.    Auto Scaling 탭을 선택합니다.

5.    Policy type(정책 유형)(Step scaling(단계 조정), Simple scaling(단순 조정 또는 Target tracking(대상 추적))을 확인합니다.

AWS CLI를 사용하여 조정 정책을 확인하려면 Auto Scaling 그룹의 ID에 대한 describe-policies 명령을 --policy-types 파라미터와 사용합니다. 출력에는 각 유형(SimpleScalingStepScaling 또는 대상 추적)의 정책이 나열됩니다.

API를 사용하여 조정 정책을 확인하려면 DescribePolicies 호출을 PolicyTypes 파라미터와 사용합니다. 출력에는 각 유형(SimpleScalingStepScaling 또는 대상 추적)의 정책이 나열됩니다.

단순 조정 정책 하나가 시행되면 다음 조건을 충족할 때까지 다른 단순 조정 정책이 호출되지 않습니다.

  • 현재 시행 중인 단순 조정 정책이 완료되었습니다.
  • Amazon EC2 Auto Scaling 정책의 휴지 기간이 경과했습니다. 단순 조정 정책은 Amazon EC2 Auto Scaling 정책의 기본 또는 지정된 휴지 기간을 준수합니다.

참고: 단순 조정 정책을 실행한다고 해서 단계 조정 또는 대상 추적 정책의 실행이 완전히 차단되지는 않습니다. 모순되는 정책은 동시에 적용되지 않습니다.

Amazon EC2 Auto Scaling 정책에서 Auto Scaling 수명 주기 후크 확인

Auto Scaling 수명 주기 후크가 시행 중이면 단순 조정 정책이 실행되지 않습니다. Auto Scaling 그룹에서 단순 조정 정책을 사용하는 경우 수명 주기 후크를 중지해야 합니다.

참고: 진행 중인 수명 주기 후크가 있는 경우에도 여전히 단계 조정 정책이 트리거됩니다. 그러나 수명 주기 후크가 끝날 때까지 인스턴스가 워밍업 타이머를 시작하지 않기 때문에 정책은 느리게 조정됩니다.

글로벌 제한 시간 또는 하트비트 제한 시간이 만료된 후 모든 수명 주기 후크가 CONTINUE 또는 ABANDON 결과로 완료되는지 확인합니다.

Amazon EC2 콘솔을 사용하여 수명 주기 작업을 확인하려면:

1.    Amazon EC2 콘솔에 로그인합니다.

2.    탐색 창의 Auto Scaling에서 Auto Scaling 그룹을 선택합니다.

3.    콘텐츠 창에서 Auto Scaling 그룹을 선택합니다.

4.    활동 탭을 선택한 다음 활동 기록 섹션으로 스크롤합니다.

5.    진행 중인 수명 주기 후크 작업에 대한 활동을 검토합니다.

6.    수명 주기 후크를 종료하는 단계는 수명 주기 후크 완료를 참조하십시오. AWS CLI를 사용하여 수명 주기 후크 작업을 완료하려면 complete-lifecycle-action 명령을 사용합니다. API를 사용하여 수명 주기 후크 작업을 완료하려면 CompleteLifecycleAction 호출을 수행합니다.