AWS 환경에서 인프라 자원의 성능, 상태, 이상 징후를 실시간으로 모니터링하는 것은 안정적인 운영을 위한 필수 요소입니다.
이 글에서는 AWS에서 사용 가능한 대표적인 모니터링 도구(Amazon CloudWatch, CloudTrail, AWS Config, Prometheus + Grafana 등)의 설치 및 설정 방법을 다루며, 모니터링 전략 수립, 자동화 알림 설정, 오픈소스 도구 연동, 그리고 최신 Best Practice까지 포함한 완벽한 리소스 모니터링 가이드를 제공합니다.
📌 목차
- AWS 리소스 모니터링의 필요성
- 기본 제공 도구: Amazon CloudWatch
- 로그 추적 도구: AWS CloudTrail
- 리소스 상태 기록 도구: AWS Config
- 오픈소스 기반: Prometheus + Grafana 설치
- 경고 및 알림 구성
- 모니터링 자동화 전략
- 모니터링 Best Practices
- 자주 묻는 질문 (FAQ)
- 결론 및 추천 리소스
1. AWS 리소스 모니터링의 필요성
- 리소스 상태를 실시간으로 감지하여 장애 예방
- 사용량 급증이나 비용 초과 사전 경고
- 운영 이슈 발생 시 원인 분석(Forensics)
- 보안 및 컴플라이언스 측면에서 이상 탐지 가능
클라우드 인프라는 눈에 보이지 않기 때문에 가시성을 확보하는 것이 곧 안정성 확보입니다.
2. Amazon CloudWatch 설치 및 구성
✅ CloudWatch란?
AWS에서 기본 제공하는 성능 모니터링 및 로깅 서비스로, 다음 기능을 포함합니다:
- 지표(Metrics) 수집 및 대시보드 구성
- 로그(Log) 수집 및 검색
- 알람(Alarm) 생성
- 이벤트(EventBridge) 기반 자동화
✅ 기본 구성 방법
- 콘솔에서 CloudWatch 접속
- ‘대시보드’ 메뉴 → 새 대시보드 생성
- 모니터링할 인스턴스, RDS, Lambda 선택
- 그래프 형태로 시각화
✅ 커스텀 메트릭 전송 예시 (CLI)
aws cloudwatch put-metric-data \
--namespace "MyApp" \
--metric-name "PageLoadTime" \
--value 1.25 \
--dimensions "App=FrontEnd"
3. AWS CloudTrail 로그 활성화
✅ CloudTrail이란?
AWS 계정 내에서 발생하는 API 호출 기록을 추적하는 서비스입니다. 보안 감사와 이상 행위 탐지에 매우 유용합니다.
✅ 설정 방법
- AWS 콘솔 → CloudTrail → Trails
- 새로운 트레일 생성
- 로그 저장용 S3 버킷 선택
- CloudWatch Logs로 연동 시 알림 설정 가능
예: 특정 IAM 사용자가 루트 권한을 사용하는 경우 알림 받기
4. AWS Config – 리소스 변경 이력 추적
✅ AWS Config란?
AWS 리소스의 구성 상태 이력을 저장하고 변경 감지를 제공하는 서비스입니다. 특히 규정 준수 모니터링에 유용합니다.
✅ 사용 방법
- Config 콘솔 접속 → Recorder 설정
- 모니터링 대상 리소스 지정
- S3 버킷 및 SNS 알림 설정
- 규칙 기반 평가(예: 태그 누락 리소스 탐지)
5. Prometheus + Grafana 설치 (EC2 기반)
AWS 기본 도구 외에 오픈소스 기반 고급 모니터링 툴도 많이 사용됩니다.
✅ 설치 순서 요약 (Ubuntu EC2 기준)
1) Prometheus 설치
sudo useradd --no-create-home prometheus
sudo mkdir /etc/prometheus /var/lib/prometheus
# 바이너리 다운로드 및 설정 파일 복사
2) Node Exporter 설치 (서버 리소스 수집)
wget https://github.com/prometheus/node_exporter/releases/...
./node_exporter &
3) Grafana 설치 및 실행
sudo apt install -y software-properties-common
sudo add-apt-repository "deb https://packages.grafana.com/oss/deb stable main"
sudo apt update
sudo apt install grafana
sudo systemctl start grafana-server
4) 대시보드 구성
- Grafana 웹 인터페이스 접속 (http://IP:3000)
- Prometheus 데이터 소스 추가
- CPU, Memory, Disk, Network 등 대시보드 구성
6. 알림 시스템 연동 (CloudWatch + SNS)
✅ CloudWatch Alarm 구성
- 지표 초과 시 자동 경고 발생
- 예: CPU 사용률 > 80% 3분 지속 시 알림
aws cloudwatch put-metric-alarm \
--alarm-name "HighCPUAlarm" \
--metric-name CPUUtilization \
--namespace AWS/EC2 \
--statistic Average \
--period 300 \
--threshold 80 \
--comparison-operator GreaterThanThreshold \
--evaluation-periods 2 \
--alarm-actions arn:aws:sns:...
7. 모니터링 자동화 전략
- CloudFormation 템플릿으로 모니터링 인프라 자동 배포
- AWS Systems Manager + Lambda로 이상 리소스 자동 처리
- EventBridge + SNS를 활용한 운영 자동화
8. 모니터링 Best Practices
항목 | 권장 사항 |
---|---|
지표 선정 | 핵심 지표만 선별하여 과다 알림 방지 |
알림 설정 | 중요 이벤트에만 집중, 실시간 대응 가능하도록 |
보안 로그 모니터링 | CloudTrail, VPC Flow Logs 활용 |
비용 모니터링 | Billing 알림 및 Cost Explorer 연동 |
정기 점검 | 주기적으로 대시보드 검토 및 알림 테스트 수행 |
❓ 자주 묻는 질문 (FAQ)
Q1. CloudWatch는 유료인가요?
CloudWatch 기본 지표는 무료 제공되며, 고해상도 지표, 로그 수집, 알람 수 등은 요금이 발생합니다. 예산 초과 방지를 위해 사용량 모니터링이 필요합니다.
Q2. CloudWatch와 CloudTrail의 차이는?
- CloudWatch: 리소스 성능과 상태 모니터링
- CloudTrail: AWS API 호출 및 사용자 행위 추적
Q3. Prometheus + Grafana는 AWS에서 무료로 사용 가능한가요?
해당 도구는 오픈소스이며 EC2 인스턴스에 설치하면 무료입니다. 다만 EC2, 스토리지 등의 인프라 사용 요금은 발생합니다.
Q4. 알람을 이메일이나 Slack으로 받을 수 있나요?
예, SNS 주제(Topic)를 설정한 후 이메일, Lambda(Slack Webhook 등)로 연동하여 다양한 방식으로 알림을 받을 수 있습니다.
Q5. 모든 AWS 리소스가 CloudWatch에 자동 등록되나요?
기본적으로 EC2, RDS, Lambda 등은 자동 등록되지만, S3나 API Gateway 등은 일부 지표를 별도 활성화해야 할 수 있습니다.
✅ 결론
AWS 인프라를 안정적으로 운영하기 위해서는 단순한 설치를 넘어 통합 모니터링 체계와 자동화 대응 전략이 중요합니다.
CloudWatch, CloudTrail, Config 같은 AWS 기본 도구와 Prometheus, Grafana 같은 오픈소스를 조합해 신뢰할 수 있는 모니터링 체계를 구축하세요.
📌 관련 키워드 (SEO 최적화용)
AWS 모니터링, CloudWatch 설정 방법, CloudTrail 로그 분석, AWS Config 설정, Prometheus 설치 AWS, Grafana 대시보드, EC2 성능 모니터링, 리소스 모니터링 자동화, AWS 모니터링 Best Practice, CloudWatch Alarm 설정, AWS 경고 알림 구성, 오픈소스 모니터링 도구
'전산' 카테고리의 다른 글
# AWS Amazon EC2 완벽 가이드: 클라우드 컴퓨팅의 핵심 (0) | 2025.04.11 |
---|---|
# AWS 백업 및 복구하기 (0) | 2025.04.09 |
# AWS 방화벽 및 보안 그룹 설정하기 (0) | 2025.04.09 |
# Kubernetes에서 로그파일을 주기적으로 삭제하는 방법 (0) | 2025.04.09 |
# Docker에서 로그파일을 주기적으로 삭제하는 방법 (0) | 2025.04.09 |