본문 바로가기

개발

AWS CloudWatch vs. CloudTrail: 헷갈리기 쉬운 두 서비스를 완벽하게 비교하는 방법 🧐

반응형

AWS(Amazon Web Services)를 운영하다 보면 CloudWatchCloudTrail이라는 두 가지 모니터링 서비스에 자주 접하게 됩니다. 이름이 비슷하고 모두 '모니터링'이라는 큰 범주에 속하지만, 이 두 서비스는 목적과 역할이 완전히 다릅니다. 이들을 제대로 이해하지 못하면 시스템의 성능 저하 원인을 파악하거나 보안 사고의 원인을 추적하는 데 어려움을 겪을 수 있습니다.

CloudWatch가 '시스템의 상태를 감시하는 대시보드'라면, CloudTrail은 '모든 활동을 기록하는 블랙박스'와 같습니다. 이 글에서는 이 두 서비스의 근본적인 차이점을 명확히 구분하고, 각각의 주요 기능과 활용 방안을 상세히 비교해 보겠습니다.


1. AWS CloudWatch: 시스템의 상태를 감시하는 대시보드 📈

CloudWatch는 AWS 리소스와 애플리케이션의 성능 및 상태를 실시간으로 모니터링하는 서비스입니다. 이는 시스템이 현재 어떤 상태인지, 얼마나 잘 작동하고 있는지에 대한 정보를 제공합니다.

  • 주요 목적: 운영 상태 모니터링, 성능 지표 수집 및 분석
  • 비유: 자동차 운전석의 대시보드와 같습니다. 주행 속도, 연료량, 엔진 온도 등 차량의 현재 상태를 실시간으로 보여주어 운전자가 안전하게 운전할 수 있도록 돕습니다.
  • 핵심 기능:
    • 메트릭(Metrics): EC2 인스턴스의 CPU 사용률, 네트워크 트래픽, RDS 데이터베이스의 연결 수 등 AWS 리소스에서 발생하는 다양한 성능 지표를 자동으로 수집합니다. 사용자 지정 메트릭을 통해 애플리케이션 내부의 데이터를 수집할 수도 있습니다.
    • 로그(Logs): 다양한 AWS 서비스(Lambda, EC2, ECS 등)와 애플리케이션에서 발생하는 로그를 중앙 집중적으로 수집하고 관리합니다. 로그 필터링 및 검색 기능을 통해 원하는 정보를 쉽게 찾을 수 있습니다.
    • 알람(Alarms): 특정 메트릭이 설정한 임계값(Threshold)을 초과하거나 미달하면, SNS(Simple Notification Service) 등을 통해 사용자에게 알림을 보냅니다. 이를 통해 장애 발생 시 즉각적인 대응이 가능합니다.
    • 대시보드(Dashboards): 수집된 메트릭과 로그 데이터를 시각화하여 시스템의 상태를 한눈에 파악할 수 있는 대시보드를 생성합니다.

CloudWatch는 "지금 내 EC2 인스턴스의 CPU 사용률이 몇 %인가?"와 같은 질문에 답하는 서비스입니다.


2. AWS CloudTrail: 모든 활동을 기록하는 블랙박스 📝

CloudTrail은 AWS 계정에서 발생한 모든 API 호출 및 활동을 기록하는 서비스입니다. 이는 누가, 언제, 어디서, 무엇을 했는지에 대한 감사(Auditing) 기록을 남기는 데 초점을 맞춥니다.

  • 주요 목적: 보안 감사, 거버넌스, 규정 준수
  • 비유: 자동차의 블랙박스나 은행의 거래 기록부와 같습니다. 운행 중 발생한 모든 상황을 기록하거나, 모든 입출금 기록을 남겨 나중에 문제가 발생했을 때 그 원인을 정확히 파악할 수 있게 합니다.
  • 핵심 기능:
    • 이벤트 로그(Event Logs): AWS Management Console, AWS SDK, CLI(Command Line Interface)를 통해 발생하는 모든 API 호출을 이벤트로 기록합니다. 이 로그에는 API 호출자(사용자), 호출 시간, 호출된 API, 리소스 정보 등이 상세히 포함됩니다.
    • 보안 및 규정 준수: CloudTrail은 보안 사고가 발생했을 때 누가 무단으로 리소스에 접근했는지, 어떤 리소스가 변경되었는지 등을 파악하는 데 필수적인 증거를 제공합니다. 기업의 보안 규정을 준수하는 데에도 중요한 역할을 합니다.
    • 통합성: 계정 내의 모든 리전에 걸쳐 발생하는 활동을 기록할 수 있으며, 이 로그를 S3 버킷에 저장하여 장기적으로 보관할 수 있습니다.

CloudTrail은 "어제 누가 EC2 인스턴스를 삭제했는가?"와 같은 질문에 답하는 서비스입니다.


3. CloudWatch vs. CloudTrail: 한눈에 비교하기

구분 AWS CloudWatch AWS CloudTrail
주요 목적 성능 모니터링, 상태 감시 보안 감사, 규정 준수
기록 대상 메트릭로그 API 호출사용자 활동
답하는 질문 "내 시스템이 지금 어떤 상태인가?" "누가, 언제, 무엇을 했는가?"
데이터 형식 시간 순서대로 정렬된 시계열 데이터 API 호출 정보가 담긴 이벤트 로그(JSON)
주요 사용자 개발자, 시스템 운영자, DevOps 엔지니어 보안 담당자, 시스템 관리자, 감사관
주요 활용 예시 - CPU 사용량이 80% 이상일 때 알람 발송<br>- 웹사이트 응답 시간 모니터링 - 권한 없는 사용자의 리소스 접근 기록 추적<br>- 특정 리소스의 변경 이력 확인
Sheets로 내보내기

4. 두 서비스의 시너지 효과 - 함께 사용할 때의 가치 ✨

CloudWatch와 CloudTrail은 서로 다른 목적으로 사용되지만, 함께 활용하면 시스템의 안정성과 보안을 극대화할 수 있습니다.

  • 예시 1: 장애 원인 분석
    • CloudWatch가 EC2 인스턴스의 CPU 사용률이 갑자기 100%가 되었다는 알람을 보냅니다.
    • CloudTrail의 로그를 분석하여, 그 시점에 어떤 사용자가 RunInstances API를 호출했거나, 특정 스크립트를 실행하여 부하를 유발했는지 원인을 정확하게 찾아낼 수 있습니다.
  • 예시 2: 보안 위협 탐지
    • CloudTrail은 계정에 대한 모든 API 호출을 기록합니다.
    • CloudWatch의 로그 그룹으로 CloudTrail 로그를 전송한 뒤, '특정 IP 주소에서 비정상적으로 많은 로그인 시도가 발생했을 때'와 같은 패턴을 감지하는 알람을 설정할 수 있습니다.

결론: 필수적인 두 개의 눈, CloudWatch와 CloudTrail 👁️👁️

CloudWatch는 클라우드 시스템의 '건강 상태'를 실시간으로 확인하는 눈이라면, CloudTrail은 시스템에서 일어난 모든 일의 '기록'을 남기는 기억입니다. 시스템의 성능과 가용성을 책임지는 엔지니어에게는 CloudWatch가, 보안과 규정 준수를 담당하는 팀에게는 CloudTrail이 필수적입니다. 이 두 서비스를 적재적소에 활용하고 연동하여 사용하면, AWS 클라우드 환경을 더욱 안전하고 효율적으로 운영할 수 있을 것입니다.

반응형