Amazon CloudWatch Synthetics를 사용해 봤습니다.
안녕하세요 클래스메소드 김재욱(Kim Jaewook) 입니다. 이번에는 Amazon CloudWatch Synthetics를 사용해 봤습니다.
Amazon CloudWatch Synthetics?
웹 서비스의 안정적인 운영을 위해서는 단순한 서버 상태 체크뿐 아니라, 실제로 사용자가 웹 페이지에 정상적으로 접근할 수 있는지를 지속적으로 감시하는 것이 매우 중요합니다.
이럴 때 유용하게 활용할 수 있는 서비스가 바로 Amazon CloudWatch Synthetics입니다.
CloudWatch Synthetics는 웹 사이트나 API 엔드포인트에 대해 가용성(Availability)과 지연 시간(Latency)을 지속적으로 모니터링하는 AWS의 관리형 서비스입니다.
쉽게 말해, 웹사이트가 정상적으로 열리는지 HTTP 응답 코드가 올바르게 반환되는지 (200, 4xx, 5xx 등) 요청에 대한 응답이 얼마나 걸리는지 등을 자동으로 체크하여, 사용자가 실제로 서비스를 이용할 때 문제가 없는지를 주기적으로 감시하는 서비스입니다.
즉, 단순한 서버 Alive 체크가 아니라 실제 사용자 입장에서의 웹 서비스 사활 감시(Synthetic Monitoring)를 수행합니다.
AWS 공식 문서에 따르면 다음과 같습니다.
Amazon CloudWatch Synthetics를 사용하여 일정에 따라 실행되는 구성 가능한 스크립트인 canary를 생성하여 엔드포인트 및 API를 모니터링할 수 있습니다. canary는 동일한 경로를 따라 고객과 동일한 작업을 수행하므로 애플리케이션에 고객 트래픽이 없는 경우에도 고객 경험을 지속적으로 확인할 수 있습니다. 카나리를 사용하면 고객보다 먼저 문제를 발견할 수 있습니다.
비용은 월 100회까지는 무료이며, 100회를 초과한 실행에 대해서는 1회당 USD 0.0019 즉, 하루 3~4회 정도의 감시는 사실상 무료로 운영할 수 있습니다.
요금에 대해서는 아래 AWS 공식 문서에서 확인할 수 있습니다.
Amazon CloudWatch Synthetics 생성
Amazon CloudWatch 콘솔 화면에서 Synthetics Canary를 클릭하고 [Canary] 생성을 클릭합니다.

블루프린트를 선택해서 AWS에서 제공하는 템플릿을 이용합니다.

Canary 이름과 감시할 웹 사이트 URL을 입력합니다. 스크립트 편집기는 파이썬을 선택해 줍시다.

실행은 10분마다 한 번씩 실행하도록 하고, 실행 결과에 대해서는 로그에 한 달 동안 보관하도록 합니다.

모니터링을 수행하면서 문제가 발생하면 5분 간격으로 지정한 이메일로 알람이 오도록 설정합니다.

Canary 시작 시 바로 실행되게 설정했기 때문에 Canary가 시작 하고나면 곧장 모니터링에 들어갑니다.

시간이 지나면 문제 없이 통과된 것을 확인할 수 있습니다.

생성한 Canary를 클릭해 보면, 지정한 웹 사이트의 스크린샷과 상세 정보, 로그를 확인할 수 있습니다.

마무리
이렇게 Amazon CloudWatch Synthetics를 활용하면 웹 서비스의 가용성을 실시간으로 모니터링할 수 있습니다.
서버가 정상적으로 동작하고 있더라도 실제 사용자 관점에서는 접근이 불가능한 경우가 있을 수 있습니다. CloudWatch Synthetics는 이러한 문제를 사용자보다 먼저 발견하여, 선제적으로 대응할 수 있도록 도와줍니다.
특히 월 100회까지 무료로 제공되기 때문에, 하루 3~4회 정도의 주기적인 모니터링은 추가 비용 없이 운영할 수 있다는 점이 큰 장점입니다.
안정적인 서비스 운영을 위해 CloudWatch Synthetics를 활용해 보시기 바랍니다.







