Programming

[AWS, Certified Developer Associate] CloudWatch, EventBridge

빠쿤 2024. 5. 27. 21:18

CloudWatch - Metrics

  • 모든 AWS 서비스에 대한 지표 제공
  • CPU 사용량, NetworkIn 등 기본 지표 제공
  • 배열 형태의 속성을 가짐 (인스턴스 id, 환경, etc)
  • 지표 당 최대 10개 배열 선택 가능
  • 타임스탬프를 가지며 지표 대시보드 생성 가능
  • EC2 인스턴스는 기본적으로 5분마다 지표를 가짐
    • 추가적인 비용이 드는 세부 모니터링 활성화 시 1분마다 지표 가짐
    • ASG 스케일 아웃 / 인의 작업속도 증대 (모니터링 빈도 늘어남)
  • EC2 메모리 사용량은 RAM에서 푸시하지 않음 (커스텀 지표를 통해 가능)

 

CloudWatch - Custom Metrics

  • 메모리 사용량, 디스크공간, 로그인 사용자 수 등 사용자 지정 지표를 생성 가능
  • PutMetricData API 호출
  • StorageResolution API 파라미터를 통해 지표 해상도로 두가지 값 지정 가능
    • 1분에 한번 푸시하는 표준 사용자 지정 지표 (Standard)
    • 고해상도 지표 (1, 5, 10, 30초마다 푸시) - 높은 비용
  • 사용자 지정 지표는 푸시 방향이 과거 / 미래 상관 없음 (오류 발생 X)
    • 지표를 AWS 실제 시간과 동기화 하기 위해서는 EC2 인스턴스 시간을 맞추어야함

 

 

CloudWatch - Logs

  • 애플리케이션 로그를 AWS에 저장하기 가장 좋은 장소
  • 로그 그룹 : 일반적으로 애플리케이션 명
  • 로그 스트림 : 애플리케이션 각 인스턴스 / 로그 파일 / 컨테이너를 나타냄
  • 로그 만료기간 설정 가능 (영구, 1일 ~ 10년)
  • 여러 목적지로 로그 전송 가능
    • S3 / KDS / KDF / Lambda / OpenSearch
  • 로그는 기본적으로 암호화
  • 다양한 소스에서 CloudWatch로 로그 적재 가능
    • SDK, CloudWatch Logs Agent, CloudWatch Unified Agent
    • Elastic Beanstalk / ECS / Lambda / VPC Flow Logs / API Gateway / CloudTail / Route53 (DNS 쿼리 기록)

 

 

CloudWatch Logs for EC2

  • 기본적으로 EC2 인스턴스에서 CW로 로그 전송 불가
  • EC2 에서 로그 파일을 푸시 할 에이전트를 실행해야함
  • CloudWatch Logs Agent를 EC2 인스턴스에서 실행해 CW에 보냄 (IAM 권한 필요)
  • 온프레미스 서버에서도 가상서버 위에 Agent를 돌려 로그 보내기 가능
  • CloudWatch Logs Agent
    • 가상 서버용 (EC2, 온프레미스)
    • 이전버전 / CloudWatch Logs 전송만 가능
  • CloudWatch Unified Agent
    • 가상 서버용 (EC2, 온프레미스)
    • 최신버전 / 추가 시스템 수준의 지표 수집
    • CPU, Disk metrics, RAM, Netstat, Processes, Swap Space 등
    • SSM 매개변수 스토어 사용으로 에이전트 구성도 용이 (중앙 구성 가능)

 

 

CloudWatch - Alarm

  • 지표에 대해 알림을 트리거할 때 사용
  • 3가지 상태
    • OK (경보X)
    • INSUFFICIENT_DATA (데이터가 부족해 경보상태를 결정할 수 없는 상태)
    • ALARM (임곗값 초과로 알림 전송 예정)
  • Period : 지표를 평가하는 길이
  • 고해상도 사용자 지정 지표 : 10, 30, 60의 배수 초로 설정 가능
  • 타겟 1 : EC2
    • 정지, 종료, 재부팅, 복구 작업 수행
  • 타겟 2 : 오토 스케일링
  • SNS 서비스에 알림 전송 (람다를 통해 임곗값 초과 시 동작 수행)
  • 복합 경보를 통해 서로 다른 여러 경보간 의존(통합) 가능 AND OR 컨디션
    • 복잡한 복합 경보 생성을 통해 경보 노이즈를 줄일 수 있음

 

 

EventBridge

  • 기본 이벤트 버스 (Default Event Bus)
  • Datadog과 같은 SaaS 파트너와 결합해 Partner Event Bus에 이벤트를 보낼수도 있음
  • 애플리케이션에서 자신의 이벤트를 Custom Event Bus로 보낼수도 있음
  • 리소스 기반 정책을 통해 리전 / 계정 간 이벤트 버스에 접근가능
  • 필터를 통해 모든 이벤트를 보관할 수도 있음 (영구, 보관 기간 설정 가능, 이벤트 재현 가능)
  • 클라우드 작업 스케줄링 가능 (스크립트 예약, 1시간마다 람다 트리거 -> 람다는 스크립트 실행)
  • 이벤트 패턴에 반응 가능 (IAM 루트 유저가 콘솔에서 로그인하는 이벤트에 반응, 알림을 통해 보안 강화 가능)
  • 함수를 트리거할 목적지가 여러 군데라면 SQS, SNS 활용 가능
  • CloudTrail과 연동하여 모든 AWS API 콜 모니터링 가능
  • 필터 적용 가능 (특정 S3의 이벤트만 반응)

 

 

 


Reference

Udemy - AWS Certified Developer Associate 시험 합격을 위한 모든 것!