본문 바로가기
AWS/모니터링 및 분석

AWS 환경의 모니터링 방법 Amazon CloudWatch

by kiimy 2022. 4. 26.
728x90

<예시>

오늘 판매된 커피가 몇 잔인지, 고객이 커피를 주문할 때 평균 대기 시간이 얼마였는지, 오늘 재고가 떨어진 품목이 있었는지 등등이 궁금할 것입니다. 그리고 대기 시간이 너무 길어질 경우 자동으로 알림을 받는다면 더 없이 좋을 것입니다. 그러면 다른 직원을 부르거나 제가 직접 거들 수도 있겠죠. 이 커피숍을 비롯해 모든 비즈니스는 지표를 사용하여 시스템과 프로세스가 원활히 실행되는지 확인할 수 있습니다.

이처럼 시스템을 관찰하고, 지표를 수집하고, 일정 기간 지표를 평가하고, 평가 결과를 활용해 의사 결정을 수립하고, 조치를 취한다는 개념이 이른바 모니터링입니다.

 

<AWS 예시>

클라우드에서는 모니터링을 설정하는 것이 중요합니다. 동적으로 확장 및 축소하는 AWS 서비스의 탄력적 특성 때문에 AWS 리소스를 세밀하게 모니터링함으로써 시스템이 예상대로 실행 중인지 확인해야 하기 때문입니다.

 

1. 한 EC2 인스턴스의 사용률이 과도하다면 자동으로 다른 EC2 인스턴스를 시작하는 조정 이벤트를 트리거할 수 있습니다.

2. 애플리케이션이 비정상적으로 빈번하게 오류를 반환하기 시작할 경우 직원에게 알려 무슨 일이 벌어지는지 확인하도록 할 수 있습니다.

Amazon CloudWatch

- 다양한 지표를 모니터링 및 관리하고 해당 지표의 데이터를 기반으로 경보 작업을 구성할 수 있는 웹 서비스입니다.

- 이 서비스는 지표를 추적하고 모니터링하는 방식으로 작동합니다. 지표를 리소스에 연결된 변수라고 생각할 수 있습니다.

예를 들어 에스프레소 머신에서 추출된 에스프레소의 양이나 EC2 인스턴스의 CPU 사용률입니다.

 

 CloudWatch 경보

- CloudWatch를 사용하면 에스프레소 추출 횟수라는 사용자 지정 지표를 만들 수 있습니다. 이 지표가 100에 도달하면 직원에게 머신을 청소하도록 알림을 보내는 것입니다. 간단하죠? CloudWatch에서는 CloudWatch 경보라는 기능으로 이 알림을 구현할 수 있습니다. 사용자가 지표에 대한 임계값을 설정합니다. 이 임계값에 도달하면 CloudWatch가 경보를 생성하고 작업을 트리거할 수 있습니다. 그러므로 사용자 지정 지표에서 이 경우 100에 도달하면 알림을 받고 조치를 취할 수 있다는 의미입니다.

 

더 좋은 점은 CloudWatch 경보가 SNS와 통합된다는 것입니다. 이를 통해 매니저에게 에스프레소 머신을 청소하라는 SMS를 보낼 수 있습니다. 모든 AWS 리소스에 대해 온갖 종류의 사용자 지정 경보를 만들 수 있습니다.

<예시>

회사에서 개발자들이 애플리케이션 개발 또는 테스트를 위해 Amazon EC2 인스턴스를 사용한다고 가정해 보겠습니다. 개발자가 가끔 인스턴스를 중지하는 것을 잊는 경우에는 인스턴스가 계속 실행되어 요금이 발생합니다.

이 시나리오에서는 CPU 사용률이 지정된 기간 동안 특정 임계값 미만으로 유지되면 Amazon EC2 인스턴스를 자동으로 중지하는 CloudWatch 경보를 생성할 수 있습니다. 경보를 구성할 때 이 경보가 트리거될 때마다 알림을 받도록 지정할 수 있습니다.

CloudWatch 대시보드

- 모든 지표를 하나의 창에 집계

- 대시보드를 거의 실시간으로 지표를 표시하는 화면이라고 생각할 수 있습니다. 이 커피숍 예에서는 사전적으로 모니터링할 수 있도록 모든 에스프레소 머신 및 해당 에스프레소 추출 횟수를 보여주는 CloudWatch 대시보드를 생성할 수 있습니다. 이러한 대시보드는 열린 상태에서 자동으로 새로 고쳐지므로 업데이트된 리소스 정보를 볼 수 있습니다.

Amazon EC2 인스턴스의 CPU 사용률, Amazon S3 버킷에 대해 실행된 총 요청 수 등을 모니터링

CloudWatch의 이점

1. 중앙 위치에서 모든 지표에 액세스할 수 있다는 것입니다. 그러면 AWS 및 온프레미스 서비스에서 실행되는 모든 AWS 리소스, 애플리케이션 및 서비스에서 지표 및 로그를 수집할 수 있어 시스템 전반에 대한 가시성을 손쉽게 확보할 수 있도록 사일로를 분해하는 데 도움이 됩니다.

 

2. 애플리케이션, 인프라, 서비스 간에도 가시성을 확보할 수 있습니다. 그러므로 분산 스택에 대한 인사이트를 통해 지표 및 로그를 시각화하고 상관 관계를 분석하여 신속하게 문제를 식별하고 해결할 수 있습니다. 이는 평균 문제 해결 시간, 즉 MTTR을 단축하고 총 소유 비용, 즉 TCO를 개선할 수 있다는 의미입니다. 이 커피숍 예에서는 에스프레소 머신 청소를 위한 MTTR이 단축되며 따라서 해당 머신의 TCO도 절감할 수 있습니다. 이는 개발자와 같은 중요한 자원이 비즈니스 가치를 증대하는 데 집중할 수 있다는 의미가 됩니다.

 

3. 애플리케이션과 운영 리소스를 최적화하기 위한 인사이트를 촉진할 수 있습니다. 예를 들어 전체 EC2 인스턴스 플릿에서 사용량을 집계하여 운영 및 활용도 인사이트를 도출할 수 있습니다. 그리고 커피숍 직원들은 이제 적절한 시기가 되기도 전에 머신을 청소하느라 매달리는 대신 커피를 서빙하는 데 집중할 수 있습니다.

728x90

'AWS > 모니터링 및 분석' 카테고리의 다른 글

AWS CloudTrail, AWS Trusted Advisor  (0) 2022.04.26

댓글