Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
CloudWatch 성능 모니터링과
신속한 대응을 위한 노하우
Seon Yong Park, Solutions Architect
내용
1. CloudWatch	
  
2. CloudWatch	
  Deep	
  Dive	
  
3. 운영 관련 FAQs	
  
측정할 수 없고 수치로 표현할 수 없다면 그 지식은 불완전하고 불만족스러운 것이다.	
  	
  
– 윌리엄 톰슨 (켈빈)	
  -­‐	
  	
  
CloudWatch
Amazon CloudWatch
아마존 웹 서비스
당신의 측정값
당신의 로그
CloudWatch
AWS CloudWatch
§ AWS 모니터링 하는 서비스
§ 300+ built-in 지표
§ 본인의 커스텀 지표 등록 가능
§ 지표에 대한 경고발생
§ 로그의 억세스&아카이브 중앙화 된 서비스
CloudWatch
AWS의 각종 리소스를 감시 하는 서비스	
  
	
  
•  AWS 리소스의 생사, 성능, 로그의 감시/감독	
  
•  대상 지표에 대한 그래프를 통한 가시화	
  
•  각종 지표에 기반한 알람...
CloudWatch
AWS	
  서비스	
   네임스페이스	
  
Auto	
  Scaling	
   AWS/AutoScaling	
  
AWS	
  Billing	
   AWS/Billing	
  
Amazon	
  ...
CloudWatch 기본 관리 구조
Metrics	
  
Namespace	
  
Metrics	
  name	
  
(CPUUGlizaGon)	
  
Metrics	
  name	
  
(HealthyHostCount...
CloudWatch 기본 관리 구조
Metrics	
  
Namespace	
  
Metrics	
  name	
  
(CPUUGlizaGon)	
  
Metrics	
  name	
  
(HealthyHostCount...
CloudWatch 기본 관리 구조
Metrics	
  
Namespace	
  
Metrics	
  name	
  
(CPUUGlizaGon)	
  
Metrics	
  name	
  
(HealthyHostCount...
지표 밑의 대상 서
비스는 리전에 생
성한 것만 나옴	
  
대상 서비스와 지표 검색	
  
인스턴스 리스트	
  
차원	
  (Dimension)	
  
통계	
   그래프 표시기준 설정	
  
CloudWatch 지표
CPUUGlizaGon	
   	
  	
  
CPUCreditBalance	
   	
  	
  
CPUCreditUsage	
   	
  	
  
DiskReadBytes	
   	
  	
...
CloudWatch 커스텀 지표
표준 지표가 아닌 자신의 지표를 모니터링 하는 기능	
  
•  AWS	
  CLI의 "put-­‐metric-­‐data",	
  API	
  Tools의 "mon-­‐put-­‐dat...
CloudWatch 지표값
CloudWatch에서 보이는 정보는 “통계값”이다.	
  
•  지표 데이터를 지정한 기간으로 집약한 것	
  
•  각 지표에 따라 적합한 통계 값을 보는 것이 중요	
  
단순 등록	
 ...
CloudWatch – 관리형 서비스 감시
ELB	
   RDS	
  
•  Latency	
  
•  BackendConnecGonErrors	
  
•  HealthyHostCount	
  
•  UnHealthyH...
CloudWatch – 알람 설정
OK	
  
알람	
  
(Alarm)	
  
부족	
  
(INSUFFICIENT)	
  
정의 된 임계값을 밑돌고
있다	
  
(정상값)	
  
정의 된 임계값을 웃 돌고
있다	
 ...
CloudWatch 액션 기능
Custom	
  Metric	
  
Memory	
  Free/Filesystem	
  Free	
  
OS	
  Log/ApplicaGon	
  Log	
  
StatusCheckFai...
측정할 수 없다면 관리할 수 없다는 것이고, 관리하기를 원한다면 반드시 측정하라.	
  
-­‐ 피터 드러커 -­‐	
  	
  
CloudWatch Deep Dive
Elastic Load Balancer 지표
ELB	
  
지표	
   의미	
  
RequestCount	
   완료된 요청/연결된 커넥션의 일정 시간당(1	
  or	
  5분)갯수.	
  HTTP 에러 메
시지도 ...
EC2 지표
EC2	
  
지표	
   의미	
  
CPUCreditUsage	
   (T2	
  타임만)	
  특정 기간동안 사용된 CPU	
  크레딧 갯수	
  
CPUUGlizaGon	
   현재 인스턴스에서 사용...
RDS 지표
RDS	
  
지표	
   의미	
  
BinLogDiskUsage	
   바이너리 로그에 의해 점유되는 디스크 량	
  
현재 인스턴스에서 사용하고 있는 컴퓨팅 파워	
  
DiskQueueDepth	
 ...
CloudWatch Logs
CloudWatch Logs
§  CloudWatch	
  Logs를 사용한 로그 모니터링	
  
§  OS,	
  응용 프로그램의 로그등을 모니터링 할 수 있음	
  
§  에이전트를 통해 로그 메시지를 Clou...
CloudWatch Logs 사용 개념도
Amazon	
  Linux	
   Ubuntu	
  
Windows	
   REHEL	
  
Log	
  Agent	
   Log	
  Agent	
  
Log	
  Agent...
CloudWatch Logs 사용 개념도
Log	
  Group	
  
웹서버	
  
Log	
  Stream	
  
web001.ap-­‐northeast-­‐1	
  
web002.ap-­‐northeast-­‐1	...
로그 모니터링
로그는 타임 스탬프와 로그 메시지(UTF-­‐8)로 구성	
  
로그 클라이언트
§  리눅스 : 텍스트 로그 	
  
-­‐  CloudWatch	
  Logs	
  Agent	
  
§  윈도우 : 텍스트 로그, 윈도우 이벤트로그, 성능 카운터	
  
-­‐  EC2	
  Co...
리눅스 로그 에이전트
§  CloudWatch	
  Logs	
  Agent	
  
•  로그 데이터를 CloudWatch	
  Logs에 올리는 AWS	
  CLI플러그인	
  
•  AWS	
  logs	
  pu...
로그 에이전트 주의사항
§  전송가능 로그 메시지의 길이 제한	
  
•  로그 에이전트가 1회 푸시할 수 있는 로그 레코드의 크기는 최대 32	
  KB	
  
•  32KB가 넘으면 로그가 잘라 짐	
  
	
  ...
윈도우 : CloudWatch logs설정
§  EC2Config	
  에서 CloudWatch	
  Logs설정	
  
•  JSON 설정 파일을 편집하여 수집하려는 지표를 설정	
  
•  C	
  :	
  	
  ...
커스텀 지표 확인
CloudWatch Logs 지표 필터
로그 이벤트에 특정 문자열를 필터링 할 수 있다	
  
CloudWatch Logs 지표 필터
특정 문자열의 빈도에 따라 알람 작성이 가능	
  
지표 필터에서 작성.	
  SNS	
  연계 가능.	
  
지표 필터가 트리거가 된 CloudWatch	
  알람 작
성이 가능...
지표 필터 예
§  필터 예	
  
[ip,	
  user,	
  username,	
  Gmestamp,	
  request,	
  status_code,	
  bytes	
  >	
  1000]	
  	
  
[i...
CloudWatch를 통한 시스템 운영 자동화
RDS	
  
CloudTrail	
  
VPC	
  Flow	
  Logs	
  
EC2	
  
agent	
  
CloudWatch	
  
Logs	
  
CloudWa...
CloudWatch를 사용한 시스템 자동화 예
§  IAM	
  설정 변경에 대한 경고를 수신	
  
§  AWS	
  계정의 루트 엑세스 키를 사용했을 때 통지	
  
§  CloudWatch	
  Logs	
 ...
CloudWatch custom dashboard
§  CloudWatch	
  지표에 대해 사용자가 지정하는 대시보드 생성 기능	
  
§  여러 대시보드 별로 복수의 지표를 다양하게 묶어서 볼 수 있음	
  
§...
Custom dashboard
대시보드 지정 이름으로 생성	
  
위젯 타입을 선택	
  
Custom dashboard
지표를 선택	
  
Custom dashboard
커스텀 대쉬보드 (예)	
  
하면 된다는 말은 거짓이다. 그러나 안 하면 아무것도 되지 않는 다는 말은 불변의 진리이다
.	
  
-­‐ 퓰리처 -­‐	
  
운영관련 FAQs
FAQ 1. EC2 인스턴스 연결 상태 체크가 failed로 나와요
다음과 같은 동작을 해보세요.	
  
	
  
1.  인스턴스를 stop/start 해보세요	
  
2.  Ephemeral	
  disk의 정보는 사...
FAQ 2. MySQL read replication이 느려요 (MySQL on EC2)
	
  
1.  읽기 복제 되는 인스턴스는 마스터 인스턴스 보다 좀 더 큰 인스턴스로 해야 함	
  
2.  원본 DB	
  인스...
FAQ 2. MySQL read replication이 느려요
§  MySQL복제 메카니즘 	
  
•  마스터 로그에서 바이너리를 읽어와서(IO_THREAD),	
  relay	
  log파일에 저장 	
  
•  ...
FAQ 2. MySQL read replication이 느려요
§  파라미터	
  
•  Read_Master_Log_Pos	
  :	
  IO	
  쓰레드가 읽고 있는 마스터 바이너리 로그의 위치	
  
•  Exe...
FAQ 3. 윈도우 서버의 TCP/IP연결 문제를 어떻게 해결하나요?
1.  Rogue	
  DNS	
  server	
  :	
  	
  클라이언트가 신뢰할 수 없는 DNS서버로 부터 정보를 받는 다면, 그 정
보를 ...
FAQ 4. EBS 볼륨의 퍼포먼스를 최적화 하고 싶어요
1.  EBS	
  볼륨 최적화에 적합한 EC2	
  인스턴스 타입인지 확인	
  
2.  EBS-­‐opGmized	
  EC2는 볼륨에 대한 전용 네트워크 출...
AWS Knowledge center
h[ps://aws.amazon.com/ko/premiumsupport/knowledge-­‐center/	
  
	
  
Thank you!
Seon Yong Park, AWS Solutions Architect
seonpark@amazon.com
Upcoming SlideShare
Loading in …5
×

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

8,266 views

Published on

2016년 1월 7일 AWS Cloud행사에서 박선용 솔루션즈 아키텍트 께서 발표하신 “ CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 “ 발표자료입니다.

Published in: Technology
  • Be the first to comment

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

  1. 1. CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 Seon Yong Park, Solutions Architect
  2. 2. 내용 1. CloudWatch   2. CloudWatch  Deep  Dive   3. 운영 관련 FAQs  
  3. 3. 측정할 수 없고 수치로 표현할 수 없다면 그 지식은 불완전하고 불만족스러운 것이다.     – 윌리엄 톰슨 (켈빈)  -­‐     CloudWatch
  4. 4. Amazon CloudWatch 아마존 웹 서비스 당신의 측정값 당신의 로그
  5. 5. CloudWatch
  6. 6. AWS CloudWatch § AWS 모니터링 하는 서비스 § 300+ built-in 지표 § 본인의 커스텀 지표 등록 가능 § 지표에 대한 경고발생 § 로그의 억세스&아카이브 중앙화 된 서비스
  7. 7. 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  
  8. 8. 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/AmazonClo udWatch/latest/DeveloperGuide/supported_se rvices.html  
  9. 9. CloudWatch 기본 관리 구조 Metrics   Namespace   Metrics  name   (CPUUGlizaGon)   Metrics  name   (HealthyHostCount)   Metrics  name   (CPUUGlizaGon)   Namespace   (AWS/EC2)   Namespace   (AWS/RDS)   Namespace   (AWS/ELB)   Metrics  :   시계열로 표시되 는 측정 데이터   Namespace  :   AWS서비스의 구 분자  
  10. 10. 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)  
  11. 11. 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  
  12. 12. 지표 밑의 대상 서 비스는 리전에 생 성한 것만 나옴   대상 서비스와 지표 검색   인스턴스 리스트   차원  (Dimension)   통계   그래프 표시기준 설정  
  13. 13. CloudWatch 지표 CPUUGlizaGon       CPUCreditBalance       CPUCreditUsage       DiskReadBytes       DiskWriteBytes       DiskWriteOps       NetworkOut       NetworkIn       StatusCheckFailed_Instance       StatusCheckFailed       StatusCheckFailed_System   커스텀 지표  표준 지표(EC2)   사용자가 임의로 수집하려는 표준 지표에 는 없는 지표  
  14. 14. 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         단순 등록   통계 세트 등록  
  15. 15. CloudWatch 지표값 CloudWatch에서 보이는 정보는 “통계값”이다.   •  지표 데이터를 지정한 기간으로 집약한 것   •  각 지표에 따라 적합한 통계 값을 보는 것이 중요   단순 등록   통계 세트 등록   통계 세트 등록   통계   설명   Minimum   특정 기간 동안에서의 측정된 가장 낮은 값. 이 값을 사용해서 응용 프로그램의 낮은 용량 활동을 확인할 수 있음.   Maximum   특정 기간 동안에서의 측정된 가장 높은 값. 이 값을 사용해서 응용 프로그램의 높음 용량활동을 확인할 수 있음.   Sum   해당 지표에 가산 된 모든 합계. 이 통계는 지표의 총 용량을 결정하는데 도움이 됨.   Average   지정 기간 Sum/SampleCount  값. 이 통계를 Maximun,  Minimum과 비교하여 지표의 특성을 파악하고, 평균 사용량이 최대치와 최 소치 중 어느쪽에 가까운지 확인할 수 있음. 이러한 비교는 필요에 따라 언제 자원을 증감할 것인가 아는데 도움이 됨.   SampleCount   통계 계산에 사용되는 데이터의 포인트 개수   데이터 저장은 2주까지   •  2주 이상 저장하는 경우 get-­‐metric-­‐staGsGcs  에서 데이터를 검색해서 다른 장소로 보관   데이터 시간 간격은 최소 1분   •  다수의 서비스에서 1분 간격. 5분 인 경우도 있다.  
  16. 16. 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  
  17. 17. CloudWatch – 알람 설정 OK   알람   (Alarm)   부족   (INSUFFICIENT)   정의 된 임계값을 밑돌고 있다   (정상값)   정의 된 임계값을 웃 돌고 있다   (비정상값)   데이터가 부족해서 상태를 판정할 수 없다   (판정 불가)  
  18. 18. 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   모니터링   액션  
  19. 19. 측정할 수 없다면 관리할 수 없다는 것이고, 관리하기를 원한다면 반드시 측정하라.   -­‐ 피터 드러커 -­‐     CloudWatch Deep Dive
  20. 20. Elastic Load Balancer 지표 ELB   지표   의미   RequestCount   완료된 요청/연결된 커넥션의 일정 시간당(1  or  5분)갯수.  HTTP 에러 메 시지도 포함된다.  유용한 통계값은 sum임.  min,  max,  average는 모두 1 을 리턴한다   SurgeQueueLength   라우팅이 지연되고 있는 요청의 총 갯수.  ELB는 현재 건강한 인스턴스에 대해 요청을 보내기 전에 큐에 적재를 한다. 큐의 최대 길이는 1024임. 큐가 가득 차게 되면 요청은 거부된다. 유용한 통계값은 max(큐 리퀘스 트 피크 확인 가능)   SpilloverCount   위의 서지 큐가 가득 차서 거부된 요청의 총 갯수.  유용한 통계값은 sum   BackendConnecGonEr rors   ELB와 등록된 인스턴스간에 성공적으로 커넥션이 맺어지지 않은 숫자.   ELB는 연결이 실패되면 다시 연결을 시도하므로, 이 숫자는 요청갯수보 다 높을 수 있다.  유용한 통계값은 sum   Latency   요청을 받은 이후에,  ELB가 요청을 인스턴스에 보낸 이후에 받을 때까지 의 지연 시간.  유용한 통계값은 average.  max는 어떤 리퀘스트가 평균값 을 넘었는지 확인  
  21. 21. EC2 지표 EC2   지표   의미   CPUCreditUsage   (T2  타임만)  특정 기간동안 사용된 CPU  크레딧 갯수   CPUUGlizaGon   현재 인스턴스에서 사용하고 있는 컴퓨팅 파워   DiskReadOps   해당 인스턴스에 연결된 모든 로컬 디스크에서 읽어들인 오퍼레이션의 수. 만약 EBS볼륨을 사용한다면 EBS  지표를 봐야 함.   NetworkOut   인스턴스의 네트워크 인터페이스를 통해 나간 바이트 량.   StatusCheckFailed   StatusCheckFailed_Instance와 StatusCheckFailed_System 의 결합된 값. 어느쪽이라도 실패하면 1(실패),  0(패스)   차원(Dimension)   의미   AutoscalingGroupName   이 차원 필터를 이용하면 유저는 오토스케일링 그룹에 묶여있는 모 든 인스턴스를 대상으로 값을 볼 수 있다.   ImageId   동일한 EC2  AMI에 기반해서 돌고 있는 모든 인스턴스에 대해 필터 링   InstanceType   인스턴스 타입으로 필터링  
  22. 22. RDS 지표 RDS   지표   의미   BinLogDiskUsage   바이너리 로그에 의해 점유되는 디스크 량   현재 인스턴스에서 사용하고 있는 컴퓨팅 파워   DiskQueueDepth   디스크에 억세스하려고 대기중인 IO들의 갯수   ReplicaLag   MySQL 읽기 복제시. 원본 DB에서 복제 DB로 데이터 복제가 지연되고 있는 시간(초)   ReadLatency/ WriteLatency   Disk  I/O  조작에서 걸리는 시간의 평균(초)   차원(Dimension)   의미   DatabaseClass   예를 들어,  db.m1.small 등 데이터베이스 클래스로 필터링   EngineName   엔진이름으로 필터링. 예를 들어 mysql  
  23. 23. CloudWatch Logs
  24. 24. CloudWatch Logs §  CloudWatch  Logs를 사용한 로그 모니터링   §  OS,  응용 프로그램의 로그등을 모니터링 할 수 있음   §  에이전트를 통해 로그 메시지를 CloudWatch 엔드 포인트에 전송   §  로그 데이터의 보존 기간은 설정 가능   §  1일 ~ 영구 보존으로 선택 가능  
  25. 25. CloudWatch Logs 사용 개념도 Amazon  Linux   Ubuntu   Windows   REHEL   Log  Agent   Log  Agent   Log  Agent  EC2  config   CloudWatch  지표  CloudWatch  Logs   CloudWatch  알람   SNS  
  26. 26. CloudWatch Logs 사용 개념도 Log  Group   웹서버   Log  Stream   web001.ap-­‐northeast-­‐1   web002.ap-­‐northeast-­‐1   web003.ap-­‐northeast-­‐1   Log  Event  
  27. 27. 로그 모니터링 로그는 타임 스탬프와 로그 메시지(UTF-­‐8)로 구성  
  28. 28. 로그 클라이언트 §  리눅스 : 텍스트 로그   -­‐  CloudWatch  Logs  Agent   §  윈도우 : 텍스트 로그, 윈도우 이벤트로그, 성능 카운터   -­‐  EC2  Config   §  기타   -­‐  AWS  CLI   -­‐  AWS  SDK   -­‐  3rd  파티 툴 (fluentd  등)  
  29. 29. 리눅스 로그 에이전트 §  CloudWatch  Logs  Agent   •  로그 데이터를 CloudWatch  Logs에 올리는 AWS  CLI플러그인   •  AWS  logs  push 명령을 실행하는 데몬형 스크립트   •  설치 및 구성이 필요   •  적용 대상 EC2  인스턴스에는 롤을 추가해 준다     §  지원 플랫 폼   •  Amazon  Linux   •  Ubuntu  Server   •  CentOS   •  Red  Hat  Enterprise  Linux  
  30. 30. 로그 에이전트 주의사항 §  전송가능 로그 메시지의 길이 제한   •  로그 에이전트가 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가 작성되는 경우  
  31. 31. 윈도우 : CloudWatch logs설정 §  EC2Config  에서 CloudWatch  Logs설정   •  JSON 설정 파일을 편집하여 수집하려는 지표를 설정   •  C  :    Program  Files    Amazon    Ec2ConfigService    Se pngs  AWS.EC2.Windows.CloudWatch.json  파일을   편집   §  수집할 로그를 설정   •  윈도우즈 이벤트 로그   •  텍스트 기반로그   •  IIS  로그   •  성능 카운터  
  32. 32. 커스텀 지표 확인
  33. 33. CloudWatch Logs 지표 필터 로그 이벤트에 특정 문자열를 필터링 할 수 있다  
  34. 34. CloudWatch Logs 지표 필터 특정 문자열의 빈도에 따라 알람 작성이 가능   지표 필터에서 작성.  SNS  연계 가능.   지표 필터가 트리거가 된 CloudWatch  알람 작 성이 가능  
  35. 35. 지표 필터 예 §  필터 예   [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    
  36. 36. CloudWatch를 통한 시스템 운영 자동화 RDS   CloudTrail   VPC  Flow  Logs   EC2   agent   CloudWatch   Logs   CloudWatch   AutoScaling   SQS   SNS   Kinesis   Kinesis     ApplicaGon   Lambda   EC2   §  액션/통보   •  전화   •  모바일 푸쉬   •  채팅   •  이메일   •  응용 프로그램 피드백   •  인프라 복구/확장  
  37. 37. CloudWatch를 사용한 시스템 자동화 예 §  IAM  설정 변경에 대한 경고를 수신   §  AWS  계정의 루트 엑세스 키를 사용했을 때 통지   §  CloudWatch  Logs  SubscripGon을 이용 Zabbix에 로그 전송   §  경보 발생시 AWS  Lambda를 사용하여 음성 전화 걸기   §  Auto  Scaling에 의한 자동 복구   §  Amazon  ECS의 도커 컨테이너를 Lambda로 Auto  Scaling과 연결   §  VPF  Flow  logs를 ElasGcsearch  +  Kibaba  로 시각화    
  38. 38. CloudWatch custom dashboard §  CloudWatch  지표에 대해 사용자가 지정하는 대시보드 생성 기능   §  여러 대시보드 별로 복수의 지표를 다양하게 묶어서 볼 수 있음   §  텍스트, 이미지 등으로 표현 가능   §  여러 리전의 정보를 가져와서 하나의 대시보드에 구성할 수도 있음    
  39. 39. Custom dashboard 대시보드 지정 이름으로 생성   위젯 타입을 선택  
  40. 40. Custom dashboard 지표를 선택  
  41. 41. Custom dashboard 커스텀 대쉬보드 (예)  
  42. 42. 하면 된다는 말은 거짓이다. 그러나 안 하면 아무것도 되지 않는 다는 말은 불변의 진리이다 .   -­‐ 퓰리처 -­‐   운영관련 FAQs
  43. 43. FAQ 1. EC2 인스턴스 연결 상태 체크가 failed로 나와요 다음과 같은 동작을 해보세요.     1.  인스턴스를 stop/start 해보세요   2.  Ephemeral  disk의 정보는 사라집니다.   3.  EC2가 스스로 문제를 해결할 때까지 잠시 기다려 보세요.     4.  서포트 티켓을 끊어서, 서포트 요청을 합니다.  
  44. 44. FAQ 2. MySQL read replication이 느려요 (MySQL on EC2)   1.  읽기 복제 되는 인스턴스는 마스터 인스턴스 보다 좀 더 큰 인스턴스로 해야 함   2.  원본 DB  인스턴스와 읽기 전용 복제본에 사용되는 DB  파라미터 그룹의 설정이 서로 호환되는지 확인합니다.   3.  읽기 전용 복제본의 Max_allowed_packet  파라미터 값이 원본 DB인스턴스의 Max_allowed_packet값 보다 작은 경우 복제 오류 가능성  
  45. 45. 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   명령으로 마스터와 슬레이브의 상태값 확인      
  46. 46. 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보다 오래 걸리는 쿼리를 로깅.    
  47. 47. 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  
  48. 48. 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-­‐w indows-­‐performance-­‐monitor-­‐perfmon.aspx     4.  AWS  trusted  advisor를 이용해서 EBS볼륨에 대한 조언을 확인할 것.    
  49. 49. AWS Knowledge center h[ps://aws.amazon.com/ko/premiumsupport/knowledge-­‐center/    
  50. 50. Thank you! Seon Yong Park, AWS Solutions Architect seonpark@amazon.com

×