Cloduwatch 개념
AWS 리소스와 AWS에서 실시간으로 실행 중인 애플리케이션을 모니터링
Cloduwatch 동작원리
1. AWS 리소스들이 동작함,
2. AWS 리소스의 datapoint -> Cloudwatch의 metric으로 전송함 (Dimension 매칭해서)
3. Cloudwatch는 AWS가 보낸 datapoint를 일정주기(Period)마다 수집 함
4. datapoint기반으로 Cloudwatch의 metric을 생성함
5. metric기반으로 통계정보(Statistics)를 만듦
6. 이 값을 바탕으로 그래프생성, 알람생성
Cloduwatch 세부개념
1) NameSpace
지표용 컨테이너로, Cloudwatch가 수집한 datapoint에 지정하는 서비스명
기본 네임스페이스 없음
명명규칙 : AWS/service
ex) AWS/EC2
2) Metric (지표)
모니터링할 변수로, Cloudwatch가 수집한 datapoint의 세트
ex) CPU사용량 Metric : Cloudwathch가 EC2의 CPU 사용량에 대해 수집한 datapoint들의 모임
3) Dimension (차원)
지표의 자격증명에 속하는 이름/값 페어
즉, Metric의 특징을 설명하는 범주
Dimension을 사용해서 어떻게 통계정보를 만들지 설계할 수 있음
Cloudwatch가 반환하는 결과를 필터링하는 목적
ex) InstanceID : EC2인스턴스에 대한 정보를 얻을때 필터링할 기준
만약에, 차원을 지정하지 않으면 Cloudwatch가 지정된 지표에 대한 모든 데이터를 수집하고, 통계정보만듬
(Custom Metric에 대해서는 차원간 데이터 수집x)
*차원조합
차원이 다르면, 다른 지표로 처리함
CloudWatch는 각각의 고유한 차원의 조합을 별도의 지표로 처리
4) Statistics (통계)
지정한 기간(Period)동안 수집한 datapoint로 '어떤값'을 산출할것인가!
- Minimum : 지정한 기간동안 수집한 datapoint 중 가장 작은 값
- Maximum : 지정한 기간동안 수집한 datapoint 중 가장 큰 값
- Sum : 지정한 기간동안 수집한 datapoint들의 합계
- SampleCount : 지정한 기간동안 수집한 datapoint들의 총 개수
- Average : Sum/SampleCount값
5) Unit (단위)
통계에 대한 측정단위
Bytes, Seconds, Count 및 Percent
Custom Metric을 만들때 지정하지 않으면 None 단위로 사용
6) Period (기간)
통계정보를 만들기 위해 얼마동안 datapoint를 수집할 것인가
지정한 기간동안 수집한 datapoint를 가지고 통계정보를 만듬
초단위
최소1초, 최대 1일(86400초) 기본값 60초
7) 지표보존기간
Period (기간)이 60초미만 : 3시간동안 보존
Period (기간)이 60초 : 15일동안 사용
Period (기간)이 5분 : 63일동안 사용
Period (기간)이 1시간 : 15개월동안 사용
8) 백분위수
Custom Metric 생성 (Amazon Linux2)
1) 패지키 설치(perl)
sudo yum install -y perl-Switch perl-DateTime perl-Sys-Syslog perl-LWP-Protocol-https perl-Digest-SHA.x86_64
2) perl 스크립트 다운
curl https://aws-cloudwatch.s3.amazonaws.com/downloads/CloudWatchMonitoringScripts-1.2.2.zip -O
3) perl 스크립트 설치
unzip CloudWatchMonitoringScripts-1.2.2.zip && \
rm CloudWatchMonitoringScripts-1.2.2.zip && \ cd aws-scripts-mon
4) 모니터링 스크립트 파일구조
awscreds.template : 액세스키 ID 및 보안액세스 키 저장하는 AWS Credentail 파일 템플릿
CloudWatchClient.pm : 다른스크립트에서 Cloudwatch 호출하기 위한 perl모듈
mon-get-instance-stats.pl : Cloudwatch에 쿼리해서 스크립트가 실행된 ec2 인스턴스에 대한 최신 통계값
mon-put-instance-data.pl : AWS 인스턴스에 대한 시스템지표(메모리,스왑,디스크사용률)를 수집해서 CW 한테 전송
5) mon-put-instance-data.pl 실행
옵션
- --mem-util : MemoryUtilization 측정치를 수집 (%단위)
- --mem-used : MemoryUsed 측정치 수집(MB 단위)
- --mem-avail : MemoryAvailable 측정치를 수집(MB 단위)
- --mem-used-incl-cache-buff : MemoryUtilization/MemoryUsed/MemoryAvailable 측정치 수집할 때 캐시 및 버퍼메모리 사용량까지 포함해서 수집한다 옵션
- --swap-util : SwapUtilization 측정치를 수집(%단위)
- --swap-used : SwapUsed 측정치를 수집(MB 단위)
Q. 근데 실제로 proc/meminfo에서 확인한 측정치랑 왜 다르지
사전에 aws configure로 access-key / sercret-key 입력
(1) 메모리 Metric
IAM 롤 추가
참고
AWS 공식문서
https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/mon-scripts.html#mon-scripts-permissions
'🌴 DevOps > Cloud' 카테고리의 다른 글
[ACM] 사설인증서 발급(OpenSSL) 및 CloudFront 적용 (0) | 2020.05.27 |
---|---|
[ACM] 공인인증서 발급 및 CloudFront 적용 (0) | 2020.05.26 |
[ACM] SSL인증서 개념 및 CA인증기관 (0) | 2020.05.26 |
[VPC] VPC Peering 개념정리 및 테스트 (0) | 2020.05.11 |
[AutoScaling] Amazon EC2 Auto Scaling 개념 및 life cycle (0) | 2020.04.30 |
[EC2] 인스턴스 상태검사-시스템상태/인스턴스상태 (0) | 2020.04.15 |