[CloudWatch] Alarm & Events Usecases

2021. 7. 22. 09:26DevOps/AWS

 

UseCase

  1. CloudWatch Alarm을 사용하여 EC2 인스턴스를 자동 복구하려면 어떻게 해야 하는가?
  2. CloudWatch Events를 사용하여 데이터베이스 rollover등의 Cron job을 정기적으로 수행하기 위해서는 어떻게 해야 하는가?

 

CloudWatch Alarm

CloudWatch Alarm은 AWS 리소스에 대한 실시간 모니터링을 제공하고, Alarm 하나당 CloudWatch Metric하나를 모니터링하다가 사용자가 설정한 임계치를 돌파했을 경우 "In Alarm" 상태로 바뀌어 이후 동작을 수행하게 됩니다. SNS Topic을 사용해서 Slack, Email등을 통해 알림을 주기도 하고 기본적으로 제공하는 Action을 통해 인스턴스를 복구하거나, 재시작하는 등의 동작을 수행할 수 있습니다.

 

cloudwatch -> sns topic -> lambda function 을 통해 슬랙과 연동하면 간편한 모니터링을 수행할 수 있습니다.

 

AWS에서는 "인스턴스의 상태 확인 실패" 가 아닌 "시스템 상태 확인 실패" 의 경우에 대해서 Recover Action을 제공합니다. 아래와 같이 CloudWatch Metric을 StatusCheckFailed_System으로 설정하고, 이에 대한 Action을 Recover로 설정하게 되면 시스템이 손상되거나 인스턴스가 시스템의 상태 확인에 실패했을 경우 자동으로 인스턴스를 복구할 수 있습니다. 

 

시스템이 손상되거나, 상태가 확인이 되지 않는 경우는 다음의 경우를 의미합니다 (공식문서 인용)

  • Loss of network connectivity
  • Loss of system power
  • Software issues on the physical host
  • Hardware issues on the physical host that impact network reachability

 

The recover action can be used only with StatusCheckFailed_System, not with StatusCheckFailed_Instance.

 

Recover Action을 지원하는 인스턴스의 종류 및 환경은 다음으로 제한됩니다

  • The A1, C3, C4, C5, C5a, C5n, C6g, Inf1, M3, M4, M5, M5a, M5n, M5zn, M6g, P3, P4, R3, R4, R5, R5a, R5b, R5n, T2, T3, T3a, T4g, X1, and X1e instance types
  • Instances in a VPC
  • Instances with default or dedicated instance tenancy
  • Instances that use Amazon EBS volumes only (do not configure instance store volumes)

 

 

위의 인스턴스 조건을 만족하지 않으면 "Recover This Instance" 조건은 Disable됩니다

 

위와 같이 Alarm을 설정할 경우, StatusCheckFailed_System 이벤트가 트리거될 경우, 해당 인스턴스를 자동으로 복구시킬 수 있습니다.

 

CloudWatch Events

특정 Metric 하나에 대한 모니터링을 수행하고 알람 기능을 수행하는 것과 다르게 CloudWatch Events는 조금 더 폭넓은 기능을 제공합니다. 주목할 만한 기능은 Custom Rule을 생성하여 Cron, Rate등 주기적으로 이벤트를 발생시켜 LambdaFunction 등을 트리거할 수 있다는 점입니다. 특정 리소스의 상태를 모니터링하고 임계치를 넘겼을때만 생성되는 Alarm과는 다르게, 주기적인 Cronjob을 수행할 수 있도록 한다는 것입니다.  CloudWatch > Events > Rules > CreateRule을 통해 Event Source를 Schedule로 설정하고 Event의 Target을 Lambda Function 혹은 SNS Topic등 원하는 Target으로 설정하면, 주기적으로 트리거되어야 하는 작업들을 수행할 수 있습니다.

 

 

References

https://aws.amazon.com/ko/premiumsupport/knowledge-center/automatic-recovery-ec2-cloudwatch/

 

EC2 인스턴스를 자동으로 복구하도록 CloudWatch 경보 설정

인스턴스가 시스템 상태 확인에 실패할 경우, CloudWatch 경보 작업을 사용하여 자동으로 인스턴스를 복구할 수 있습니다. 복구 옵션은 배포된 Amazon EC2 인스턴스 중 90% 이상에 대해 사용할 수 있습

aws.amazon.com

https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/UsingAlarmActions.html

 

Create alarms to stop, terminate, reboot, or recover an EC2 instance - Amazon CloudWatch

Create alarms to stop, terminate, reboot, or recover an EC2 instance Using Amazon CloudWatch alarm actions, you can create alarms that automatically stop, terminate, reboot, or recover your EC2 instances. You can use the stop or terminate actions to help y

docs.aws.amazon.com

 

반응형