본문 바로가기

Cloud/AWS

[AWS] CloudWatch에 대하여,,,


안녕하세요!

 

두루뭉실 블로그의 주인장 두루뭉실 엔지니어입니다!

 

오늘은 AWS의 "CloudWatch" 서비스에 대해 알아보겠습니다!

 

CloudWatch 서비스에 대한 공식 문서 링크 첨부하겠습니다!

 

What is Amazon CloudWatch?


Amazon CloudWatch란 무엇인가?

Amazon CloudWatchAWS 리소스 및 AWS에서 실행되는 애플리케이션을 실시간으로 모니터링하는 서비스입니다. CloudWatch를 활용한다면 AWS에서 발생한 다양한 이벤트들을 수집하고 지표(Metric)를 통해 확인할 수 있고 필요시 알림을 보낼 수 있습니다. 다양한 AWS의 서비스를 이용하던 중, 임계값을 위반/도달한 경우 모니터링 중인 리소스를 자동으로 변경하는 경보(Alarm)를 생성할 수 있습니다.

 

여기서 이벤트는 S3 Bucket에 파일을 업로드, 삭제, 접근 거부와 RDS에 접속 시도와 같이 AWS 서비스 내에서 이루어지는 환경의 변화를 말합니다. 또한, 여기서 경보(Alarm)는 EC2 인스턴스 중지 및 AutoScaling 시작과 Amazon SNS를 통한 메시지 전송 등이 해당됩니다. CloudWatch에 의해 감지되어 애플리케이션 및 리소스를 변경하고 알리는 것이 경보(Alarm)에 해당되겠습니다.

 

 

Amazon CloudWatch에서 사용되는 용어들

우리는 AWS의 서비스를 이용하기 위해 해당 서비스의 용어들을 알아야 사용할 수 있습니다. AWS의 CloudWatch에서 사용되는 Namespace, Dimesion, Metric, Statistics와 같은 용어를 알아야 서비스 콘솔 창에서 모니터링 서비스를 활용할 수 있을 것입니다.

 

1. Namespace와 Metric

 

 

여기서, "EC2 인스턴스의 CPU 점유율을 확인하겠다!"라고 하면 EC2는 Namespace가 되고 CPU 점유율은 Metric(지표값)이 됩니다. 일반적으로 AWS Namespace는 AWS/service로 명명 규칙을 가집니다. 예를 들어, Amazon EC2는 AWS/EC2라는 Namepace를 갖습니다. 또한, Metric은 CloudWatch에 게시된 시간 순서별 데이터 요소 집합을 나타냅니다. CloudWatch는 리전단위 서비스입니다. 즉, Metric은 생성된 리전에만 존재합니다.

 

2. Dimension

이번에는 CloudWatch 콘솔창에서 확인해보겠습니다. 좌측에 메뉴의 지표는 Metric, DynamoDB는 Namespace입니다. 

 

 

네임스페이스인 DynamoDB에 들어오니, 3가지 지표를 선택할 수 있는 것을 확인할 수 있습니다. Namespace에 대해 어떤 기준으로 지표를 확인할지를 Dimension이라는 용어로 구분합니다.

 

3. Statistic과 Period

 

 

Dimension을 선택하고 나면 Metric을 선택할 수 있고 Metric 그래프를 확인할 수 있습니다. 이 때, AWS에서 발생된 이벤트들에 대한 지표를 평균, 최소, 최대, 합계 등으로 확인할 수 있습니다. 이러한 통계 값을 Statics라고 합니다. 이때, 1초, 5초, 10초, 1시간 등 다양한 시간 단위별로 메트릭을 확인할 수 있는데 이것을 Period라고 합니다.

 

어떤 경우에 어떻게 사용될까?

클라우드 서비스를 사용하는 이유는 비용측면에서 효율적이기 때문입니다. 기업에서 On-Premise 환경에서 클라우드로 마이그레이션 했는데 cost-effective하지 못한다면 마이그레이션 해야할 이유가 있을까요? CloudWatch는 다양한 이유로 사용될 수 있는데 cost-effective한 운영을 하기 위해서 사용되기도 하고 Application 유저를 분석하여 더 좋은 서비스를 만들 수도 있습니다.

 

한 가지 예를 보겠습니다. 

블랙프라이데이를 앞둔 쇼핑몰 스타트업 회사입니다.
회사의 모바일 쇼핑 Application을 유저들이 특정 시간대에 사용하는지 파악하고
해당 시간에 트래픽을 조절하고 싶어 합니다.

이처럼, 특정 날 특정 시간대에 많은 트래픽으로 인해 발생하는 병목현상을 방지하기 위해 사용할 수 있습니다. 이 경우에 CloudWatch를 통해 매일 시간대별로 Traffic rate와 유저들이 어떤 서비스를 많이 사용했는지 분석하여 리소스를 조절하여 Scalable 한 인프라를 구축할 수 있을 것입니다.

 

또한 위의 상황에서 다른 상황을 부여해보겠습니다. 유저들이 주로 18시~20시 사이에 서비스를 주로 이용한다고 가정하겠습니다. 그렇다면 18~20시를 제외한 시간대에 필요한 리소스들의 성능이 18시~20시에 사용되는 리소스들과 같을 이유는 없을 것입니다. 그래서 CloudWatch를 통해 특정 서비스에서 발생하는 이벤트에서 특정 metric이 임계치에 도달했을  때, Alarm(경보)를 통해 운영자가 파악하고 매니징 할 수 있을 것입니다.


오늘은 AWS의 CloudWatch에 대해 알아보았습니다!

 

 

CloudWatch가 무엇인지?

어떤 용어들이 있는지?

이것을 대체 왜 사용하는지?

 

오늘 알아보았습니다!!

 

CloudWatch를 적극적으로 사용하기 위해

MSA가 중요하다고 느껴지는 하루입니다,,!!

 

이상 두루뭉실 엔지니어였습니다!

 

감사합니다!