AWS Monitoring & Logging
이 문서에서는 AWS 리소스의 상태, 성능, 보안을 감시하고 분석하는 핵심 서비스들을 정리합니다. 모니터링(Monitoring)과 로깅(Logging)은 시스템의 안정성을 유지하고 문제를 신속하게 파악하는 데 필수적입니다.
다음 용어와 개념들에 대해 간략히 알아보겠습니다.
- CloudWatch (지표 및 알람)
- CloudTrail (API 호출 감사)
- EventBridge (서버리스 이벤트 버스)
- Config (리소스 구성 추적)
- X-Ray (분산 추적 및 디버깅)
CloudWatch
AWS 리소스 및 애플리케이션에 대한 모니터링 및 관찰 서비스
- 주요 기능:
- Metrics (지표): EC2 CPU 사용률, 디스크 I/O, 네트워크 트래픽 등 다양한 수치를 수집합니다. (기본 5분, 상세 1분 간격)
- Logs (로그): 애플리케이션 로그, 시스템 로그 등을 중앙에서 수집하고 저장합니다. (보존 기간 설정 가능)
- Alarms (경보): 특정 지표가 임계값을 초과할 때 알림(SNS)을 보내거나 Auto Scaling 작업을 트리거합니다.
- Dashboards: 여러 지표를 한눈에 볼 수 있는 시각화 도구를 제공합니다.
- Agent: EC2 내부의 메모리 사용량이나 디스크 여유 공간 같은 OS 레벨 지표를 수집하려면
CloudWatch Agent를 설치해야 합니다.
CloudTrail
AWS 계정의 거버넌스, 규정 준수, 운영 및 위험 감사를 지원하는 서비스
- 특징: "누가(Who), 언제(When), 어디서(Where), 무엇을(What)" 했는지 기록합니다.
- 용도:
- 보안 분석: 비정상적인 API 호출 패턴 감지.
- 변경 추적: 리소스 생성/삭제/수정 이력 확인.
- 규정 준수 감사: 내부 정책 위반 여부 확인.
- Event History: 지난 90일간의 관리 이벤트(CreateBucket, RunInstances 등)를 무료로 조회할 수 있습니다.
- Logs File Validation: 로그 파일이 무결한지(중간에 수정되지 않았는지) 검증하는 기능 제공.
EventBridge (구 CloudWatch Events)
애플리케이션을 다양한 소스의 데이터와 연결하는 서버리스 이벤트 버스
- 특징: AWS 서비스, 자체 애플리케이션, SaaS 앱에서 발생하는 이벤트를 실시간으로 스트리밍하여 Lambda, SNS, SQS 등 타겟으로 라우팅합니다.
- 주요 기능:
- Rules (규칙): 특정 패턴의 이벤트를 필터링하여 타겟으로 전달.
- Scheduler: 정해진 일정(Cron 표현식)에 따라 이벤트를 트리거 (예: 매일 밤 12시에 Lambda 실행).
- Schema Registry: 이벤트 구조(스키마)를 정의하고 관리.
AWS Config
AWS 리소스 구성을 측정, 감사 및 평가하는 서비스
- 특징: 리소스의 설정(Configuration) 변경 이력을 지속적으로 기록하고, 규정 준수(Compliance) 여부를 평가합니다.
- 용도:
- "S3 버킷이 퍼블릭인지 확인"
- "EC2 보안 그룹에 22번 포트가 열려 있는지 감시"
- 변경 전/후 상태 비교 및 구성 스냅샷 저장.
- Remediation: 규정 위반 리소스 발견 시 자동으로 수정 조치(SSM Document 실행 등) 가능.
X-Ray
개발자가 마이크로서비스 아키텍처와 같은 분산 애플리케이션을 분석하고 디버깅하는 데 도움을 주는 서비스
- 특징: 요청이 애플리케이션을 통과하는 전체 경로를 추적(Tracing)하여 병목 현상이나 오류 원인을 파악합니다.
- Service Map: 서비스 간의 호출 관계와 응답 시간을 시각적으로 보여줍니다.
- Annotations/Metadata: 추적 데이터에 비즈니스 관련 정보를 추가하여 검색 및 필터링 가능.
서비스 비교 (혼동하기 쉬운 포인트)
| 구분 | CloudWatch | CloudTrail | AWS Config |
|---|---|---|---|
| 핵심 질문 | "시스템 성능은 어떤가?" | "누가 호출했는가?" | "설정이 어떻게 변했는가?" |
| 주요 대상 | 성능 지표 (CPU, 메모리, I/O) | API 호출 (User, IP, Time) | 리소스 구성 (SG Rules, Bucket Policy) |
| 알림/대응 | 경보(Alarm) -> Auto Scaling | CloudWatch Logs로 전송 -> 분석 | 규칙 위반 -> 자동 복구(Remediation) |
| 데이터 형태 | 시계열 데이터 (숫자, 그래프) | JSON 로그 파일 (감사 기록) | 리소스 구성 스냅샷 (히스토리) |
데이터 시각화 및 대시보드 비교
AWS에는 데이터를 시각화하는 다양한 도구가 있습니다. 목적에 따라 적절한 서비스를 선택해야 합니다.
| 서비스 | 설명 | 주요 사용 사례 |
|---|---|---|
| Amazon QuickSight | 클라우드 네이티브 BI(Business Intelligence) 서비스. | 비즈니스 데이터 분석, CEO/경영진 보고용 대시보드, ML 기반 인사이트 도출. |
| CloudWatch Dashboard | AWS 리소스 및 사용자 지정 지표 시각화. | 운영자/DevOps 모니터링, 서버 상태, 애플리케이션 성능 실시간 확인. |
| Amazon OpenSearch Service (Kibana) | 로그 및 분석 데이터 검색, 시각화, 분석. | 애플리케이션 로그 분석, 실시간 로그 모니터링, 복잡한 쿼리 검색. |
| Amazon Managed Grafana | 오픈 소스 Grafana의 완전 관리형 서비스. | 멀티 클라우드/하이브리드 환경 모니터링, Prometheus 등 다양한 데이터 소스 통합. |
유즈케이스 시나리오 (Use Case Scenarios)
| 시나리오 / 키워드 | 추천 서비스 (정답) | 설명 |
|---|---|---|
| "CPU 사용률이 80%를 넘으면 알림을 받고 싶다" | CloudWatch Alarm | 성능 지표(Metric)를 감시하고 임계값 도달 시 조치를 취합니다. |
| "누가 보안 그룹을 삭제했는지 알고 싶다" | CloudTrail | API 호출 기록(Identity, Time, Action)을 통해 범인을 찾습니다. |
| "S3 버킷이 퍼블릭으로 설정되지 않도록 강제하고 싶다" | AWS Config | 리소스 구성을 지속적으로 평가하고 위반 시 알림/수정합니다. |
| "분산 시스템에서 특정 요청이 왜 느린지 분석하고 싶다" | X-Ray | 서비스 맵과 트레이싱을 통해 각 구간별 지연 시간을 확인합니다. |
| "매일 밤 12시에 특정 Lambda를 실행해야 한다" | EventBridge Scheduler | Cron 표현식을 사용하여 정해진 시간에 이벤트를 생성합니다. |
| "VPC 내부의 네트워크 트래픽 흐름을 분석하고 싶다" | VPC Flow Logs | ENI(Network Interface)를 오가는 IP 트래픽 정보를 수집합니다. (내용은 안 보임, 헤더 정보만) |
| "경영진을 위한 매출 현황 대시보드를 만들고 싶다" | QuickSight | 비즈니스 데이터를 시각화하고 인사이트를 공유하는 BI 도구입니다. |
| "실시간 로그 데이터를 검색하고 분석하고 싶다" | OpenSearch (Kibana) | 대량의 로그 데이터를 인덱싱하고 빠르게 검색/시각화합니다. |