2015.09.13 21:22
다음과 같이 정기적으로 SNS 알람을 울릴 수 있다.
1. SQS 대기열 만들기
(그 때 메시지 보존 기간을 반복하고 시간 -5 분 이라든지 설정)
2.SQS에 메시지가없는 상태
(ApproximateNumberOfMessagesVisible <= 0)가 일정 시간 (5 분) 계속되면 CloudWatch Alarm에서 SNS Topic에 경고를 보낸다
3. 위 SNS Topic에는 위의 SQS Queue를 Subscribe시켜 놓는다
그러면 메시지가 없다는 경고가 SQS 메시지와 같은 큐에 도착 메시지 보존 기간을 지나면
또 경고 메시지가 도착한다는 루프 상태가된다.
이것을 사용하여 SNS Topic에 Lambda function을 지정 해두면 일정 시간에 1 번 Lambda function이 실행되는 상태가된다
SNS에서 SQS에 대한 경고가 실패할 수 있지만,
예를 들어 1 시간 이상 0이 계속되면 경보가 울리면 같은 설정을 추가하는 것으로,
문제가 발생해도 1 시간에 재시도 하게 된다..
단, SQS의 ApproximateNumberOfMessagesVisible 메트릭 메시지가 담겨에서 숫자가
감지 될 때까지 사이가 있으므로,
메시지 보존 기간은 10 분 미만으로 설정하지 않는 것이 좋다.