cloudwatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈...

50
CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 Seon Yong Park, Solutions Architect

Upload: amazon-web-services-korea

Post on 27-Jan-2017

2.099 views

Category:

Technology


6 download

TRANSCRIPT

Page 1: CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming

CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 Seon Yong Park, Solutions Architect

Page 2: CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming

내용

1. CloudWatch  

2. CloudWatch  Deep  Dive  

3. 운영 관련 FAQs  

Page 3: CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming

측정할 수 없고 수치로 표현할 수 없다면 그 지식은 불완전하고 불만족스러운 것이다.    

– 윌리엄 톰슨 (켈빈)  -­‐    

CloudWatch

Page 4: CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming

Amazon CloudWatch

아마존 웹 서비스

당신의 측정값

당신의 로그

Page 5: CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming

CloudWatch

Page 6: CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming

AWS CloudWatch § AWS 모니터링 하는 서비스 § 300+ built-in 지표 § 본인의 커스텀 지표 등록 가능 § 지표에 대한 경고발생 § 로그의 억세스&아카이브 중앙화 된 서비스

Page 7: CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming

CloudWatch AWS의 각종 리소스를 감시 하는 서비스    

•  AWS 리소스의 생사, 성능, 로그의 감시/감독  •  대상 지표에 대한 그래프를 통한 가시화  •  각종 지표에 기반한 알람 서비스  

Custom  Metric  Memory  Free/Filesystem  Free  

OS  Log/ApplicaGon  Log  

StatusCheckFailed_Instance  StatusCheckFailed_System  

CUPUGlizaGon  DiskReadBytes  /  DiskReadOps  NetworkIn  /  NetworkOut  

EC2  AcGon  

AutoScaling  

NoGficaGon  

Alram  

Page 8: CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming

CloudWatch AWS  서비스   네임스페이스  

Auto  Scaling   AWS/AutoScaling  AWS  Billing   AWS/Billing  Amazon  CloudFront   AWS/CloudFront  Amazon  CloudSearch   AWS/CloudSearch  Amazon  DynamoDB   AWS/DynamoDB  Amazon  ElasGCache   AWS/ElasGCache  Amazon  ElasGc  Block  Store   AWS/EBS  Amazon  ElasGc  Compute  Cloud   AWS/EC2  ElasGc  Load  Balancing   AWS/ELB  Amazon  ElasGc  MapReduce   AWS/ElasGcMapReduce  Amazon  Kinesis   AWS/Kinesis  Amazon  Machine  Learning   AWS/ML  AWS  OpsWorks   AWS/OpsWorks  Amazon  RedshiV   AWS/RedshiV  

AWS  서비스   네임스페이스  

Amazon  RelaGonal  Database  Service   AWS/RDS  Amazon    Route    53     AWS/Route53  Amazon    Simple  NoGficaGon  Service     AWS/SNS  Amazon    Simple  Queue  Service     AWS/SQS  Amazon    Simple  Workflow  Service     AWS/SWF  AWS    Storage    Gateway     AWS/StorageGateway  Amazon      WorkSpaces     AWS/WorkSpaces  Amazon  RelaGonal  Database  Service     AWS/RDS  Amazon    Route    53   AWS/Route53  Amazon    Simple  NoGficaGon  Service   AWS/SNS  

h[p://docs.aws.amazon.com/ko_kr/AmazonCloudWatch/latest/DeveloperGuide/supported_services.html  

Page 9: CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming

CloudWatch 기본 관리 구조

Metrics  

Namespace  Metrics  name  (CPUUGlizaGon)  

Metrics  name  (HealthyHostCount)  

Metrics  name  (CPUUGlizaGon)  

Namespace  (AWS/EC2)  

Namespace  (AWS/RDS)  

Namespace  (AWS/ELB)  

Metrics  :  시계열로 표시되는 측정 데이터  

Namespace  :  AWS서비스의 구분자  

Page 10: CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming

CloudWatch 기본 관리 구조

Metrics  

Namespace  Metrics  name  (CPUUGlizaGon)  

Metrics  name  (HealthyHostCount)  

Metrics  name  (CPUUGlizaGon)  

Namespace  (AWS/EC2)  

Namespace  (AWS/RDS)  

Namespace  (AWS/ELB)  

Dimension  

Dimension  :  지표를 고유하게 실별 할 수 있도록 하는 이름과 값의 페어  

Dimension  (InstanceId)   Dimension  

(AutoscalingGroup)  

Page 11: CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming

CloudWatch 기본 관리 구조

Metrics  

Namespace  Metrics  name  (CPUUGlizaGon)  

Metrics  name  (HealthyHostCount)  

Metrics  name  (CPUUGlizaGon)  

Namespace  (AWS/EC2)  

Namespace  (AWS/RDS)  

Namespace  (AWS/ELB)  

Dimension  

Dimension  (InstanceId)   Dimension  

(AutoscalingGroup)  

Sum  

Max  

Min  

Average  

Sample  Count  

StaGsGc  

Page 12: CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming

지표 밑의 대상 서비스는 리전에 생성한 것만 나옴  

대상 서비스와 지표 검색  

인스턴스 리스트  

차원  (Dimension)  

통계   그래프 표시기준 설정  

Page 13: CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming

CloudWatch 지표

CPUUGlizaGon      CPUCreditBalance      CPUCreditUsage      DiskReadBytes      DiskWriteBytes      DiskWriteOps      NetworkOut      NetworkIn      StatusCheckFailed_Instance      StatusCheckFailed      StatusCheckFailed_System  

커스텀 지표  표준 지표(EC2)  

사용자가 임의로 수집하려는 표준 지표에는 없는 지표  

Page 14: CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming

CloudWatch 커스텀 지표 표준 지표가 아닌 자신의 지표를 모니터링 하는 기능  

•  AWS  CLI의 "put-­‐metric-­‐data",  API  Tools의 "mon-­‐put-­‐data"또는 "PutMetricData”  API로 CloudWatch에 데이터를 등록함  

•  크기 제한으로 HTTP  GET은 8KB,  HTTP  POST는 40KB,  하나의 PutMetricData  요청에 20개의 데이터까지 가능  

•  API  호출이 병목 될 수 있음 : 사용자 정의 지표의 빈번한 등록이나 많은 데이터 취득에 주의  

 $  aws  cloudwatch  put-­‐metric-­‐data  –metric-­‐name  RequestLatency\    -­‐-­‐namespace  "GetStarted“\    -­‐-­‐Gmestamp  2014-­‐10-­‐28T12:30:00Z\    -­‐-­‐value  87  \    -­‐-­‐unit  Milliseconds\        $  aws  cloudwatch  put-­‐metric-­‐data  -­‐-­‐metric-­‐name  RequestLatency\    -­‐-­‐namespace  "GetStarted“  -­‐-­‐Gmestamp  2014-­‐10-­‐28T12:30:00Z\    -­‐-­‐staGsGc-­‐value  Sum=60,Minimum=15,Maximum=105,SampleCount=5        

단순 등록  

통계 세트 등록  

Page 15: CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming

CloudWatch 지표값 CloudWatch에서 보이는 정보는 “통계값”이다.  

•  지표 데이터를 지정한 기간으로 집약한 것  •  각 지표에 따라 적합한 통계 값을 보는 것이 중요  

단순 등록  

통계 세트 등록  통계 세트 등록  

통계   설명  Minimum   특정 기간 동안에서의 측정된 가장 낮은 값. 이 값을 사용해서 응용 프로그램의 낮은 용량 활동을 확인할 수 있음.  

Maximum   특정 기간 동안에서의 측정된 가장 높은 값. 이 값을 사용해서 응용 프로그램의 높음 용량활동을 확인할 수 있음.  

Sum   해당 지표에 가산 된 모든 합계. 이 통계는 지표의 총 용량을 결정하는데 도움이 됨.  

Average   지정 기간 Sum/SampleCount  값. 이 통계를 Maximun,  Minimum과 비교하여 지표의 특성을 파악하고, 평균 사용량이 최대치와 최소치 중 어느쪽에 가까운지 확인할 수 있음. 이러한 비교는 필요에 따라 언제 자원을 증감할 것인가 아는데 도움이 됨.  

SampleCount   통계 계산에 사용되는 데이터의 포인트 개수  

데이터 저장은 2주까지  •  2주 이상 저장하는 경우 get-­‐metric-­‐staGsGcs  에서 데이터를 검색해서 다른 장소로 보관  

데이터 시간 간격은 최소 1분  •  다수의 서비스에서 1분 간격. 5분 인 경우도 있다.  

Page 16: CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming

CloudWatch – 관리형 서비스 감시

ELB   RDS  

•  Latency  •  BackendConnecGonErrors  •  HealthyHostCount  •  UnHealthyHostCount  •  RequestCount  •  SurgeQueueLength  •  SpilloverCount  •  HTTPCode_ELB_5XX  •  HTTPCode_Backend_4XX  

h[p://docs.aws.amazon.com/ko_kr/ElasGcLoadBalancing/latest/DeveloperGuide/elb-­‐cloudwatch-­‐metrics.html  h[p://docs.aws.amazon.com/ko_kr/AmazonCloudWatch/latest/DeveloperGuide/rds-­‐metricscollected.html  

•  CPUUGlizaGon  •  FreeableMemory  •  SwapUsage  •  FreeStorageSpace  •  DiskQueueDepth  •  ReadIOPS  •  ReadThroughput  •  ReadLatency  •  NetworkReceiveThroughput  •  NetworkTransmitThroughput  •  WriteIOPS  •  WriteThroughput  •  WriteLatency  •  DatabaseConnecGons  •  BinLogDiskUsage  

Page 17: CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming

CloudWatch – 알람 설정

OK   알람  (Alarm)  

부족  (INSUFFICIENT)  

정의 된 임계값을 밑돌고 있다  (정상값)  

정의 된 임계값을 웃 돌고 있다  (비정상값)  

데이터가 부족해서 상태를 판정할 수 없다  (판정 불가)  

Page 18: CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming

CloudWatch 액션 기능

Custom  Metric  Memory  Free/Filesystem  Free  

OS  Log/ApplicaGon  Log  

StatusCheckFailed_Instance  StatusCheckFailed_System  

CUPUGlizaGon  DiskReadBytes  /  DiskReadOps  NetworkIn  /  NetworkOut  

EC2  AcGon  

AutoScaling  

NoGficaGon  

Alram  

모니터링   액션  

Page 19: CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming

측정할 수 없다면 관리할 수 없다는 것이고, 관리하기를 원한다면 반드시 측정하라.  

-­‐ 피터 드러커 -­‐    

CloudWatch Deep Dive

Page 20: CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming

Elastic Load Balancer 지표

ELB  

지표   의미  

RequestCount   완료된 요청/연결된 커넥션의 일정 시간당(1  or  5분)갯수.  HTTP 에러 메시지도 포함된다.  유용한 통계값은 sum임.  min,  max,  average는 모두 1을 리턴한다  

SurgeQueueLength   라우팅이 지연되고 있는 요청의 총 갯수.  ELB는 현재 건강한 인스턴스에 대해 요청을 보내기 전에 큐에 적재를 한다. 큐의 최대 길이는 1024임. 큐가 가득 차게 되면 요청은 거부된다. 유용한 통계값은 max(큐 리퀘스트 피크 확인 가능)  

SpilloverCount   위의 서지 큐가 가득 차서 거부된 요청의 총 갯수.  유용한 통계값은 sum  

BackendConnecGonErrors  

ELB와 등록된 인스턴스간에 성공적으로 커넥션이 맺어지지 않은 숫자.  ELB는 연결이 실패되면 다시 연결을 시도하므로, 이 숫자는 요청갯수보다 높을 수 있다.  유용한 통계값은 sum  

Latency   요청을 받은 이후에,  ELB가 요청을 인스턴스에 보낸 이후에 받을 때까지의 지연 시간.  유용한 통계값은 average.  max는 어떤 리퀘스트가 평균값을 넘었는지 확인  

Page 21: CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming

EC2 지표

EC2  

지표   의미  

CPUCreditUsage   (T2  타임만)  특정 기간동안 사용된 CPU  크레딧 갯수  

CPUUGlizaGon   현재 인스턴스에서 사용하고 있는 컴퓨팅 파워  

DiskReadOps   해당 인스턴스에 연결된 모든 로컬 디스크에서 읽어들인 오퍼레이션의 수. 만약 EBS볼륨을 사용한다면 EBS  지표를 봐야 함.  

NetworkOut   인스턴스의 네트워크 인터페이스를 통해 나간 바이트 량.  

StatusCheckFailed   StatusCheckFailed_Instance와 StatusCheckFailed_System 의 결합된 값. 어느쪽이라도 실패하면 1(실패),  0(패스)  

차원(Dimension)   의미  

AutoscalingGroupName   이 차원 필터를 이용하면 유저는 오토스케일링 그룹에 묶여있는 모든 인스턴스를 대상으로 값을 볼 수 있다.  

ImageId   동일한 EC2  AMI에 기반해서 돌고 있는 모든 인스턴스에 대해 필터링  

InstanceType   인스턴스 타입으로 필터링  

Page 22: CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming

RDS 지표

RDS  

지표   의미  

BinLogDiskUsage   바이너리 로그에 의해 점유되는 디스크 량  

현재 인스턴스에서 사용하고 있는 컴퓨팅 파워  

DiskQueueDepth   디스크에 억세스하려고 대기중인 IO들의 갯수  

ReplicaLag   MySQL 읽기 복제시. 원본 DB에서 복제 DB로 데이터 복제가 지연되고 있는 시간(초)  

ReadLatency/WriteLatency  

Disk  I/O  조작에서 걸리는 시간의 평균(초)  

차원(Dimension)   의미  

DatabaseClass   예를 들어,  db.m1.small 등 데이터베이스 클래스로 필터링  

EngineName   엔진이름으로 필터링. 예를 들어 mysql  

Page 23: CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming

CloudWatch Logs

Page 24: CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming

CloudWatch Logs

§  CloudWatch  Logs를 사용한 로그 모니터링  

§  OS,  응용 프로그램의 로그등을 모니터링 할 수 있음  

§  에이전트를 통해 로그 메시지를 CloudWatch 엔드 포인트에 전송  

§  로그 데이터의 보존 기간은 설정 가능  

§  1일 ~ 영구 보존으로 선택 가능  

Page 25: CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming

CloudWatch Logs 사용 개념도

Amazon  Linux   Ubuntu  

Windows   REHEL  

Log  Agent   Log  Agent  

Log  Agent  EC2  config  CloudWatch  지표  CloudWatch  Logs  

CloudWatch  알람   SNS  

Page 26: CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming

CloudWatch Logs 사용 개념도 Log  Group  

웹서버  

Log  Stream  

web001.ap-­‐northeast-­‐1  

web002.ap-­‐northeast-­‐1  

web003.ap-­‐northeast-­‐1  

Log  Event  

Page 27: CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming

로그 모니터링 로그는 타임 스탬프와 로그 메시지(UTF-­‐8)로 구성  

Page 28: CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming

로그 클라이언트 §  리눅스 : 텍스트 로그  -­‐  CloudWatch  Logs  Agent  

§  윈도우 : 텍스트 로그, 윈도우 이벤트로그, 성능 카운터  -­‐  EC2  Config  

§  기타  -­‐  AWS  CLI  -­‐  AWS  SDK  -­‐  3rd  파티 툴 (fluentd  등)  

Page 29: CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming

리눅스 로그 에이전트

§  CloudWatch  Logs  Agent  •  로그 데이터를 CloudWatch  Logs에 올리는 AWS  CLI플러그인  •  AWS  logs  push 명령을 실행하는 데몬형 스크립트  •  설치 및 구성이 필요  •  적용 대상 EC2  인스턴스에는 롤을 추가해 준다  

 §  지원 플랫 폼  

•  Amazon  Linux  •  Ubuntu  Server  •  CentOS  •  Red  Hat  Enterprise  Linux  

Page 30: CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming

로그 에이전트 주의사항 §  전송가능 로그 메시지의 길이 제한  

•  로그 에이전트가 1회 푸시할 수 있는 로그 레코드의 크기는 최대 32  KB  •  32KB가 넘으면 로그가 잘라 짐  

 §  로그 로테이션 지원  

•  Rename  and  re-­‐create  ü  원래 로그에 접미어(숫자)를 붙여 rename하고 빈 로그 파일을 다시 작성  ü  예)  /var/log/syslog.log  à/var/log/syslog.log.1  로 변경  

•  Copy  and  truncate  ü  원본 로그 파일을 복사한 후 truncate  ü  예)  /var/log/syslog.log  à/var/log/syslog.log.1  로 복사되고 /var/log/syslog.log  tr

uncate  •  Create  common-­‐pa[erned  file  

ü  일반적인 패턴을 가지는 새로운 파일을 생성  ü  예)  /var/log/syslog.log.2014-­‐01-­‐01  을 남기고 /var/log/syslog.log.2014-­‐01-­‐02가 작성되는 경우  

Page 31: CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming

윈도우 : CloudWatch logs설정

§  EC2Config  에서 CloudWatch  Logs설정  •  JSON 설정 파일을 편집하여 수집하려는 지표를 설정  •  C  :  \  Program  Files  \  Amazon  \  Ec2ConfigService  \  Se

pngs\  AWS.EC2.Windows.CloudWatch.json  파일을  편집  

§  수집할 로그를 설정  •  윈도우즈 이벤트 로그  •  텍스트 기반로그  •  IIS  로그  •  성능 카운터  

Page 32: CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming

커스텀 지표 확인

Page 33: CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming

CloudWatch Logs 지표 필터 로그 이벤트에 특정 문자열를 필터링 할 수 있다  

Page 34: CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming

CloudWatch Logs 지표 필터 특정 문자열의 빈도에 따라 알람 작성이 가능  지표 필터에서 작성.  SNS  연계 가능.  

지표 필터가 트리거가 된 CloudWatch  알람 작성이 가능  

Page 35: CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming

지표 필터 예

§  필터 예  [ip,  user,  username,  Gmestamp,  request,  status_code,  bytes  >  1000]    [ip,  user,  username,  Gmestamp,  request,  status_code  =  200,  bytes]    [ip,  user,  username,  Gmestamp,  request,  status_code  =  4*,  bytes]    [ip,  user,  username,  Gmestamp,  request  =  *html*,  status_code  =  4*,  bytes]      

§  참고사항  대괄호([  ]) 혹은 작은 따옴표(“  ”)로 묶인 문자는 단일 필드로 처리됨  지표 필터는 대소 문자를 구분  

127.0.0.1  -­‐  frank  [10/Oct/2000:13:25:15  -­‐0700]  "GET  /apache_pb.gif  HTTP/1.0"  200  1534    127.0.0.1  -­‐  frank  [10/Oct/2000:13:35:22  -­‐0700]  "GET  /apache_pb.gif  HTTP/1.0"  500  5324    127.0.0.1  -­‐  frank  [10/Oct/2000:13:50:35  -­‐0700]  "GET  /apache_pb.gif  HTTP/1.0"  200  4355    

Page 36: CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming

CloudWatch를 통한 시스템 운영 자동화

RDS  

CloudTrail  

VPC  Flow  Logs  

EC2  agent  

CloudWatch  Logs  

CloudWatch  

AutoScaling  SQS  

SNS  

Kinesis   Kinesis    ApplicaGon  

Lambda  

EC2   §  액션/통보  •  전화  •  모바일 푸쉬  •  채팅  •  이메일  •  응용 프로그램 피드백  •  인프라 복구/확장  

Page 37: CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming

CloudWatch를 사용한 시스템 자동화 예 §  IAM  설정 변경에 대한 경고를 수신  

§  AWS  계정의 루트 엑세스 키를 사용했을 때 통지  

§  CloudWatch  Logs  SubscripGon을 이용 Zabbix에 로그 전송  

§  경보 발생시 AWS  Lambda를 사용하여 음성 전화 걸기  

§  Auto  Scaling에 의한 자동 복구  

§  Amazon  ECS의 도커 컨테이너를 Lambda로 Auto  Scaling과 연결  

§  VPF  Flow  logs를 ElasGcsearch  +  Kibaba  로 시각화    

Page 38: CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming

CloudWatch custom dashboard

§  CloudWatch  지표에 대해 사용자가 지정하는 대시보드 생성 기능  

§  여러 대시보드 별로 복수의 지표를 다양하게 묶어서 볼 수 있음  

§  텍스트, 이미지 등으로 표현 가능  

§  여러 리전의 정보를 가져와서 하나의 대시보드에 구성할 수도 있음    

Page 39: CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming

Custom dashboard

대시보드 지정 이름으로 생성  

위젯 타입을 선택  

Page 40: CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming

Custom dashboard

지표를 선택  

Page 41: CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming

Custom dashboard 커스텀 대쉬보드 (예)  

Page 42: CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming

하면 된다는 말은 거짓이다. 그러나 안 하면 아무것도 되지 않는 다는 말은 불변의 진리이다.  

-­‐ 퓰리처 -­‐  

운영관련 FAQs

Page 43: CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming

FAQ 1. EC2 인스턴스 연결 상태 체크가 failed로 나와요

다음과 같은 동작을 해보세요.    1.  인스턴스를 stop/start 해보세요  

2.  Ephemeral  disk의 정보는 사라집니다.  

3.  EC2가 스스로 문제를 해결할 때까지 잠시 기다려 보세요.    

4.  서포트 티켓을 끊어서, 서포트 요청을 합니다.  

Page 44: CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming

FAQ 2. MySQL read replication이 느려요 (MySQL on EC2)

 1.  읽기 복제 되는 인스턴스는 마스터 인스턴스 보다 좀 더 큰 인스턴스로 해야 함  

2.  원본 DB  인스턴스와 읽기 전용 복제본에 사용되는 DB  파라미터 그룹의 설정이 서로 호환되는지 확인합니다.  

3.  읽기 전용 복제본의 Max_allowed_packet  파라미터 값이 원본 DB인스턴스의 Max_allowed_packet값 보다 작은 경우 복제 오류 가능성  

Page 45: CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming

FAQ 2. MySQL read replication이 느려요 §  MySQL복제 메카니즘  •  마스터 로그에서 바이너리를 읽어와서(IO_THREAD),  relay  log파일에 저장  •  relay  log파일에서 이벤트를 읽어서 복제 DB에 저장(SQL_THREAD)  •  둘 중 어디에서 지연이 발생하는지 확인    §  Master  Status  와 Slave  Status  확인  

Show  Master  Status  Show  Slave  Statusg  명령으로 마스터와 슬레이브의 상태값 확인      

Page 46: CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming

FAQ 2. MySQL read replication이 느려요 §  파라미터  

•  Read_Master_Log_Pos  :  IO  쓰레드가 읽고 있는 마스터 바이너리 로그의 위치  •  Exec_Master_Log_Pos  :  SQL  쓰레드가 실행하려는 마스터 바이너리 로그의 위치.  위 값과 현저히 차이가 나면 SQL  THREAD  의 지연이 존재한다는 의미임.  

•  Seconds_Behind_Master  :  얼마나 마스터 대비 복제가 늦어지고 있는지의 값(초)  •  Relay_Log_Space  :  릴레이  로그의  크기  

 §  SQL_THREAD_LAG  

SQL_THREAD  lag  =    Read_Master_Log_Pos  –  Exec_Master_Log_Pos      

§  일반적인 진단  •  통상 IO_THREAD 로 인한 영향은 작음. 그러나 네트워크상 문제가 있는 경우 가능  •  IO_Thread  의 지연 :  네트워크의 지연을 의심  •  SQL_THREAD의 지연 :    쓰기 지연이 일어날 원인 파악. 쿼리 최적화.  log_slow_slave_sta

tements  옵션을 켜서 log_query_Gme보다 오래 걸리는 쿼리를 로깅.    

Page 47: CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming

FAQ 3. 윈도우 서버의 TCP/IP연결 문제를 어떻게 해결하나요? 1.  Rogue  DNS  server  :    클라이언트가 신뢰할 수 없는 DNS서버로 부터 정보를 받는 다면, 그 정보를 기반으로 한 서버 접근이 안 될 수 있습니다.  

 2.  윈도우 hosts파일의 정보가 틀려 있을 수 있습니다. 모든 윈도우는 먼저 호스트 파일을 참고한

이후에 또 다른 가용한 정보처를 찾게 됩니다(DNS  등)  

3.  하드웨어 오동작여부 확인  

4.  TCP/IP 포트가 블락된 경우  

5.  클라이언트 어플리케이션에서 TCP/IP가 잘못 설정된 경우  

6.  ping  –a    www.amazon.com   or    tracert  www.ubuntu.org  

7.  3rd  party  trace  tools  :  Tracetcp,  Winmtr  

Page 48: CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming

FAQ 4. EBS 볼륨의 퍼포먼스를 최적화 하고 싶어요 1.  EBS  볼륨 최적화에 적합한 EC2  인스턴스 타입인지 확인  

2.  EBS-­‐opGmized  EC2는 볼륨에 대한 전용 네트워크 출력량을 제공.      3.  볼륨 사용에 대한 툴을 사용해서 데이터를 취합할 것  

Linux  :  iostat  Output  (h[p://blog.serverfault.com/2010/07/06/777852755/)    윈도우 :  Perfmon을 사용한 디스크 레이턴시 측정  h[p://blogs.technet.com/b/askcore/archive/2012/02/07/measuring-­‐disk-­‐latency-­‐with-­‐windows-­‐performance-­‐monitor-­‐perfmon.aspx  

 4.  AWS  trusted  advisor를 이용해서 EBS볼륨에 대한 조언을 확인할 것.    

Page 49: CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming

AWS Knowledge center

h[ps://aws.amazon.com/ko/premiumsupport/knowledge-­‐center/    

Page 50: CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming

Thank you!

Seon Yong Park, AWS Solutions Architect [email protected]