아마존 CloudWatch
더 많은 작업
- Amazon CloudWatch; CloudWatch; 아마존 클라우드워치
- AWS 리소스와 애플리케이션의 지표·로그·경보를 수집하고 시각화하며, 임계값을 넘으면 자동 조치를 실행하는 AWS의 모니터링 서비스
아마존 CloudWatch는 "지금 시스템이 어떤 상태인가"를 보는 서비스다. EC2의 CPU 사용률, ALB 요청 수, DynamoDB 사용 용량 같은 지표를 AWS 서비스가 자동으로 보내고, 이용자는 애플리케이션 지표와 로그를 추가로 보낸다. 경보는 지표가 임계값을 넘을 때 Auto Scaling 정책 실행, SNS 알림, EC2 재시작 같은 동작을 일으킨다. 반면 "누가 어떤 API를 호출했는가"는 AWS CloudTrail이 기록하므로 둘을 구분해야 한다.
| 항목 | 설명 |
|---|---|
| 지표(metric) | 시간 순서의 데이터 포인트 집합. 네임스페이스, 이름, 차원으로 식별한다. 지표는 생성된 리전에만 존재한다 |
| 네임스페이스 | 지표를 담는 이름 공간. AWS 서비스는 AWS/EC2처럼 AWS/서비스 형식을 쓴다
|
| 차원(dimension) | 지표를 구분하는 이름·값 쌍(예: InstanceId). 지표 하나에 최대 30개 |
| 사용자 지정 지표 | 애플리케이션이 PutMetricData API나 CloudWatch 에이전트로 보내는 지표. 1분보다 짧은 주기의 고해상도 지표도 가능 |
| 경보(alarm) | 지표나 수식이 임계값을 지정한 기간 동안 넘으면 상태가 바뀌고 동작을 실행 |
| 대시보드 | 여러 리전·계정의 지표와 경보를 한 화면에 모은 시각화 |
| CloudWatch Logs | 로그 수집·저장·검색 |
| Synthetics | 일정에 따라 엔드포인트와 API를 호출해 사용자 경험을 미리 점검하는 카나리 스크립트 |
| 구분 | 기본 모니터링 | 세부 모니터링 |
|---|---|---|
| EC2 지표 주기 | 5분(상태 검사 지표는 1분) | 1분 |
| 요금 | 무료 | 인스턴스가 보내는 지표 수에 따라 과금 |
| 쓰는 경우 | 일반 운영 | 빠른 오토 스케일링 반응, 짧은 주기 분석 |
지표 데이터는 주기에 따라 보존 기간이 다르며, 1시간 단위로 집계된 데이터는 15개월(455일)까지 남는다. 1분 미만 주기의 고해상도 데이터는 3시간만 보존된다.
EC2의 기본 지표는 하이퍼바이저에서 보이는 값(CPU, 네트워크, 디스크 I/O, 상태 검사)뿐이다. 메모리 사용률과 디스크(파일 시스템) 사용률은 게스트 OS 안에서만 알 수 있으므로 인스턴스에 CloudWatch 에이전트를 설치해야 수집된다(mem_used_percent, disk_used_percent 등). 에이전트는 로그 파일도 CloudWatch Logs로 보내고, 온프레미스 서버에도 설치할 수 있다. 설정 파일은 Systems Manager Parameter Store에 두고 여러 인스턴스에 배포하는 방식이 흔하다.
- 상태는
OK,ALARM,INSUFFICIENT_DATA세 가지다. - 지표 경보는 지표 하나나 지표 수식을 감시하고 다음 동작을 실행한다.
- 아마존 SNS 주제로 알림(이메일, Lambda, SQS 등으로 전달)
- EC2 Auto Scaling 조정 정책 실행
- Lambda 함수 직접 호출
- EC2 동작: 인스턴스 중지, 종료, 재부팅, 복구
- Systems Manager OpsItem·인시던트 생성
- 복합 경보는 여러 경보 상태를 AND·OR 규칙으로 묶는다. 알림 소음을 줄이는 데 쓰며, SNS 알림은 보낼 수 있지만 EC2 동작이나 Auto Scaling 동작은 실행할 수 없다.
- 경보는 상태가 바뀔 때만 동작을 실행한다. 예외로 Auto Scaling 동작은 경보 상태가 유지되는 동안 1분마다 다시 실행된다.
| 기능 | 설명 |
|---|---|
| 로그 그룹·로그 스트림 | 로그를 담는 단위. 로그 그룹마다 보존 기간과 암호화(KMS)를 설정 |
| 지표 필터 | 로그에서 특정 패턴(예: "ERROR", HTTP 5xx)을 찾아 숫자 지표로 바꾼다. 이 지표에 경보를 걸 수 있다 |
| Logs Insights | 전용 쿼리 언어(Logs Insights QL)나 OpenSearch PPL·SQL로 로그를 대화형으로 검색·집계 |
| 구독 필터 | 로그를 실시간으로 Lambda, Kinesis Data Streams, 아마존 Data Firehose 등에 전달 |
| 내보내기 | 장기 보관이나 분석을 위해 S3로 내보내기 |
- 지표 필터는 Standard 로그 클래스의 로그 그룹에서만 지원된다.
- VPC 흐름 로그, CloudTrail, Lambda, API Gateway 등 많은 서비스가 CloudWatch Logs로 로그를 보낼 수 있다.
AWS X-Ray는 요청 하나가 프런트엔드, 마이크로서비스, 데이터베이스, 외부 API를 거쳐 가는 경로를 분산 추적으로 기록한다. 트레이스 맵으로 서비스 간 호출 관계와 지연, 오류가 어디서 생기는지 보여 준다. 시험 가이드는 "워크로드 가시성(예: AWS X-Ray)"을 직접 언급한다.
- Lambda, API Gateway, Elastic Beanstalk 등은 설정만으로 추적을 켤 수 있다.
- 계측 방법은 AWS Distro for OpenTelemetry(ADOT) 같은 OpenTelemetry 기반 SDK가 권장된다. X-Ray SDK와 데몬은 2026년 2월 25일부터 유지 관리 모드(보안 수정만 제공)에 들어갔다.
- CloudWatch는 "무엇이 나빠졌는가"(지표·경보), X-Ray는 "요청이 어느 구간에서 느려졌는가"(추적)에 답한다.
| 질문 | 서비스 |
|---|---|
| CPU가 80%를 넘으면 인스턴스를 추가하고 싶다 | CloudWatch 경보 + Auto Scaling |
| 애플리케이션 로그에서 오류가 일정 횟수 이상이면 알림 | CloudWatch Logs 지표 필터 + 경보 + SNS |
| 누가 보안 그룹을 수정했는지 알고 싶다 | CloudTrail |
| 리소스 구성이 규정에 맞는지 계속 평가하고 싶다 | AWS Config |
| 마이크로서비스 간 지연 구간을 찾고 싶다 | X-Ray |
- "EC2 메모리·디스크 사용률을 모니터링"이면 CloudWatch 에이전트 설치가 답이다. 기본 지표에는 없다.
- "1분 단위로 더 빨리 확장"이면 세부 모니터링을 켠다.
- "로그에서 특정 오류가 발생하면 알림"은 지표 필터 → 경보 → SNS 순서다.
- "장애 인스턴스를 자동 복구"는 상태 검사 지표에 EC2 복구 동작을 건 CloudWatch 경보다.
- "API 호출 주체 감사"는 CloudWatch가 아니라 CloudTrail이다.
- "분산 애플리케이션의 병목 구간 추적"은 X-Ray다.
- Amazon CloudWatch 개념 – AWS
- Amazon CloudWatch 경보 사용 – AWS
- CloudWatch 에이전트가 수집하는 지표 – AWS
- 필터를 사용하여 로그 이벤트에서 지표 생성 – AWS
- AWS X-Ray란 무엇인가요? – AWS