본문으로 건너뛰기
aws검색
운영, 보안, 비용

CloudWatch, CloudTrail, Config (관측과 감사의 기본기)

무엇이 일어나고 있는가(CloudWatch 지표, 로그, 경보), 누가 무엇을 했는가(CloudTrail), 리소스가 규칙을 지키고 있는가(Config)를 나눠 설명합니다. 꼭 걸어야 할 경보, Logs Insights 쿼리, 조직 단위 추적, 2026 년 Maintenance 가 된 CloudTrail Lake, 로그 비용 줄이는 법까지 정리합니다.

CloudWatchCloudTrailAWS Config경보Logs Insights2026-10 기준, 약 8분상태 표시 설명

세 서비스의 역할

질문서비스데이터
지금 시스템 상태는?CloudWatch지표, 로그, 경보, 추적, 대시보드
누가 언제 무엇을 했나?CloudTrailAPI 호출 기록(관리 이벤트, 데이터 이벤트)
리소스 설정이 규칙에 맞나? 언제 바뀌었나?AWS Config리소스 구성 이력, 규칙 평가 결과

장애가 나면 CloudWatch 로 증상을 보고, CloudTrail 로 직전에 누가 무엇을 바꿨는지 찾고, Config 로 그 리소스의 이전 설정과 비교하는 순서가 흔합니다.

CloudWatch

지표와 경보

AWS 서비스는 기본 지표를 자동으로 보냅니다. EC2 의 기본 지표는 5 분 간격이고 세부 모니터링을 켜면 1 분입니다. 메모리와 디스크 사용률은 기본 지표에 없으므로 CloudWatch 에이전트를 설치해야 합니다.

처음 계정을 운영할 때 최소한 이 경보는 겁니다.

대상지표조건 예
ALBHTTPCode_Target_5XX_Count, TargetResponseTime5 분 동안 5XX 비율 1% 초과, p99 지연 2 초 초과
EC2, ECSCPUUtilization, 에이전트의 mem_used_percent15 분 동안 85% 초과
RDSFreeStorageSpace, CPUUtilization, DatabaseConnections남은 스토리지 10% 미만
LambdaErrors, Throttles, Duration오류율, 제한 시간에 근접한 p99
SQSApproximateAgeOfOldestMessage처리 지연이 기준 초과
결제Budgets 경보예산의 80%, 100% 예상
aws cloudwatch put-metric-alarm --alarm-name alb-5xx-high \
  --namespace AWS/ApplicationELB --metric-name HTTPCode_Target_5XX_Count \
  --dimensions Name=LoadBalancer,Value=app/web-prod/50dc6c495c0c9188 \
  --statistic Sum --period 60 --evaluation-periods 5 --datapoints-to-alarm 3 \
  --threshold 50 --comparison-operator GreaterThanThreshold \
  --treat-missing-data notBreaching \
  --alarm-actions arn:aws:sns:ap-northeast-2:111122223333:oncall
  • N 중 M 평가(--datapoints-to-alarm)로 순간 튐에 울리지 않게 합니다.
  • 누락 데이터 처리를 의도에 맞게 정합니다. 트래픽이 없으면 지표가 없는 지표(오류 수)는 notBreaching, 하트비트처럼 없으면 문제인 지표는 breaching 입니다.
  • 여러 경보를 AND, OR 로 묶는 복합 경보로 알림 폭주를 줄입니다.
  • 이상 탐지 경보는 요일과 시간대 패턴을 학습해 고정 임계값보다 오탐이 적습니다.

로그와 Logs Insights

로그 그룹마다 보존 기간을 꼭 정합니다. 기본값은 "만료 없음" 이라 몇 년 치 로그가 쌓여 요금이 계속 늘어납니다.

fields @timestamp, @message
| filter @message like /ERROR|Exception/
| parse @message /requestId=(?<rid>[a-z0-9-]+)/
| stats count(*) as errors by bin(5m), rid
| sort errors desc
| limit 20
  • 로그는 구조화(JSON)해서 남기면 fields, filter 가 쉬워집니다.
  • 자주 보는 패턴은 지표 필터로 지표로 바꾸고 경보를 겁니다.
  • 실시간 검색이 거의 필요 없는 로그는 Infrequent Access 로그 클래스로 만들면 수집 단가가 낮습니다(로그 그룹을 만들 때만 정할 수 있음).
  • 중앙 계정으로 모으려면 교차 계정 관측성(OAM)이나 구독 필터로 Firehose, S3 에 보냅니다.

애플리케이션 관측

Application Signals 는 OpenTelemetry 기반으로 서비스별 지연, 오류, 호출 관계를 자동으로 그리고 SLO 를 정의하게 합니다. 외부에서 주기적으로 URL 을 검사하는 Synthetics 카나리아, 실제 사용자 브라우저 성능을 재는 RUM 도 있습니다. 컨테이너는 Container Insights(ECS, EKS)를 켭니다.

ML 로 이상을 찾던 Amazon DevOps Guru 는 2026-09-29 공지로 Sunset 단계에 들어가 2027-09-30 에 지원이 끝납니다. 새로 도입하지 않습니다. 장애 조사를 자동화하는 도구로는 2026-03-31 에 GA 된 AWS DevOps Agent 가 있으니, 대체 여부는 공식 이전 안내와 함께 검토합니다.

CloudTrail

  • 이벤트 기록: 관리 이벤트(리소스 생성, 수정, 삭제, 로그인)는 추적을 만들지 않아도 리전별 최근 90 일을 콘솔에서 무료로 볼 수 있습니다.
  • 추적(trail): 이벤트를 S3 와 CloudWatch Logs 로 장기 보관합니다. 관리 이벤트의 첫 사본은 무료이고, 데이터 이벤트(S3 객체 읽기, Lambda 호출 등)는 건수로 과금합니다.
  • 조직 추적: 관리 계정이나 위임 관리자에서 만들면 모든 계정의 모든 리전 이벤트가 로그 아카이브 계정의 버킷 하나로 모입니다. Control Tower 랜딩 존은 이것을 기본으로 만듭니다.
  • 로그 파일 무결성 검증을 켜서 로그가 바뀌지 않았음을 증명할 수 있게 합니다.
aws cloudtrail lookup-events --region ap-northeast-2 \
  --lookup-attributes AttributeKey=EventName,AttributeValue=AuthorizeSecurityGroupIngress \
  --start-time 2026-10-20T00:00:00Z --max-results 20

데이터 이벤트는 고급 이벤트 선택기로 필요한 버킷, 작업만 골라 기록합니다. 모든 S3 읽기를 기록하면 요금이 빠르게 커집니다.

CloudTrail Lake 의 상태

이벤트를 SQL 로 질의하는 CloudTrail Lake 는 2026-03-31 서비스 가용성 공지에서 Maint 대상으로 발표됐고, 2026-05-31 부터 새 고객을 받지 않습니다. 이미 쓰는 계정은 계속 쓸 수 있지만, 새로 설계한다면 S3 의 추적 로그를 Athena 로 질의하는 방식을 기본으로 둡니다.

SELECT eventtime, useridentity.arn, eventname, sourceipaddress
FROM cloudtrail_logs
WHERE eventname IN ('DeleteBucket','PutBucketPolicy','StopLogging')
  AND eventtime > '2026-10-01'
ORDER BY eventtime DESC LIMIT 50;

AWS Config

Config 는 리소스의 구성을 기록하고 규칙으로 평가합니다.

  • 관리형 규칙: s3-bucket-public-read-prohibited, restricted-ssh, rds-storage-encrypted, iam-root-access-key-check 같은 수백 개의 미리 만든 규칙.
  • 적합성 팩: CIS, 운영 모범 사례처럼 규칙 묶음을 한 번에 배포합니다.
  • 자동 교정: 규칙 위반 시 Systems Manager Automation 문서로 고칩니다(예: 퍼블릭 버킷의 퍼블릭 액세스 차단 켜기).
  • 애그리게이터: 조직 전체의 준수 상태를 한 계정에서 봅니다.

팁 Config 는 기록하는 구성 항목 수로 과금합니다. 자주 바뀌는 리소스(오토 스케일링으로 생겼다 사라지는 EC2, 네트워크 인터페이스)가 많으면 비용이 커집니다. 리소스 유형별로 기록 빈도를 일별로 낮추거나, 필요 없는 유형은 기록에서 뺍니다.

비용 줄이기

  • 로그 그룹 보존 기간을 전부 정하고(예: 앱 로그 30 일, 감사 로그는 S3 에 장기), 디버그 로그를 운영에서 끕니다.
  • 사용자 지정 지표의 차원에 요청 ID, 사용자 ID 처럼 값이 무한한 항목을 넣지 않습니다. 차원 조합마다 지표 하나로 과금됩니다.
  • VPC 흐름 로그는 S3 로 보내고 Parquet 형식을 고르면 저장과 질의가 쌉니다.
  • 대시보드 수, 경보 수도 요금이 있습니다. 쓰지 않는 것을 분기마다 정리합니다.

이 문서에서