새발블로그
[AWS SAA] 모니터링 / 운영 본문

CloudWatch
핵심 개념
- CloudWatch는 AWS 리소스와 애플리케이션의 메트릭, 로그, 알람을 수집하고 모니터링하는 서비스
- EC2, RDS, Lambda, ELB, DynamoDB 등 다양한 AWS 서비스의 상태를 모니터링할 수 있음
- 리소스 상태 모니터링, 성능 분석, 알람 발송, 로그 분석에 사용
- CloudWatch Alarm을 통해 특정 지표가 임계값을 넘으면 SNS, Auto Scaling, EC2 복구 작업 등과 연동 가능
- CloudWatch Dashboard를 사용하면 여러 리소스의 지표를 한 화면에서 확인 가능
CloudWatch 모니터링 해상도
| 항목 | 내용 |
| 기본 모니터링 | 일반적으로 5분 단위 |
| 상세 모니터링 | 1분 단위 |
| 고해상도 사용자 지정 메트릭 | 1초 단위까지 저장 가능 |
| 1분 해상도 보존 | 15일 |
| 5분 해상도 보존 | 63일 |
| 1시간 해상도 보존 | 455일, 약 15개월 |
- EC2 기본 모니터링은 5분 단위
- EC2 상세 모니터링을 활성화하면 1분 단위로 지표 수집
- 고해상도 사용자 지정 메트릭은 1초 단위까지 저장 가능
- 오래된 메트릭 데이터는 더 낮은 해상도로 보관됨
- CloudWatch 메트릭은 15개월 동안 보관됨
CloudWatch Logs
로그 구조
- CloudWatch Logs의 기본 구조는 로그 이벤트 → 로그 스트림 → 로그 그룹
- 로그 이벤트는 실제 로그 한 줄 또는 하나의 기록
- 로그 스트림은 단일 소스에서 발생한 로그 이벤트의 흐름
- 로그 그룹은 여러 로그 스트림을 묶는 단위
- 로그 그룹 단위로 보관 기간을 설정할 수 있음
- 보관 기간을 별도로 설정하지 않으면 로그가 계속 보관되어 비용이 증가할 수 있음
CloudWatch Logs 활용
- 애플리케이션 로그, Lambda 로그, EC2 로그, VPC Flow Logs 등을 수집 가능
- CloudWatch Logs Insights를 사용하면 로그를 쿼리하고 분석할 수 있음
- CloudWatch Logs 데이터를 OpenSearch Service로 실시간 분석하려면 로그 구독 필터를 구성하여 스트리밍
- CloudWatch Logs를 장기 보관하거나 다른 스토리지 계층에서 분석하려면 S3로 내보내는 구성 고려
- 특정 패턴의 로그를 기준으로 CloudWatch Metric Filter를 만들어 메트릭과 알람을 생성할 수 있음
CloudWatch Alarm
- CloudWatch Alarm은 특정 메트릭이 임계값을 넘거나 조건을 만족할 때 알림 또는 작업을 수행
- SNS와 연동하여 이메일, 문자, HTTPS 엔드포인트 등으로 알림 전송 가능
- Auto Scaling 정책과 연동하여 EC2 인스턴스 수를 조정할 수 있음
- EC2 상태 검사 실패 시 복구 작업과 연결하여 자동 복구 구성 가능
- 여러 CloudWatch 경보 조건을 조합해야 하면 Composite Alarm 사용
- Composite Alarm은 여러 알람의 상태를 조합하여 하나의 알람으로 관리할 때 유용
- 여러 팀원이 리소스 상태를 확인해야 하면 CloudWatch Dashboard와 SNS 알림을 함께 구성할 수 있음
교차 계정 모니터링
- 여러 AWS 계정의 메트릭과 로그를 한 계정에서 관찰해야 하면 CloudWatch 교차 계정 관찰 기능을 사용할 수 있음
- 모니터링 계정과 소스 계정을 구성하여 여러 계정의 데이터를 중앙에서 확인 가능
- 다중 계정 운영 환경에서 운영팀이 중앙 모니터링 계정을 통해 리소스를 관찰할 때 유용
CloudWatch Metric Streams
- CloudWatch Metric Streams는 CloudWatch 지표를 거의 실시간으로 외부 대상으로 전달하는 기능
- Kinesis Data Firehose를 통해 S3, Redshift, OpenSearch Service, 서드파티 모니터링 도구 등으로 전달 가능
- 대규모 지표를 지속적으로 외부 분석 시스템에 전달해야 할 때 사용
S3 사용량 모니터링
- S3 버킷 크기와 객체 수는 CloudWatch의 BucketSizeBytes, NumberOfObjects 지표로 확인 가능
- S3 Inventory를 사용하면 객체 목록과 메타데이터를 정기 보고서로 생성 가능
- S3 Inventory 결과를 Athena로 분석하여 대량 객체 상태를 확인할 수 있음
- CloudWatch는 지표 기반 모니터링, S3 Inventory/Athena는 객체 목록 기반 분석에 적합
CloudTrail
핵심 개념
- CloudTrail은 AWS 계정 내 API 호출 기록을 남기는 서비스
- 누가, 언제, 어디서, 어떤 리소스에 어떤 API를 호출했는지 추적
- 보안 감사, 변경 추적, 사고 분석에 사용
- 콘솔, CLI, SDK, AWS 서비스가 수행한 API 호출을 기록
- CloudTrail Event history에서는 최근 90일의 관리 이벤트를 조회할 수 있음
- 장기 보관과 분석이 필요하면 Trail을 생성하여 S3에 로그를 저장하거나 CloudTrail Lake를 사용
- CloudTrail 로그는 S3에 저장 가능하며 SSE-KMS로 암호화 가능
- CloudTrail 로그를 CloudWatch Logs로 전송하여 알람과 연동할 수 있음
- Athena, S3, CloudTrail Lake 등을 사용하여 CloudTrail 로그를 분석할 수 있음
CloudTrail 이벤트 유형
| 항목 | 내용 |
| Management Event | AWS 리소스에 대한 관리 작업 기록 |
| Data Event | S3 객체 수준 작업, Lambda 함수 호출 같은 데이터 평면 작업 기록 |
| Insight Event | 비정상적인 API 호출 패턴 탐지 |
Management Event
- 제어 평면 작업을 기록
- 예: IAM 정책 생성, S3 버킷 생성, EC2 인스턴스 시작, 서브넷 생성
- 기본적으로 CloudTrail Event history에서 90일간 조회 가능
Data Event
- 데이터 평면 작업을 기록
- 예: S3 객체 다운로드, S3 객체 업로드, Lambda 함수 Invoke
- 기본적으로 모든 데이터 이벤트가 자동 기록되는 것은 아니며, Trail에서 별도 활성화 필요
- S3 객체 수준 접근 감사가 필요하면 S3 Data Event를 활성화해야 함
Read / Write 이벤트
- Read 이벤트는 리소스 상태 조회나 데이터 읽기 작업
- Write 이벤트는 리소스 생성, 수정, 삭제 작업
- 삭제 이벤트를 파악해야 하면 Write 이벤트 기록을 확인
- S3 객체 다운로드 같은 작업은 S3 Data Event이며, 단순 Management Event와 구분해야 함
CloudTrail 지연
- CloudTrail 로그는 보통 수 분 내 전달되지만, 이벤트가 콘솔이나 로그 대상에 나타나는 데 시간이 걸릴 수 있음
- 실시간 차단용 서비스가 아니라 감사와 추적 목적의 로그 서비스로 이해하는 것이 안전
CloudTrail 조직 추적
- 여러 계정의 CloudTrail을 중앙 관리하려면 AWS Organizations 기반 조직 추적을 활성화
- 조직 추적을 사용하면 조직 내 여러 계정의 이벤트를 중앙 S3 버킷으로 수집 가능
- SCP를 사용해 CloudTrail 임의 비활성화를 제한할 수 있음
- IAM 정책 변경 추적이 필요하면 CloudTrail에서 CreatePolicyVersion, SetDefaultPolicyVersion, DeletePolicyVersion 같은 이벤트를 확인
- 글로벌 서비스 이벤트를 포함하면 IAM, STS, CloudFront 같은 글로벌 서비스의 관리 이벤트도 추적 가능
CloudTrail vs CloudWatch vs Config
| 서비스 | 용도 | 핵심 질문 |
| CloudWatch | 메트릭, 로그, 알람 | 리소스 상태가 어떤가? |
| CloudTrail | API 호출 기록 | 누가 무엇을 했는가? |
| AWS Config | 리소스 구성 변경 추적 | 리소스 구성이 어떻게 바뀌었는가? |
- CloudWatch는 성능과 상태 모니터링에 적합
- CloudTrail은 계정 활동과 API 호출 이력 추적에 적합
- AWS Config는 리소스 구성 변경과 규정 준수 평가에 적합
- 네트워크 트래픽 내용 분석은 CloudTrail이 아니라 VPC Flow Logs, Traffic Mirroring 등을 고려
AWS Config
핵심 개념
- AWS Config는 AWS 리소스의 구성 변경 사항을 기록하고 평가하는 서비스
- 리소스가 언제, 어떻게 변경되었는지 추적 가능
- 리소스 규정 준수 상태를 평가할 수 있음
- EBS 볼륨 암호화 여부, S3 퍼블릭 접근 여부, 보안 그룹 규칙, 필수 태그 존재 여부 등을 평가 가능
- Config Rule을 사용하여 리소스가 정책에 맞는지 검사
- 관리형 규칙과 사용자 지정 규칙을 사용할 수 있음
- AWS Config는 리소스 구성 이력을 추적하는 서비스이지, API 호출자를 직접 추적하는 주 목적의 서비스는 아님
- 누가 변경했는지까지 확인하려면 CloudTrail 이벤트와 함께 확인
Config Timeline
- Config Timeline에서 특정 리소스의 구성 변경 이력을 확인할 수 있음
- 특정 시점의 리소스 설정, 관계, 변경 내용을 확인 가능
- 예를 들어 보안 그룹에 언제 어떤 규칙이 추가되었는지 확인할 수 있음
- 해당 변경을 누가 수행했는지는 CloudTrail 관리 이벤트 로그와 함께 확인
Delivery Channel
- Delivery Channel은 AWS Config가 구성 스냅샷과 구성 이력을 전달하는 설정
- S3 버킷을 지정하여 구성 스냅샷과 구성 이력을 저장할 수 있음
- SNS Topic을 지정하여 구성 변경 알림을 받을 수 있음
- Configuration Snapshot 전송 주기를 설정할 수 있음
- Config의 구성 기록은 보존 기간 설정에 따라 관리되며, 보존 기간이 지나기 전 임의로 개별 구성 항목만 삭제하는 용도로 사용하는 것은 아님
Systems Manager
핵심 개념
- Systems Manager는 EC2, 온프레미스 서버, 일부 AWS 리소스를 운영 관리하는 서비스
- 명령 실행, 세션 접속, 패치 관리, 설정 관리, 자동화 작업에 사용
- EC2를 Systems Manager로 관리하려면 SSM Agent와 적절한 IAM 권한이 필요
- EC2 인스턴스가 Systems Manager 엔드포인트와 통신할 수 있는 네트워크 경로가 필요
- 퍼블릭 인터넷 경로가 없으면 Systems Manager 관련 VPC Endpoint를 구성할 수 있음
- 일반적으로 AmazonSSMManagedInstanceCore 정책이 포함된 IAM Role 또는 Default Host Management Configuration을 사용
주요 기능
| 기능 | 설명 |
| Session Manager | SSH/RDP 포트를 직접 열지 않고 EC2에 접속 |
| Run Command | EC2에 즉시 명령 실행 |
| Patch Manager | OS와 소프트웨어 패치 관리 |
| Parameter Store | 설정값과 비밀값 저장 |
| Automation | 반복 운영 작업 자동화 |
| State Manager | 인스턴스 상태를 원하는 구성으로 유지 |
| Inventory | 인스턴스 소프트웨어와 구성 정보 수집 |
Session Manager
- EC2에 SSH 또는 RDP 포트를 직접 열지 않고 접속할 수 있음
- Bastion Host 없이 프라이빗 인스턴스에 접근하는 구성에 유용
- 접근 제어는 IAM 정책으로 관리 가능
- 세션 로그를 CloudWatch Logs 또는 S3에 저장할 수 있음
- 운영 감사와 접근 제어를 강화할 수 있음
Run Command
- EC2에 접속하지 않고 명령을 실행할 수 있음
- 보안 패치 적용, 설정 변경, 로그 수집, 서비스 재시작 등에 사용
- 여러 인스턴스에 동시에 명령을 실행할 수 있음
Patch Manager
- 운영 체제와 애플리케이션 패치 적용을 자동화
- 패치 기준, 승인 규칙, 유지 관리 시간 등을 설정 가능
- 보안 패치 자동화에 유용
Parameter Store
- 애플리케이션 설정값이나 비밀값을 저장하는 기능
- SecureString을 사용하면 KMS로 암호화 가능
- 자동 교체가 중요한 DB 비밀번호는 Secrets Manager를 우선 고려
- Parameter Store는 기본적으로 Secrets Manager 같은 자동 교체 기능을 제공하지 않음
Trusted Advisor
- Trusted Advisor는 AWS 모범 사례 기반 권장 사항을 제공하는 서비스
- 비용 최적화, 성능, 보안, 내결함성, 서비스 한도 영역을 점검
- 사용하지 않는 리소스, 퍼블릭 접근 S3 버킷, 보안 그룹 위험 설정, 서비스 제한 사용률 등을 확인할 수 있음
- 지원 플랜에 따라 접근 가능한 체크 항목 범위가 다름
Trusted Advisor 점검 영역
| 영역 | 예시 |
| 비용 최적화 | 사용률 낮은 EC2, 유휴 로드 밸런서 |
| 성능 | EBS 최적화, 높은 사용률 리소스 |
| 보안 | 퍼블릭 S3 버킷, MFA 미설정 |
| 내결함성 | Multi-AZ 미구성, 백업 미흡 |
| 서비스 한도 | 서비스 할당량 사용률 |
AWS Health Dashboard
- AWS Health Dashboard는 AWS 서비스 상태와 계정별 이벤트를 확인하는 서비스
- 리전별 AWS 서비스 장애, 유지보수, 계정에 영향을 주는 이벤트를 확인 가능
- 일반적인 AWS 서비스 전체 상태는 Service Health Dashboard에서 확인
- 내 계정에 영향을 주는 이벤트는 AWS Health Dashboard에서 확인
- EventBridge와 연동하여 계정별 Health 이벤트에 대한 알림과 자동 대응 구성 가능
Cost Explorer
- Cost Explorer는 AWS 비용과 사용량을 분석하는 서비스
- 서비스별, 계정별, 리전별, 태그별 비용 추이를 확인 가능
- 비용 보고서를 생성하고 다운로드할 수 있음
- 과거 비용 추세를 기반으로 비용 예측을 확인할 수 있음
- Savings Plans, Reserved Instance 사용률과 커버리지 분석에도 사용
AWS Budgets / Cost Anomaly Detection
| 서비스 | 용도 |
| AWS Budgets | 예산 한도 또는 사용량 기준 초과 알림 |
| Cost Anomaly Detection | 비정상적인 지출 패턴 탐지 및 알림 |
AWS Budgets
- 월별 비용, 사용량, RI/SP 사용률 등을 기준으로 예산을 설정
- 예산 임계값을 초과하거나 초과 예상 시 알림 전송
- 정해진 예산 한도 관리에 적합
Cost Anomaly Detection
- 과거 사용 패턴과 비교해 비정상적인 비용 증가를 탐지
- 특정 서비스나 계정에서 갑자기 비용이 증가하는 경우 알림 가능
- 단순 예산 초과 알림보다 이상 지출 패턴 탐지에 초점
VPC Flow Logs
- VPC Flow Logs는 VPC, 서브넷, ENI 수준의 IP 트래픽 메타데이터를 캡처하는 기능
- 소스 IP, 대상 IP, 포트, 프로토콜, 허용/거부 여부 등을 기록
- CloudWatch Logs, S3, Kinesis Data Firehose로 전달 가능
- 네트워크 연결 문제 분석, 보안 감사, 트래픽 흐름 확인에 사용
- 패킷의 실제 내용, 즉 페이로드를 캡처하는 서비스는 아님
- 패킷 내용을 분석해야 하면 Traffic Mirroring을 고려
AWS AppConfig
- AWS AppConfig는 애플리케이션 런타임 구성 값을 안전하게 배포하고 점진적으로 변경하는 서비스
- 기능 플래그, 운영 설정, 제한값 등을 코드 배포 없이 변경할 수 있음
- 배포 전략과 검증을 사용해 잘못된 구성 변경으로 인한 장애를 줄일 수 있음
- 애플리케이션 설정 변경을 안전하게 운영해야 할 때 사용
Amazon QLDB
- QLDB는 변경 불가능하고 암호화 검증 가능한 원장 데이터베이스
- 중앙의 신뢰할 수 있는 거래 기록 원장이 필요한 경우 사용
- CloudTrail이 AWS API 호출 감사 로그라면, QLDB는 애플리케이션의 거래/원장 기록 저장소에 가까움
- 변경 이력을 검증 가능한 형태로 보관해야 하는 금융, 감사, 이력 관리 시나리오에 적합
모니터링 / 운영 서비스 선택 기준 요약
| 요구사항 | 적합한 서비스 |
| 리소스 메트릭, 로그, 알람 | CloudWatch |
| 여러 알람 조건 조합 | CloudWatch Composite Alarm |
| 지표를 외부 분석 대상으로 거의 실시간 전달 | CloudWatch Metric Streams |
| 로그 쿼리와 분석 | CloudWatch Logs Insights |
| API 호출 감사 | CloudTrail |
| 최근 90일 관리 이벤트 조회 | CloudTrail Event history |
| 장기 API 감사 로그 저장 | CloudTrail Trail 또는 CloudTrail Lake |
| 리소스 구성 변경 추적 | AWS Config |
| 구성 규정 준수 평가 | AWS Config Rules |
| EC2 접속, 명령 실행, 패치 관리 | Systems Manager |
| SSH 없이 EC2 접속 | Session Manager |
| 여러 EC2에 명령 실행 | Run Command |
| OS 패치 관리 | Patch Manager |
| 설정값 저장 | Parameter Store |
| AWS 모범 사례 권장 사항 확인 | Trusted Advisor |
| AWS 서비스 장애와 계정별 이벤트 확인 | AWS Health Dashboard |
| 비용과 사용량 분석 | Cost Explorer |
| 예산 초과 알림 | AWS Budgets |
| 이상 비용 패턴 탐지 | Cost Anomaly Detection |
| VPC 트래픽 메타데이터 기록 | VPC Flow Logs |
| 패킷 복제와 상세 분석 | Traffic Mirroring |
| 애플리케이션 구성값 점진 배포 | AWS AppConfig |
| 변경 불가능한 원장 기록 | QLDB |
'자격증 > SAA' 카테고리의 다른 글
| [AWS SAA] 서버리스 (0) | 2026.06.22 |
|---|---|
| [AWS SAA] 애플리케이션 통합 (0) | 2026.06.22 |
| [AWS SAA] 보안 / IAM (0) | 2026.06.22 |
| [AWS SAA] 네트워크 (0) | 2026.06.21 |
| [AWS SAA] 데이터베이스 (0) | 2026.06.21 |