Amazon CloudWatch
Amazon CloudWatch는 AWS 리소스 및 애플리케이션을 모니터링하고 운영 데이터를 분석하는 완전관리형 서비스이다. 로그 수집, 지표(Metrics) 모니터링, 알람(Alarms) 설정, 이벤트 기반 자동화 등의 기능을 제공하여 AWS 환경의 성능, 가용성, 운영 효율성을 향상시킨다.
CloudWatch 주요 기능
1. 지표(Metrics) 모니터링
AWS 서비스에서 자동으로 생성되는 지표(metrics) 를 실시간으로 모니터링하고 시각화할 수 있다.
- 기본 지표: EC2 CPU 사용량, RDS 연결 수, S3 버킷 요청 수 등
- 사용자 정의 지표: 애플리케이션에서 커스텀 지표(예: 사용자 로그인 수, API 응답 시간 등) 생성 가능
- 대시보드(Dashboards): 여러 지표를 하나의 화면에서 시각적으로 모니터링 가능
GetMetricData API를 사용하면 외부 또는 사용자 지정 도구를 사용하여 CloudWatch 지표를 수집하고 분석할 수 있다.
2. 로그(Log) 관리 (CloudWatch Logs)
애플리케이션과 AWS 서비스에서 발생하는 로그 데이터를 실시간으로 수집 및 분석할 수 있다.
- 로그 그룹 & 로그 스트림: 로그 데이터를 그룹화하여 저장
- 로그 필터링 및 분석: 특정 패턴을 검색하여 이상 징후 탐지 및 로그 분석 가능
- Lambda & S3 연동: 로그를 Amazon S3에 저장하거나, 특정 이벤트 발생 시 AWS Lambda 실행 가능
3. 알람(Alarms) 설정
지표(Metrics) 값이 설정된 임계값을 초과하면 경고(Alert)를 발생시키거나 자동 조치를 수행할 수 있다.
- 예: EC2 인스턴스의 CPU 사용량이 80% 이상이면 SNS를 통해 알림 전송 또는 자동 확장(Auto Scaling) 실행
- 상태(State): OK(정상) / ALARM(임계치 초과) / INSUFFICIENT DATA(데이터 부족)
4. 이벤트 기반 자동화 (CloudWatch Events & EventBridge)
AWS 서비스에서 발생하는 특정 이벤트를 감지하고 자동으로 대응하는 기능
- 예제:
- EC2 인스턴스 종료 이벤트 감지 → SNS로 알림 전송
- 특정 Lambda 함수 호출 → 자동 복구 스크립트 실행
- Amazon S3 객체 업로드 → Lambda 트리거 실행
5. 서비스 연동 및 모니터링
- AWS Lambda: Lambda 실행 지표 모니터링
- ECS & EKS: 컨테이너 기반 애플리케이션의 리소스 사용량 분석
- RDS & DynamoDB: 데이터베이스의 성능 및 운영 상태 감시
- Auto Scaling: 지표 기반으로 자동 확장 실행
Amazon CloudWatch 사용 방법
1. CloudWatch 콘솔에서 지표 확인
- AWS Management Console → CloudWatch → 지표(Metrics) 선택
- 원하는 AWS 리소스(예: EC2, RDS)의 지표를 선택하여 대시보드에서 모니터링
2. CloudWatch Logs 설정 및 로그 수집
- CloudWatch Logs 그룹 생성
- CloudWatch 콘솔 → "로그 그룹" → 새 로그 그룹 생성
- 애플리케이션 로그 전송
- AWS SDK 또는 AWS CLI를 사용하여 애플리케이션 로그를 전송
aws logs put-log-events 명령어로 직접 로그 추가 가능
3. CloudWatch 알람 설정
- CloudWatch 콘솔 → "알람(Alarms)" → "알람 생성"
- 모니터링할 지표 선택 (예: EC2 CPUUtilization)
- 임계값 설정 (예: 80% 초과 시 알람 발생)
- 알람 발생 시 조치 선택 (예: SNS 알림, Auto Scaling, Lambda 트리거)
4. CloudWatch Events를 활용한 자동화
- 이벤트 패턴 생성 (예: EC2 상태 변경 감지)
- 트리거할 서비스 선택 (예: SNS, Lambda, S3, Step Functions 등)
- 자동화 실행 확인
비용 및 최적화
- 기본 모니터링(AWS 리소스 기본 지표): 무료 제공
- 고급 모니터링(1분 단위 사용자 정의 지표, 로그 저장, 이벤트 트리거 등): 사용량 기반 과금
- 비용 절감 방법:
- 필요한 지표만 선택하여 모니터링
- 로그 보존 기간 조정하여 불필요한 데이터 삭제
- AWS Lambda & EventBridge 최적화하여 과도한 실행 방지
Amazon CloudWatch는 AWS 리소스를 실시간으로 모니터링하고, 로그를 분석하며, 자동화된 대응을 제공하는 강력한 도구이다. 운영 비용을 절감하면서도 애플리케이션의 가용성을 유지할 수 있도록 필수적인 서비스이다.