CloudWatch 알람에 관해 얘기해 보겠습니다
아시다시피 알람은 모든 지표에서 알림을
트리거하는 데에 사용됩니다
복잡한 알람을 다양한 옵션으로 정의할 수 있는데
샘플링, 퍼센트, 최대/최소 설정 등을 통해서입니다
경보에는 3개의 상태가 있습니다
OK는 작동이 되지 않았다는 것이고
INSUFFICIENT_DATA는 경보가 상태를 결정할만한
충분한 데이터가 없다는 뜻입니다
ALARM은 임계값이 초과되어 알림이 발송되는
상태를 말합니다
Period(기간)은 경보로 하여금
얼마동안 지표 평가를 할 것인지에 대한 설정이므로
아주 짧거나 아주 길 수도 있으며
이는 고해상도 사용자 지정 지표에도 적용할 수 있습니다
예를 들어 10초,
30초 또는 60초의 배수 등으로요
알람의 주요 타겟은 세 개입니다
첫 번째는 EC2 인스턴스에서의 작업으로
중단, 종료, 재부팅,
인스턴스 복구 등입니다
두 번째는 오토스케일링 작업으로
스케일 아웃이나 스케일 인 같은 것입니다
마지막은 SNS 서비스에
알림을 보내는 것입니다
가령, SNS 서비스에서
이것을 Lambda 함수에 연결해서
초과된 경보를 기반으로
Lambda 함수로 무엇이든 할 수 있습니다
이제 Composite Alarm(복합 경보)에 대해 얘기해보겠습니다
CloudWatch 경보는
단일 지표를 기반으로 하는 반면
다수의 지표 사용을 원할 경우에는
복합 경보를 사용해야 하는데
이는 복합 경보가 여러 다른 경보 상태를 측정하고
해당 경보들은 각기 다른 지표를 의존할 수 있기 때문입니다
복합 경보란 이러한 다른 경보의 통합을
뜻한다고 보시면 됩니다
AND 또는 OR 조건을 사용해
확인하고자 하는 상태에 대한
유연한 적용을 할 수도 있습니다
컴플렉스 복합 경보를 생성함으로
경보 노이즈를 줄이는 것도 무척 도움이 되는데
만약 CPU가 높고 네트워크가 낮을 때만 알면 되는 경우라면
CPU와 네트워크가 둘다 높을 경우에는
알림을 받지 않도록 하는 것 등입니다
예를 들어보겠습니다
EC2 인스턴스가 있고
그 위에 복합 경보를 만들 겁니다
먼저 Alarm-A라는 기본 알람을 만들어
EC2 인스턴스의 CPU를
모니터 하도록 합니다
그리고 EC2 인스턴스의
IOPS를 모니터할 Alarm-B를 생성합니다
복합 경보는 Alarm-A와
Alarm-B의 집합점이 됩니다
우리 스스로 판단해야 하는 부분입니다만
Alarm A와 B의 상태가
둘다 ALARM이라고 한다면
복합 경보 또한 ALARM 상태가 되고
이것이 SNS 알림 등을 트리거할 수 있게 됩니다
보다시피
복합 경보는 꽤 창의적으로 사용할 수 있습니다
EC2 인스턴스 복구에 대해 얘기해보죠
이미 살펴보았습니다만
EC2 VM 체크를 위한 상태 체크와
기저 하드웨어를 체크하는 시스템 상태 체크가 있는데
양쪽 모두에 대해
CloudWatch 경보를 정의하여
특정 EC2 인스턴스를 모니터링할 수 있습니다
경보 위반 상황에서는
EC2 인스턴스의 호스트 위치를 옮긴다던가 하는 식으로
EC2 인스턴스 복구를
시작할 수 있습니다
복구를 하게 되면
동일한 private(사설), public(공용), elastic(탄력적) IP와
동일한 메타데이터와
동일한 placement(배치) 그룹을 얻게 됩니다
EC2 인스턴스가 복구되고 있다는 알림을 받기 위해
여러분의 SNS 주제로 알림을 보낼 수도 있습니다
CloudWatch 경보와 관련해서 알아둘 것들 중 첫번째는
보신 것처럼 CloudWatch 로그 지표 필터를 기반으로
경보를 생성할 수 있다는 것입니다
CloudWatch 로그의 지표 필터는
CloudWatch 경보에 연결되어 있고
특정 단어
예를 들어 error와 같은 단어의 인스턴스가
과하게 들어오는 상황이라고 하면
알림을 통해 Amazon SNS에 메시지를 보낼 수 있습니다
경보 알림을 테스트하고 싶다면
set-alarm-state라는 CLI 호출을 사용하시면 되는데
트리거된 알람이 여러분의 인프라에
올바른 동작으로 이어지는지의 확인을 위해
특정 임계값에 도달하지 않더라도
알람이 울리도록 해주는 이 기능이
유용하게 쓰입니다
경보 관련 내용은 여기까지이고, 즐거우셨길 바라며
다음 강의에서는 연습을 약간 해보도록 하겠습니다