CloudWatch Alarms
- 지표에서 알림을 트리거할 때 사용
- sampling, %, max, min 등의 다양한 옵션을 추가해 복잡한 경보를 정의할 수 있음
- 경보에는 세 가지 상태가 존재하며
1) OK : 트리거되지 않았음
2) INSUFFICIENT_DATA : 상태를 결정할 데이터가 부족함
3) ALARM : 임계값이 위반되어 알림이 보내지는 상태 - 기간은 경보가 지표를 평가하는 기간을 뜻하며 짧게 설정할 수도 있고 길게 설정할 수도 있음
- 고해상도 사용자 지정 지표를 통해 10초, 30초, 60초의 배수로 설정될 수 있음
CloudWatch Alarm Targets
- 경보의 주 대상인 세 가지
- EC2 인스턴스의 동작들
인스턴스를 멈추거나, 삭제하거나, 재시작하거나, 복구하는 등의 동작을 뜻함 - Auto Scaling 동작들
스케일 아웃과 스케일 인 - SNS 서비스에 알림을 보내는 것
람다 함수로 연결해 람다 함수를 통해 위반된 경보에 우리가 원하는 작업을 수행
EC2 Instance Recovery
- EC2 인스턴스 복구에는 두 가지가 존재하며 두 점검으로 CloudWatch 경보를 만들 수 있음
특정 EC2 인스턴스를 모니터링하다가 경보가 위반됐을 경우 EC2 인스턴스 복구를 실행해
EC2 인스턴스를 다른 호스트로 옮기는 등의 작업을 실행
- EC2 VM 점검을 위한 상태 점검
- 하드웨어 점검을 위한 시스템 상태 점검
- 복구할 때는 동일한 private, public, elastic IP 주소와 동일한 메타데이터, 동일한 인스턴스 배치그룹을 가지게 됨
또한 SNS Topic에 경보를 보내 EC2 인스턴스가 복구되었다는 사실을 인지하게 할 수 있음
CloudWatch Alarms : good to know
- CloudWatch Logs 지표 필터에 기반해 경보를 생성하는 기능이 존재하며
CloudWatch Logs는 경보에 연결된 지표 필터를 가질 수 있음 - 그러므로 특정 단어를 포함한 인스턴스가 지나치게 많이 생기면 알림을 보낼 수 있고 SNS에 메시지를 보낼 수 있음
- 만약 경보 알림을 시험해보고 싶다면 set-alarm-state라는 CLI호출을 사용하며
특정 임계값에 도달하지 않아도 경보를 트리거하고 싶을 때 유용하며
본인의 인프라 내에서 경보가 올바르게 트리거되어 제대로된 결과를 내는지 여부를 알 수 있음
<CloudWatch 경보 실습>
- CloudWatch 경보에서 경보 생성
EC2 인스턴스를 생성한 후 CPU가 100%에 도달하면 인스턴스를 제거하도록 하기 위해 CPUUtilization 지표를 선택
지표를 선택한 후에는 지표를 계산하는 방법으로 평균, 합, 최대 등을 고를 수 있고 경보를 평가하는 기간도 고를 수 있음
이후 임계값의 조건으로 고정 또는 이상 탐지를 고를 수 있고 임계점 초과나 이상 등 경보 조건을 고를 수 있음
예) 고정으로 95%를 초과한 값이 15분(3개 * 지표 간격 5분) 동안 유지되면 장치에 문제가 있다는 것으로 경보 조건을 설정
그리고 이러한 문제가 있을 시에 보낼 알림과 취할 동작을 고를 수 있으며 Auto Scaling, EC2 동작, Systems Manager이 존재
EC2 동작을 고른 후 알람 상태에서는 인스턴스를 제거하도록 하도록 설정한 후 이름을 TerminateEC2OnHighCPU로 설정
- CloudWatch 경보 작동 확인
CLI에서 set-alarm-state라는 API 호출을 사용해 알람 상태에 돌입했을 때 경보가 어떻게 작동하는지 확인
set-alarm-state API 호출을 사용하려면 경보의 이름과 상태값, 상태 원인을 지정해야 함
CLI에서 set-alarm-state를 입력하고 매개변수로 경보 이름, 경보의 상태값, 상태 원인을 입력하면
위에서 생성했던 경보는 ALARM 상태가 되었고 설정 동작은 ALARAM 상태에서 인스턴스를 제거하는 것이었으므로
EC2 인스턴스로 가서 새로고침을 하면 EC2 인스턴스에 걸린 경보가 트리거되어
EC2 인스턴스가 실행이 중단되었고 제거되었음을 볼 수 있음
'Cloud > AWS' 카테고리의 다른 글
[SAA] CloudWatch 이벤트 (0) | 2022.04.18 |
---|---|
[SAA] CloudWatch 경보를 사용한 EC2 인스턴스 복구 (0) | 2022.04.18 |
[SAA] CloudWatch 에이전트 및 CloudWatch Logs 에이전트 (0) | 2022.04.18 |
[SAA] CloudWatch 로그 (0) | 2022.04.18 |
[SAA] CloudWatch 대시보드 (0) | 2022.04.18 |