AWS

AWS 서비스를 모니터링하는 CloudWatch

RyanGomdoriPooh 2016. 8. 24. 19:44

CloudWatch는 AWS Resource의 상태를 모니터링하는 AWS의 서비스입니다.


모니터링뿐만 아니라 Resource의 측정치와 연결하여 다양한 Action을 서비스에 취할 수 있습니다.


CloudWatch의 리소스 모니터링은 두가지가 있습니다.


1) 기본 모니터링(5분마다 측정)    2) 세부 모니터링(1분마다 측정)


기본 모니터링과 같은 경우에는 프리티어에서 무제한 무료로 사용할 수 있고,


세부 모니터링과 같은 경우에는 추가 요금이 부가됩니다.



CloudWatch가 이용되는 경우는 크게 두가지 입니다.


1) EC2 Instance에 이상이 생겼을 때 알림을 받고자 할 때 사용하고,


2) 트래픽이 Instance의 성능을 넘어서 처리용량을 Auto Scaling 하거나 ELB의 처리 용량을 늘릴 때 사용합니다.



측정된 Resource의 기본적인 수치 이외에도 사용자가 커스터마이징을 통해 만든 Resource 수치들의 조합을 통해서 Action을 만들어서 대응할 수도 있습니다.


CloudWatch가 모니터링에 대한 측정 리소스를 제공하는 AWS의 서비스들은 다음과 같습니다.


1) EC2 Instance    2) EBS volume    3) ELB    4) RDS    5) DynamoDB    6) ElastiCache    7) SNS    8) SQS    가 있습니다.



10.1 CloudWatch 알람 생성하기

EC2 Instance의 CPU 사용률을 CloudWatch를 사용하여 모니터링하다가 설정한 측정치에 도달하면 알람 메일을 전송하도록 알람을 만들어보겠습니다.


여기서 위에서 이야기한 부분처럼 기본 모니터링과 세부 모니터링이 있는 데, 지금 하려는 알람의 경우에는 측정이 5분마다되기때문에 5분을 CPU사용률을 높여서 기다려야하는 경우가 생깁니다.


그래서 이번 알람을 만드는 경우에서는 1분만에 바로 확인할 수 있는 세부 모니터링으로 Instance의 모니터링 형태를 바꾸고 진행하겠습니다.


CloudWatch를 설정할 Instance를 선택하고 오른쪽 클릭하고 CloudWatch Monitoring => Enable Detailed Monitoring 을 선택해줍니다.


그리고 Yes, Enable을 눌러서 세부모니터링을 활성화 하겠다는 확인을 해줍니다.



그리고 Console home으로 갑니다.


CloudWatch 서비스를 선택해줍니다.


Alarm을 선택해줍니다.


그리고 Create Alarm을 누르게되면 다음과 같은 화면이 나옵니다.

EC2 Metrics에 대해서 보기 위해 선택해줍니다.


해당하는 Instance의 InstanceId와 InstanceName을 확인하고 해당하는 Instancce의 원하는 리소스 측정치인 CPUUtilization을 선택해줍니다.

그리고 Next로 넘어가줍니다.


Name에는 알람을 구분할 이름을 쓰고, Whenever 부분은 원하는 측정치의 기준값 예를들면 CPU이용률이 한번이라도 50퍼이상면 Action하라라는 뜻입니다.

가장하단에 New list를 눌러서 본인이 알람을 받고싶은 이메일을 쓰기 위해서 눌러줍니다.


Actions부분을 본인이 연락받고 싶은 이메일주소를 넣고 Create Alarm으로 알람설정을 마무리 짓습니다.


그런데 마지막으로 이메일이 맞는지에 대한 확인을 하기때문에 다음과 같은 화면이 나옵니다.

현재는 View Alarm 버튼이 활성화되지 않았다는 것을 볼 수 있습니다.


본인이 입력하였던 메일로 직접가서 Confirm subscription을 눌러주면 확인 링크로 이동합니다.


다시 돌아오면 View Alarm이 활성화된 것을 볼 수 있습니다. 이제 확인을 누르고 알람을 받으면 됩니다.


생성된 Alarm을 list에서 확인할 수 있습니다. 이제 CPU의 사용률만 올라가면 이메일로 알림 메일이 오는 것을 확인할 수 있습니다.


EC2 Instance에 직접 SSH로 접속을 해서 "yes > /dev/null" 를 입력하고 1분이상 기다리면 CPU의 사용률이 올라가는 것을 볼 수 있고, 동시에 이메일로 CloudWatch에서 오는 정보를 받을 수 있습니다.


알람을 받았으면 ctrl + c또는z 로 명령어를 종료시켜줍니다.



10.2 CloudWatch 커스텀 측정치를 만들어서 서비스에 사용하기

기본적으로 제공하는 측정치 이외에도 사용자가 측정한 값을 조합해서 커스터마이징한 값을 사용할 수도 있습니다. 이값은 Custom Metric라고 합니다.


Custom Metric는 서버 애플리케이션, 로그 파일, 언어 레벨에서 측정치를 만들고, 이 값들을 모니터링하거나 CloudWatch 액션을 제어하고 싶을 때 사용합니다.


이 부분은 생략하고 넘어가도록 하겠습니다. 추후에 설명해야하는 부분이 생긴다면 다시 한번 다루겠습니다.


이상 CloudWatch에 대한 부분을 마치겠습니다.



* Reference

1. 아마존 웹 서비스를 다루는 기술 - 이재홍 - 이분의 책은 AWS의 바이블이라고 생각됩니다. 구매해서 보시는 것 추천.