CloudWatch
CloudWatch
비유로 쉽게 이해하기
CloudWatch는 **'자동차의 계기판과 블랙박스를 합쳐 놓은 것'**과 같습니다. 계기판처럼 현재 AWS 리소스들의 상태(CPU 사용률, 네트워크 트래픽 등)를 실시간으로 보여주고(모니터링), 특정 수치를 넘으면 경고등(경보)을 켭니다. 또한, 블랙박스처럼 모든 활동 기록(로그)을 저장하고 있어, 문제가 발생했을 때 과거 기록을 돌려보며 원인을 분석할 수 있습니다.
개요
Amazon CloudWatch는 AWS 리소스와 애플리케이션을 위한 모니터링 및 관찰 기능 서비스입니다. 로그, 지표(Metric), 이벤트 형태의 운영 데이터를 수집하고, 이를 시각화, 분석, 경보 설정하는 데 사용됩니다. DevOps 엔지니어, 개발자, SRE(사이트 안정성 엔지니어)에게 필수적인 도구입니다.
상세 설명
CloudWatch는 크게 세 가지 기능으로 나뉩니다. 1. CloudWatch Metrics: EC2의 CPU 사용률, S3의 버킷 크기, DynamoDB의 읽기/쓰기 용량 등 AWS 서비스들의 성능 지표를 시간 순서대로 수집합니다. 사용자는 이 지표들을 그래프로 시각화하고, 특정 임계값을 넘었을 때 알림을 보내는 경보(Alarm)를 설정할 수 있습니다. 예를 들어, 'EC2 인스턴스의 CPU 사용률이 5분 동안 80% 이상 지속되면 이메일로 알림을 보내라'와 같이 설정할 수 있습니다. 2. CloudWatch Logs: 애플리케이션 코드, EC2 인스턴스, Lambda 함수 등에서 발생하는 로그 데이터를 중앙에서 수집, 모니터링, 저장 및 분석합니다. 특정 키워드(예: "ERROR")가 포함된 로그가 발생했을 때 경보를 울리도록 설정할 수도 있습니다. 3. CloudWatch Events (now Amazon EventBridge): AWS 리소스의 상태 변경(예: EC2 인스턴스 시작, S3에 객체 업로드)을 실시간으로 감지하고, 이에 대한 대응 조치(Lambda 함수 호출, SNS 알림 등)를 자동으로 트리거하는 이벤트 기반 서비스입니다.
왜 중요할까요?
- 운영 가시성 확보: 시스템 전반의 성능과 상태를 한눈에 파악하여, 문제가 발생하기 전에 잠재적인 위험을 감지할 수 있습니다.
- 신속한 장애 대응: 경보 기능을 통해 시스템 이상을 실시간으로 통보받고, 로그 분석을 통해 문제의 근본 원인을 빠르게 파악할 수 있습니다.
- 자동화된 운영: 경보 및 이벤트와 Auto Scaling, Lambda 등의 서비스를 연동하여, 문제 발생 시 자동으로 복구 조치를 취하는 등 자동화된 운영 환경을 구축할 수 있습니다.
주요 특징
- 통합 대시보드: 여러 지표와 로그를 하나의 대시보드에서 시각적으로 모니터링할 수 있습니다.
- 실시간 경보: 지표가 특정 임계값을 위반할 때 Amazon SNS를 통해 이메일, SMS 등 다양한 채널로 알림을 보냅니다.
- 중앙 집중식 로그 관리: 다양한 소스에서 발생하는 로그를 한 곳으로 모아 검색, 분석, 보관할 수 있습니다.
- 1초 단위의 세분화된 모니터링: 상세 모니터링 옵션을 통해 EC2 인스턴스 등의 지표를 더 세밀하게 수집할 수 있습니다.
- 이벤트 기반 아키텍처 지원: Amazon EventBridge를 통해 리소스 변경에 따른 자동화된 워크플로우를 생성합니다.
사용 사례
- EC2 인스턴스의 CPU 사용률이 급증할 때 경보를 받고, Auto Scaling을 통해 인스턴스를 자동으로 추가
- 애플리케이션 로그에서 'Fatal Error' 메시지가 감지되면 즉시 개발팀에 슬랙 알림 전송
- 사용자가 S3에 이미지를 업로드하면, 이를 이벤트로 감지하여 Lambda 함수를 실행시켜 썸네일을 생성
- 데이터베이스의 연결 수가 비정상적으로 많아지면 DBA에게 경고 이메일 발송