AWS 리소스의 상태를 모니터링하는 CloudWatch

이재홍 http://www.pyrasis.com 2014.03.24 ~ 2014.06.30

CloudWatch 알람 생성하기

EC2 인스턴스의 CPU 사용률을 모니터링하고 설정한 측정치에 도달하면 알림 메일을 전송하도록 알람을 생성해보겠습니다. 아직 EC2 인스턴스를 생성하지 않았다면 ‘4.3 EC2 인스턴스 생성하기’를 참조하여 EC2 인스턴스를 생성하도록 합니다. 먼저 EC2 인스턴스(Example Server)를 1분 단위로 모니터링 가능하도록 세부 모니터링 설정을 합니다.

세부 모니터링 설정은 프리 티어에서 사용할 수 없으며 추가 요금을 지불해야 합니다. 추가 요금을 지불하고 싶지 않다면 이 부분은 건너뛰어도 되고 기본 모니터링 만으로 실습이 가능합니다. 단 알람이 동작하는 것을 확인하려면 5분 이상 기다려야 합니다.

EC2 인스턴스 목록(INSTANCES → Instances)에서 EC2 인스턴스(Example Server)를 선택하고, 마우스 오른쪽 버튼을 클릭하면 팝업 메뉴가 나옵니다(위쪽 Actions 버튼을 클릭해도 같은 메뉴가 나옵니다). Enable Detailed Monitoring을 클릭합니다.


그림 10-2 EC2 인스턴스에 세부 모니터링 설정

Yes, Enable 버튼을 클릭하여 세부 모니터링을 활성화 합니다.


그림 10-3 세부 모니터링 활성화

세부 모니터링이 활성화 되었습니다. Close 버튼을 클릭합니다.


그림 10-4 세부 모니터링 활성화 완료

AWS 콘솔로 접속한 뒤 메인 화면에서 Deployment & Management의 CloudWatch를 클릭합니다.


그림 10-5 CloudWatch Resource and Application Monitoring

왼쪽 메뉴에서 Alarms를 클릭하고 위쪽 Create Alarm 버튼을 클릭합니다.


그림 10-6 CloudWatch 알람 목록

알람 생성창이 나옵니다. EC2 Matrics를 클릭합니다.


그림 10-7 CloudWatch 알람 측정치 카테고리 선택

그림 10-8에서 InstanceId i-c5a8b8c3은 이전에 생성한 EC2 인스턴스(Example Server)입니다. EC2 인스턴스가 여러 개일 경우 스크롤을 내리면 다른 EC2 인스턴스도 선택할 수 있습니다. CPUUtilization을 선택하고, 아래 그래프 부분에서 모니터링 간격을 1 Minute(1 분)으로 변경합니다. 설정이 완료되었으면 Next 버튼을 클릭합니다.


그림 10-8 CloudWatch 알람 측정치 종류 선택

그림 10-9의 알람 세부 설정입니다.

  • Name: 알람의 이름입니다. CPU Watch로 입력합니다.
  • Description: 알람의 설명 입니다(입력하지 않아도 상관없습니다).
  • Whenever is: 측정치를 숫자로 입력합니다. 여기서는 CPU 사용률(%)입니다. >= 30으로 설정합니다(CPU 사용률 30% 이상에서 알람 동작). 30를 입력하면 오른쪽 그래프에서 30에 해당하는 위치에 빨간색으로 선이 표시됩니다.
  • Whenever for: 설정한 측정치가 몇 번 도달했을 때 알람이 동작할지 설정합니다. 이 값을 3으로 설정했다면 설정한 측정치에 연속으로 3번 도달해야 알람이 동작하게 됩니다 (현재 모니터링 간격이 1분이면 3분 연속으로 측정치에 도달). 1번이나 2번 도달했을 경우 알람은 동작하지 않습니다. 기본값 그대로 사용합니다.

테스트용 알람 설정이기 때문에 무조건 알람이 발생하도록 CPU 사용률 측정치를 낮게 잡았습니다. 실제로 Auto Scaling과 연계할 때에는 보통 60% 또는 80%로 설정합니다. 액션은 이메일 알림(Notification)을 사용하겠습니다. New list를 클릭합니다.


그림 10-9 CloudWatch 알람 세부 설정

그림 10-10의 알람 액션 설정입니다.

  • Whenever this alarm: 기본값인 State is ALARM을 선택합니다.
  • State is ALARM: 설정한 측정치를 넘어섰을 때의 상태입니다.
  • State is OK: 설정한 측정치에 도달하지 못했을 때의 상태입니다.
  • State is INSUFFICIENT: 데이터가 없어서 측정치를 알 수 없을 때의 상태입니다.
  • Send notification to: 이메일 알림을 받을 사람 이름입니다. admin으로 설정합니다.
  • Email list: 알림을 받을 이메일 주소입니다. 여러 이메일 주소를 입력할 수 있으며 ,(콤마)로 구분합니다.

설정이 완료되었으면 Create Alarm 버튼을 클릭합니다.


그림 10-10 CloudWatch 알람 액션 설정

이메일 확인 경고 창이 표시됩니다. 스팸 메일을 방지하기 위해 자신의 이메일이 맞는지 확인하는 절차입니다.


그림 10-11 이메일 주소 확인

웹 브라우저를 실행하고 입력한 이메일 주소의 메일함으로 이동합니다. 메일함을 보면 AWS Notification - Subscription Confirmation이라는 메일이 도착했을 것입니다. 메일 내용에서 Confirm subscription 링크를 클릭합니다.


그림 10-12 이메일 확인용 메일 도착

이메일 확인이 완료되었다는 페이지가 표시됩니다. 이제 CloudWatch(실제로는 SNSSimple Notification Service)가 보내는 알림 이메일을 받을 수 있게 되었습니다.


그림 10-13 SNS 이메일 인증 완료

다시 CloudWatch의 알람 생성 화면을 보면 이메일 확인이 완료되었다고 표시됩니다. View Alarm 버튼을 클릭합니다.


그림 10-14 이메일 주소 확인 완료

CloudWatch 알람 목록에서 새로 생성한 알람을 확인할 수 있습니다. 현재 CPU 상태는 측정치보다 낮으므로 OK에 위치해 있습니다.


그림 10-15 CloudWatch 알람 OK 상태 목록

이제 CPU 사용률을 강제로 올려서 ALARM 상태가 되도록 만들어보겠습니다. 이전에 생성한 EC2 인스턴스(Example Server)에 SSH로 접속한 뒤 yes > /dev/null 명령을 입력합니다.

[ec2-user@ip-172-31-21-171 ~]$ yes > /dev/null

이 명령을 입력한 뒤 가만히 두고 잠시 기다립니다. 1분 정도 시간이 지나면 알람이 ALARM 상태로 바뀝니다. 아래쪽 그래프에서도 CPU 사용률이 올라간 것을 확인할 수 있습니다(세부 모니터링Enable Detailed Monitoring 설정을 하지 않았다면 5분 이상 시간이 지나야 ALARM 상태로 바뀝니다).


그림 10-16 CloudWatch 알람 ALARM 상태 목록

웹 브라우저에서 메일함을 열어보면 ALARM: “CPU Watch” in APAC - Tokyo라는 알람 이메일이 도착한 것을 확인할 수 있습니다.


그림 10-17 CloudWatch 알람 이메일 도착


저작권 안내

이 웹사이트에 게시된 모든 글의 무단 복제 및 도용을 금지합니다.
  • 블로그, 게시판 등에 퍼가는 것을 금지합니다.
  • 비공개 포스트에 퍼가는 것을 금지합니다.
  • 글 내용, 그림을 발췌 및 요약하는 것을 금지합니다.
  • 링크 및 SNS 공유는 허용합니다.