AWS Basic 02 : Cloudwatch

업데이트:

CloudWatch

  • AWS 의 애플리케이션 상태를 모니터링하는 서비스로, Zabbix 와 같은 역할을 수행
    → 애플리케이션이 동작하고 있는 머신 혹은 인스턴스의 CPU 점유율, 메모리 용량 등을 모니터링할 수 있음
  • Log Metric Trace 의 역할을 수행하여, 각 서버의 로그 데이터를 수집하여 지정한 설정에 따라 경보를 알림
    → 로그 데이터를 수집하여 유의미한 메트릭 정보의 임계치값을 경보로 알리며, 그 원인을 추적할 수 있는 기능을 제공

Cloudwatch Agent

  • Cloudwatch 에서 지표값을 확인하기 위해서는 Cloudwatch Agent 설치가 필요
  • Run Command 기능 사용 가능 : 복수의 System Manager 에 등록된 서버에 대해 동일한 명령어를 실행할 수 있음

기능

경보(Alarms)

  • 이벤트 기능. 각 서비스 지표값에 알람을 전송하는 이벤트를 걸 수 있음
  • 특정 애플리케이션의 상태가 특정 조건에 도달하면 어떤 동작(이벤트)를 일으킬지 지정한다 ex) CPU 가 80% 이상 도달한 것이 5분 이상 지속될 경우, 지정한 메일 주소로 알람 전송
    ※ Cloud Formation 언어로 신규 서버 추가시 자동 생성되도록 자동화 가능
  1. Alarms → Create Alarm : 알람을 지정할 수 있는 서비스를 지정
  2. Define Alarms : 알람 이름, 설명 등 지정
  3. Define Alarm Threshold : 알람을 울릴 임계치(역치) 설정
  4. Configure Actions
  • (1) 알람을 울릴 당시의 상태 설정
    • ALARM : 알람의 조건을 충족했을 때
    • OK : 문제가 없을 때
    • INSUFFICIENT_DATA : 알람을 동작시키기 위한 조건 만족이 안될 때
  • (2) Tack Action
    • EC2 삭제, EC2 중지, Autoscaling, 알람 전송 등

※ Billing Alarm : AWS 과금에 대한 알람 역시 cloudwatch 에서 설정 가능
※ nGrinder : 서버에 부하를 걸 수 있는 부하테스트 도구

로그(Logs)

어플리케이션 로그 등의 EC2 로그를 수집

지표(Metrics)

AWS 에서 관리 중인 서비스에 대해 각각의 지표값을 열람할 수 있음

  • Namespace : 각각의 서비스 식별
  • Metric : CPU, Memory, Disk 등 → 수치를 클릭해서 그래프 열람 가능
    • Namespace 마다 메트릭 항목이 상이함 : EC2 의 경우 CPU 점유율, 네트워크 I/O / EBS 의 경우 인스턴스의 Health count 등
    • time range 조절 가능

대시보드

관리 중인 데이터를 일목요연하게 볼 수 있음

  • Overview of your alarms : 알람으로 등록된 것들이 열거
  • Overview of yout resources : 운영 중인 서비스의 리소스 상태 확인
  • Service health : 현재 사용 중인 리전의 헬스 체크

Cloudwatch VS Zabbix

Zabbix 는 꽤 친근한 모니터링 도구여서, Cloudwatch 관련 이야기가 나올 때마다 기능면에서 비교해 보고 싶었다.
참고 페이지는 https://qiita.com/qryuu/items/858e59ebafac589d6011

  • 둘 다 감시 대상 서버에 Agent 를 설치할 필요가 있음
  • 메트릭 연산, 역치 설정을 위한 템플릿과 개별 변경 기능, 예측 기능, 장애 알람 등의 기능 ※ Zabbix 의 경우 애플리케이션 내의 내장된 기능 사용, Cloudwatch 의 경우 AWS 의 다른 서비스와 연동하여 사용
  • Zabbix 의 경우 물리 서버/클라우드 환경 모두 사용 가능하나, Cloudwatch 역시 Direct Connect 와 SystemManager 로 물리 서버와 연동한 환경 내에서 사용 가능
  • 메인테넌스 설정 : Zabbix 에만 존재
  • 데이터 보존 기간 : Zabbix 는 개별 설정 가능, Cloudwatch 는 15개월

활용(예시)

  • 물리 서버 시스템(IDC) : 각 서버의 Collectd → InfluxDB → Grafana 로 모니터링
  • 클라우드 시스템(AWS) : Cloudwatch → EC2 → Elasticsearch(Kibana) 로 모니터링

관련 AWS 서비스

System Manager

  • AWS 의 시스템 관리 서비스
  • 배포 대상 서버에 Agent 를 설치함으로서, System Manager 내에서 해당 서버의 리스트를 확인할 수 있다
  • EC2 뿐 아니라 DC(Direct Connect)로 연결된 물리 서버 역시 EC2 와 같이 AWS 내에서 사용 가능해짐

Simple Notification Service

메일 그루핑 등 작업이 가능한 AWS 전용 서비스

Cloud Formation

코드를 통해 AWS 환경의 리소스를 관리 및 배포 서비스로, Ansible 및 Chef 등과 같은 역할을 수행

Direct Connect

물리 서버(IDC) 네트워크와 클라우드 환경 네트워크의 물리적인 연결을 통해, 논리적으로 하나의 네트워크를 구성하는 기술