IaaS/퍼블릭클라우드

(AWS) AWS의 CI/CD 툴 - CloudWatch

armyost 2021. 6. 6. 22:28
728x90

개요 

Amazon CloudWatch는 개발자 및 DevOps 엔지니어, IT관리자가 이용할 수 있는 모니터링 서비스 입니다. 또한 CloudWatch는 애플리케이션 및 시스템의 전반적인 성능을 모니터링하고, 상태 변화에 따라 서비스의 Scale Out/Up, 서비스 재시작 등을 수행할 수 있는 CI/CD 구현에 필수적인 모니터링 도구입니다.

 

Amazon CloudWatch는 클라우드에서 발생되는 로그, 지표 및 이벤트 형태의 데이터 수집 외에도 On-Premise 에서 발생되는 로그 및 지표도 통합할 수 있으며, 온프라미스의 리소스를 모니터링 할 수 있도록 CloudWatch Agent또는 API Call을 통해 하이브리드 클라우드 아키텍처에서도 CloudWatch를 사용할 수 있습니다.

 

구조 

AmazonCloudWatch는 네임스페이스 → 지표 → 차원의 구조로 구성되며, AWS 리소스와 자원으로부터 수집된 데이터를 시계열로 분류하여 저장하게 됩니다. 이에 대한 통계값을 사전에 정의된 Min, Max, Sum, Average, SampleCount, Percentile와 함께 적합한 통계 지표값을 선택하여 수치를 확인할 수 있습니다. 이에 대한 Amazon CloudWatch 기본 관리 구조는 다음과 같습니다.

 

-네임스페이스

서로 다른 애플리케이션에 대한 지표 저장을 위한 컨테이너
각 애플리케이션의 측정 지표를 서로 격리

 

-지표

애플리케이션 또는 서비스에 의해 생성된 데이터 요소의 세트

정량적 평가, 측정, 비교를 위한 특정 시간 간격의 데이터 집합

 

-차원

지표를 고유하게 식별할 수 있게 하는 Name/Value로 구분된 정보

지표 검색시 필터링을 통해 원하는 데이터 검색 기능

 

실습 CloudWatch Event를 활용한 서버 모니터링

 

1. [서비스] - [애플리케이션통합] - [Simple Notification Service] 메뉴를 클릭합니다. [Amazon SNS] 페이지에서 [주제] 메뉴를 선택 후 [주제 생성] 버튼을 클릭합니다.

 

 

2. [주제 생성] 페이지의 세부 정보에서 이름과 표시이름을 입력하고 [주제 생성]을 클릭합니다.

 

3. [주제 세부 정보] 페이지에서 [구독 생성] 버튼을 클릭합니다. 

 

4. [구독생성] 세부 정보 페이지에서 '프로토콜'은 '이메일'을 선택하고, '엔드포인트'에 본인의 이메일 주소 입력 후 [구독생성] 버튼을 클릭합니다.

 

5. 엔드포인트에 등록된 이메일로 발송된 메일을 확인후 'Confirm Subscription'링크를 클릭하여 SNS구독에 대한 확인 작업을 완료합니다.

 

6. [구독] 메뉴를 클릭하여 구독이 정상적으로 되었음을 확인합니다.

 

7. 콘솔에 로그인 후 [서비스] - [관리 및 거버넌스] 항목에서 [Cloud Watch]메뉴를 클릭합니다. [이벤트] 메뉴를 선택하고 [시작하기] 버튼을 클릭합니다.

 

8. [1단계:규칙생성] 페이지의 '이벤트소스' 설정 화면에서 '서비스 이름'을 EC2로 선택하고, '이벤트 유형'은 EC2 Instance State-Change Notification'으로 선택한 후 이벤트 유형 아래 항목에서 '모든상태', '모든인스턴스'를 선택합니다.

 

9. '대상' 항목에서 [대상 추가] 버튼을 클릭합니다.

 

10. '대상' 항목에서 이벤트 호출 대상을 'SNS주제'로 선택하고 '주제'를 이전 SNS에서 생성된 'CloudWatchEventNotifications'를 선택한 후 [세부정보구성] 버튼을 클릭합니다.

 

11. [2단계: 규칙 세부 정보 구성] 페이지에서 '이름'에 'EC2StatusNotificationsSubject' 입력 후 [규칙생성] 버튼을 클릭합니다.

 

12. 인스턴스를 재기동하거나 셧다운하거나 작업을 하면 알람이 발생합니다.