CloudWatch는 AWS 인프라의 건강 상태를 실시간으로 감시하는 서비스입니다.
비유를 들어 설명하면, 여러분이 대형 병원의 의사라고 상상해 보세요. 환자의 혈압, 체온, 산소 포화도를 실시간으로 모니터에서 확인하고, 혈압이 너무 올라가면 경보가 울리며, 여러 환자의 상태를 한 화면에서 비교할 수 있습니다. CloudWatch가 바로 AWS 서버들의 이런 모니터링 시스템입니다. CPU 사용률, 네트워크 트래픽, 디스크 읽기/쓰기를 실시간으로 추적하고, 이상이 생기면 자동으로 알려줍니다.
CloudWatch 지표(Metrics)란 무엇인가요?
지표는 "숫자로 표현된 시스템 상태"입니다. 예를 들어 "현재 CPU 사용률은 73%", "지난 1분간 네트워크로 받은 데이터는 500MB"처럼 특정 시점의 측정값입니다.
지표는 크게 두 종류로 나뉩니다.
표준 지표 vs 사용자 지정 지표
| 구분 | 표준 지표 | 사용자 지정 지표 | |------|----------|----------------| | 누가 수집하나요? | AWS가 자동으로 수집 | 여러분이 직접 전송 | | 비용 | 무료 | 지표당 요금 부과 | | 예시 | EC2 CPU 사용률, 네트워크 인/아웃, EBS 읽기/쓰기 | 서버 메모리 사용률, 디스크 여유 공간, 앱 응답 시간 | | 수집 주기 | 기본 5분 (상세 모드: 1분) | 1초까지 설정 가능 |
여기서 아주 중요한 시험 포인트가 있습니다. EC2 서버의 메모리(RAM) 사용률과 디스크 남은 공간은 표준 지표에 포함되지 않습니다. 왜냐하면 이 정보는 운영체제 내부에 있고, AWS는 여러분의 서버 내부를 직접 들여다볼 수 없기 때문입니다.
이 정보를 수집하려면 CloudWatch Agent라는 프로그램을 EC2 인스턴스에 설치해야 합니다. Agent가 내부 정보를 읽어서 CloudWatch에 사용자 지정 지표로 전송합니다.
상세 모니터링(Detailed Monitoring)
기본 모니터링은 5분마다 한 번 데이터를 수집합니다. 상세 모니터링을 켜면 1분마다 수집합니다. 추가 비용이 있지만, Auto Scaling을 사용할 때 더 빠르게 반응할 수 있어서 유용합니다. 예를 들어 트래픽이 갑자기 증가했을 때, 5분을 기다리지 않고 1분 만에 서버를 추가할 수 있습니다.
CloudWatch 경보(Alarms) — 이상이 생기면 자동으로 조치
경보는 "어떤 지표가 특정 기준을 넘으면 이 행동을 해라"라는 규칙입니다. 마치 냉장고의 온도가 너무 올라가면 경보음이 울리는 것과 같습니다.
경보의 세 가지 유형
첫 번째는 정적 임곗값 경보입니다. 고정된 숫자와 비교합니다. "CPU 사용률이 80%를 넘으면 알림을 보내라"처럼 단순명쾌합니다.
두 번째는 이상 탐지(Anomaly Detection) 경보입니다. 머신러닝을 활용해서 평소의 패턴을 학습한 뒤, 그 패턴에서 벗어나는 경우를 감지합니다. 예를 들어 매일 오전 9시에 CPU가 올라가는 패턴이 있는데 갑자기 오전 3시에 CPU가 올라가면 이상 신호로 판단합니다.
세 번째는 복합 경보(Composite Alarm)입니다. 여러 경보를 AND 또는 OR로 조합합니다. "CPU가 높으면서 동시에 메모리도 높을 때만 경보를 울려라"처럼, 단독 조건이 아닌 복합 조건으로 경보를 세밀하게 조정할 수 있습니다. 불필요한 오경보(noise)를 줄이는 데 유용합니다.
| 경보 유형 | 작동 방식 | 적합한 상황 | |----------|---------|-----------| | 정적 임곗값 | 고정 숫자와 비교 | 명확한 기준이 있을 때 | | 이상 탐지 | 평소 패턴 학습 후 이탈 감지 | 기준을 정하기 어려울 때 | | 복합 경보 | 여러 조건을 AND/OR 조합 | 오경보를 줄이고 싶을 때 |
경보가 할 수 있는 행동
경보가 발동되면 자동으로 세 가지 종류의 행동을 할 수 있습니다.
SNS 알림 발송: 이메일, SMS, Slack 메시지를 보내거나 Lambda 함수를 실행합니다.
EC2 직접 제어: 인스턴스를 중지, 종료, 재부팅하거나, 심지어 다른 하드웨어로 자동 복구(Recovery)할 수 있습니다.
Auto Scaling 트리거: 서버를 추가하거나 줄이는 스케일링 동작을 시작합니다.
EC2 자동 복구에 대해 좀 더 설명하면, EC2 인스턴스가 하드웨어 문제로 응답하지 않을 때 StatusCheckFailed_System이라는 지표가 올라갑니다. 이 지표에 "복구(Recover)" 동작을 연결해두면, AWS가 자동으로 해당 인스턴스를 새로운 하드웨어로 옮겨줍니다. IP 주소, 데이터 등은 그대로 유지됩니다.
CloudWatch 대시보드 — 모든 것을 한눈에
대시보드는 여러 지표를 한 화면에 그래프와 숫자로 표시하는 시각화 도구입니다. 항공 관제탑의 레이더 화면처럼, 운영팀이 시스템 전체 상태를 한눈에 파악할 수 있습니다.
대시보드의 유용한 기능들:
여러 AWS 계정의 지표를 하나의 대시보드에 모아볼 수 있습니다. 예를 들어 개발 계정, 스테이징 계정, 운영 계정의 상태를 한 화면에서 비교할 수 있습니다.
서울, 미국 동부, 유럽 등 여러 리전의 지표도 함께 표시할 수 있습니다.
자동 갱신 주기를 10초, 1분, 5분으로 설정할 수 있어서 실시간 상황을 따라갈 수 있습니다.
CloudWatch Logs — 로그 데이터 관리
로그는 시스템이 남기는 텍스트 기록입니다. 예를 들어 웹 서버는 "2026-03-27 09:15:32 사용자 123이 /products 페이지에 접속했다"처럼 모든 요청을 기록합니다. 문제가 생겼을 때 이 기록을 보면 원인을 찾을 수 있습니다.
로그의 기본 구조
로그 그룹은 관련된 로그를 묶는 폴더입니다. 예를 들어 /aws/lambda/my-function이라는 로그 그룹 안에 해당 Lambda 함수의 모든 실행 기록이 모입니다.
로그 스트림은 로그 그룹 안의 개별 로그 시퀀스입니다. 예를 들어 EC2 인스턴스 하나가 하나의 로그 스트림을 만듭니다.
보존 기간은 로그를 얼마나 오래 보관할지 설정합니다. 기본값은 영구 보존이지만, 비용 절감을 위해 1일부터 10년까지 설정할 수 있습니다.
지표 필터(Metric Filters) — 로그에서 숫자 뽑아내기
로그에서 특정 단어나 패턴을 찾아 CloudWatch 지표로 변환합니다. 예를 들어 이렇게 활용할 수 있습니다. 로그에서 "ERROR"라는 단어가 나타날 때마다 카운터를 1씩 올립니다. 그 카운터가 5분 안에 10회 이상이 되면 경보를 발동시킵니다. 이렇게 하면 에러가 많이 발생할 때 자동으로 알림을 받을 수 있습니다.
CloudWatch Logs Insights — 로그 검색과 분석
SQL(데이터베이스 조회 언어)과 비슷한 방식으로 로그를 검색하고 분석합니다. 예를 들어 "지난 1시간 동안 응답 시간이 3초 이상 걸린 요청은 몇 개인가?"를 쿼리로 바로 찾을 수 있습니다. 결과를 그래프로도 볼 수 있어서 패턴 파악에 유용합니다.
EventBridge — 이벤트가 발생하면 자동으로 반응
EventBridge는 AWS 서비스에서 일어나는 이벤트에 자동으로 반응하는 서비스입니다. "만약 X가 일어나면 Y를 해라"라는 규칙을 설정합니다.
예시를 들어보겠습니다. EC2 인스턴스가 누군가에 의해 종료되었다는 이벤트가 발생하면 EventBridge가 이를 감지하고 운영팀에게 SNS 알림을 보내도록 설정할 수 있습니다. 또는 매일 자정에 자동으로 데이터베이스 백업 Lambda 함수를 실행하도록 cron 스케줄을 설정할 수 있습니다.
EventBridge가 반응할 수 있는 대상: Lambda 함수, SNS 토픽, SQS 큐, Step Functions 워크플로우 등 다양합니다.
이전에는 CloudWatch Events라고 불렸으나 기능이 확장되어 EventBridge로 이름이 바뀌었습니다. 시험에서 두 이름이 모두 나올 수 있습니다.
시험 핵심 정리
"EC2 메모리/디스크 사용률 모니터링" -- CloudWatch Agent 설치 후 사용자 지정 지표로 수집
"5분 간격을 1분 간격으로 변경" -- 상세 모니터링(Detailed Monitoring) 활성화
"평소와 다른 이상한 패턴 자동 감지" -- 이상 탐지(Anomaly Detection) 경보
"CPU 높음 AND 메모리 높음일 때만 경보" -- 복합 경보(Composite Alarm)
"하드웨어 장애 시 EC2 자동으로 새 하드웨어로 이전" -- StatusCheckFailed_System 경보 + Recover 동작
"로그에서 ERROR 단어 카운트 → 경보" -- 지표 필터(Metric Filter)
"로그를 SQL로 검색 및 시각화" -- CloudWatch Logs Insights
"EC2 종료 이벤트 발생 시 자동 알림" -- EventBridge 규칙