Taeyoung Kim

Cloud & Platform

12강. CloudWatch

12강. CloudWatch 학습 내용을 정리한 백필 노트입니다.

이 글은 2025년 학습 기록을 블로그 형식으로 정리한 백필 노트입니다.

CloudWatch란?

CloudWatch는 AWS의 리소스 및 애플리케이션을 위한 모니터링 서비스입니다. 주요 기능은 다음과 같습니다.

  • 강력한 시각화 도구 제공: 각종 지표(Metric)를 그래프 등 시각적 자료로 보여줍니다.
  • 알림 기능: 사전에 지정한 임계값(Threshold)에 따라 알림을 발송할 수 있습니다.
  • 운영 문제 해결: 로그 및 지표에서 얻은 인사이트를 통해 시스템의 운영 문제를 해결하는 데 도움을 줍니다.

실습: EC2 인스턴스 생성 및 CloudWatch 알람 설정

1. EC2 인스턴스 생성하기

AWS 클라우드에서 가상 서버(인스턴스)를 생성합니다.

  1. 인스턴스 시작
    • AWS Management Console에서 EC2 서비스로 이동 후, '인스턴스 시작'을 클릭합니다.
  2. 이름 및 태그 설정
    • 인스턴스의 이름을 'MyFirstServer'로 지정합니다.
  3. 애플리케이션 및 OS 이미지(AMI) 선택
    • 'Ubuntu'를 선택하고, 'Ubuntu Server 22.04 LTS' 버전을 사용합니다.
  4. 인스턴스 유형 선택
    • 프리티어로 사용 가능한 t2.micro 유형을 선택합니다.
  5. 키 페어(로그인) 설정
    • 인스턴스에 안전하게 연결하기 위한 키 페어를 생성하거나 기존 키 페어를 선택합니다. (예: my-key)
  6. 네트워크 설정
    • 방화벽(보안 그룹): SSH 트래픽을 허용하는 새 보안 그룹을 생성합니다. 모든 IP 주소(0.0.0.0/0)에서의 접근을 허용하도록 설정합니다.
    • 퍼블릭 IP 자동 할당: '활성화'로 설정합니다.
  7. 스토리지 구성
    • 기본 설정인 8GiB의 루트 볼륨을 사용합니다.
  8. 인스턴스 시작
    • '인스턴스 시작' 버튼을 클릭하여 생성을 완료합니다.
    • 생성이 완료되면 인스턴스 ID, 퍼블릭 IPv4 주소 등의 세부 정보를 확인할 수 있습니다.

2. CloudWatch 알람 생성하기

생성된 EC2 인스턴스의 CPU 사용률을 감시하는 경보를 설정합니다.

  1. 경보 생성 시작
    • 생성된 EC2 인스턴스의 '모니터링' 탭으로 이동합니다.
    • 'CPU 사용률(%)' 그래프에서 경보를 생성하거나, '경보 상태'에서 '+' 아이콘을 클릭합니다.
  2. 지표 및 조건 지정
    • 지표: CPUUtilization (자동 선택됨)
    • 통계: 평균
    • 기간: 5분
    • 임계값 유형: 정적
    • 조건: 보다 큼 (>)
    • 임계값: 80 (CPU 사용률이 80%를 초과할 경우)
  3. 작업 구성
    • 경보 상태 트리거: '경보 상태'일 때 작업을 실행하도록 선택합니다.
    • 알림: 알림을 받을 SNS(Simple Notification Service) 주제를 설정합니다.
      • '새 주제 생성'을 선택하고, 알림을 받을 이메일 주소를 입력합니다. (예: inje@soaple.io)
      • '주제 생성'을 클릭하면 해당 이메일로 확인 메일이 발송되며, 수신 확인을 해야 합니다.
  4. 이름 및 설명 추가
    • 경보 이름: TestAlert
    • 경보 설명: '#테스트 경보입니다.'
  5. 미리 보기 및 생성
    • 설정한 내용을 최종 검토하고 '경보 생성'을 클릭합니다.
    • 생성 초기에는 '데이터 부족' 상태로 표시됩니다.
    • SNS 구독 메뉴에서 이메일 수신 상태가 '확인 대기 중'에서 '확인됨'으로 변경되었는지 확인합니다.

3. EC2 부하 테스트 및 경보 알림 받기

인스턴스에 인위적인 부하를 주어 설정한 경보가 정상적으로 동작하는지 테스트합니다.

  1. EC2 인스턴스에 접속Shell

    • 터미널(SSH 클라이언트)을 사용하여 다운로드한 키 페어와 인스턴스의 퍼블릭 IP 주소로 접속합니다.
    ssh -i [키 페어 경로] ubuntu@[퍼블릭 IP 주소]
    
  2. 부하 테스트 도구 설치Shell

    • 인스턴스에 접속한 후, stress 패키지를 설치합니다.
    sudo apt-get update
    sudo apt-get install stress
    
  3. 부하 테스트 실행Shell

    • stress 명령어를 사용하여 CPU에 부하를 줍니다.
    stress --cpu 4
    
  4. 결과 확인

    • CloudWatch 모니터링: EC2 인스턴스의 '모니터링' 탭에서 CPU 사용률 그래프가 급격히 상승하여 80%를 넘어 100%에 가까워지는 것을 확인합니다.
    • 이메일 알림 수신: 잠시 후, CloudWatch에서 설정한 임계값을 초과했다는 내용의 ALARM: "TestAlert" 이메일이 수신됩니다. 이메일에는 상태 변경 이유(99.8%의 데이터 포인트가 임계값 80.0을 초과함)와 같은 상세 정보가 포함됩니다.

12강 요약

  • CloudWatch: AWS 리소스 및 애플리케이션을 위한 모니터링 서비스
  • 주요 기능:
    • 강력한 시각화 도구 제공
    • 사전에 지정된 값에 따른 알림 발송 기능
    • 로그 및 지표 분석을 통한 운영 문제 해결 지원