🌎 CloudWatch
CloudWatch란?
- AWS에서 실행되는 자원 및 애플리케이션 모니터링
- CloudWatch Agent를 설치하여 온프레미스에서 실행되는 자원 또한 모니터링
- 로그, 지표 및 이벤트 형태로 모니터링
- 다른 서비스와 연계하여 자동화된 작업 및 트러블슈팅 등 다양한 형태로 활용 가능
CloudWatch 이점?
- 애플리케이션 및 인프라 전반에 걸쳐 단일 플랫폼에서 관찰 가능
- AWS 및 On-Prem에서 메트릭을 가장 쉽게 수집할 수 있는 방법
- 운영 성능 및 리소스 최적화 향상
- 운영 가시성 및 통찰력 확보
- 로그 수집/분석을 통한 트러블 슈팅
CloudWatch의 사용
✈️ CloudWatch Log 수집
- Amazon CloudWatch 로그 서비스를 사용하면 리소스,
애플리케이션 및 서비스의 로그를 거의 실시간으로
수집하고 저장할 수 있음
- 로그 수집 대상
- Amazon EC2 instances
- On-premises servers
- VPC Flow Logs
- AWS CloudTrail
- AWS Lambda
- Other AWS Services
- 로그 데이터는 내구성이 뛰어난 저비용 스토리지에 무한정
저장 및 액세스할 수 있으므로 하드 드라이브 용량에 대해
걱정할 필요가 없음
- 기본 지정 메트릭이 70개가 있고, 사용자가 지정해서 메트릭 수집도 가능.
- CloudWatch Container Insight를 사용하여 컨테이너형
애플리케이션 및 마이크로 서비스에서 메트릭과 로그를
수집, 집계 및 요약 가능
- 모든 Metric 저장 기간을 15개월까지 보관 (1시간 데이터 포인트일 경우)
- 간격이 60초(1분)인 데이터 포인트는 15일 동안 보관
- 기본적으로 인스턴스의 모니터링 데이터는 5분 단위로 조회 가능. 세부 모니터링을 활성화하면 1분단위로 데이터를 조회 가능.
🧳 CloudWatch를 통한 모니터링
데시보드를 통한 통합 운영 뷰
- CloudWatch 대시보드를 사용하면 재사용 가능한 그래프를 생성하고 클라우드 리소스와 애플리케이션을 통합한 뷰로 시각화 가능
고해상도 경보 (High resolution alarms)
- Amazon CloudWatch 경보를 사용하면 메트릭에 대한 임계값을 설정하고 그 값에 도달하면 특정 작업을 트리거 할 수 있음.
- 단일 메트릭 또는 수학식 결과 보기
- 메트릭 값을 기반으로 작업 수행
- SNS 토픽으로 알람 보내기
- Auto Scaling action
- EC2 Action (Stop, Terminate, Reboot or Recover)
- 대시보드에 경보를 추가하여 시각화
로그 및 매트릭 상관 관계
- Amazon CloudWatch를 사용하면 지표와 로그를 쉽게 관련 시킬 수 있음.
- 단일 플랫폼에서 로그 및 메트릭 관리
- 메트릭 필터를 사용해 로그를 메트릭으로 변환
이상 탐지 (Anomaly Detection)
- 메트릭에 대해 이상 탐지를 사용하도록 설정하면 CloudWatch는 메트릭의 과거 데이터에 머신 러닝 알고리즘을 적용하여 메트릭의 예상 값 모델을 생성
- 자연스러운 메트릭 패턴을 기반으로 임계 값을 자동으로 조정하는 경보 생성
- 메트릭 값이 밴드 위 또는 아래에 있거나 둘 다 있을때 경보
- 대시보드의 이상 탐지 밴드를 사용하여 메트릭 시각화
ServiceLens
- CloudWatch를 AWS X-Ray와 통합하여 애플리케이션의 전체적인 뷰 제공 함.
- 추적, 지표, 로그 및 경보를 한 곳에 통합할 수 있게 하여 서비스 및 애플리케이션의 관찰 가능성을 향상
- 효율적인 성능 병목 현상을 파악하고 영향 받는 사용자를 식별할 수 있게 함
- Service Map은 서비스 엔트 포인트와 리소스를 "노드"로 표시하고 각 노드와 해당 연결에 대한 트래픽, 지연 시간 및 오류에 대해 강조 표시함
- 노드를 선택하여 서비스의 해당 부분과 연관된 메트릭, 로그 및 추적에 대한 자세한 정보를 확인 가능
Synthetics Canary
- 경량 모듈식 카나리 테스트를 사용하여 웹 애플리케이션을 모니터링 하는 서비스
- CloudWatch Synthetics를 사용하여 애플리케이션에 고객
트래픽이 없더라도 지속적으로 고객 경험을 확인하고,
고객보다 먼저 문제를 발견할 수 있음
-엔드포인트에서 테스트를 1분마다, 24x7로 연중 무휴로
실행하고 애플리케이션 엔드포인트가 예상대로 작동하지
않는 즉시 알림을 보냄
- ex) 전체 트랜잭션에서 끊어진 링크, 작동하지 않는 링크, 단계별 작업 완료, 페이지 로드 오류, UI 로드 지연 시간, 가용성 및 지연 시간 확인, 체크아웃 흐름, 스크린샷 저장
🧸 CloudWatch를 통한 Act
- Auto Scaling을 통해 용량 및 리소스 계획을 자동화
- 키 메트릭에서 경보에 대한 임계값을 설정하고 Auto Scaling 작업을 트리거함
- 자동화
- CloudWatch Alarm은 SNS에 알림을 보낼 수 있으며,
거기서 람다 기능을 트리거하거나 AWS Chatbot을 통해
Slack 또는 Amazon Chime으로 메시지를 푸시 가능. 이를 통해 다음을 포함한, 거의 모든 작업 수행 가능.
- 작업:
- Systems Manager 자동화 트리거
- 인스턴스 크기 조정
- Chime 또는 Slack에 메시지 보내기
- CLI 명령으로 응답
- 재해 복구 호출
- 보안 그룹 업데이트
- 구축 (deployment) 자동화
- 백업 및 스냅샷 시작
- 보안 이벤트에 응답
🗽 CloudWatch를 통한 Analyze
메트릭에 대한 사용자 지정 작업 (Custom operations)
- 메트릭 산술을 사용하면 실시간 분석을 위해 여러 메트릭에 걸쳐 계산을 수행 할 수 있음
- 콘솔에서 계산된 메트릭 시각화
- CloudWatch 대시보드에 추가
- GetMetricData API 작업을 사용하여 검색
Log analytics
- CloudWatch Logs Insight를 사용하면 서버를
프로비저닝하거나 소프트웨어를 관리할 필요 없이
로그에서 실행 가능한 인텔리전스를 활용하여 운영 문제를
해결 가능
- 집계, 필터 및 정규식 사용하여 쿼리 작성 가능
- 시계열 데이터 시각화, 개별 로그 이벤트 드릴 다운, CloudWatch 대시보드로 쿼리 결과 내보내기 가능
- 실행중인 쿼리에 대해서만 지불
🚗 AWS Kafka Monitoring (번외)