AWS 모니터링

김파란·2025년 2월 22일

AWS

목록 보기
11/12

CloudWatch

  • AWS의 모든 서비스에 대한 지표를 제공한다
  • 지표는 모니터링할 변수이고, EC2 지표로는 CPUUtilization, NetworkIn등이 있다
  • 지표는 이름공간에 속하며 각기 다른 이름공간에 저장되며, 서비스당 하나이다
  • 커스텀 지표를 만들어 AWS 서비스에서 제공하는 것말고 다른 지표들도 볼 수 있다

1. CloudWatch Metric

  • 지표를 외부로 스트리밍할 수도 있다
  • 지표를 원하는 대상으로 지속적으로 스트리밍하면 거의 실시간으로 전송되고, 지연시간도 짧아진다
    • Kinesis Data FirHose, Datadog 등 다양하게 지표를 보낼 수 있다

2. CloudWatch Logs

  • AWS에서 애플리케이션 로그를 저장할 수 있는 곳이다
  • 로그 그룹을 정의해야하고, 로그 그룹안에는 다수의 로그 스트림이 있다
    • 특정한 로그 파일 또는 클러스터의 일부로서 갖고 있는 특정한 컨테이너를 나타낸다
    • 로그 만료정책을 정의해, 어느 시점에 만료하게 할수도 있고 영원히 저장할수도 있다
  • 배치 형태로 S3, 람다, OpenSearch 등으로 보낼 수 있다
  • 쿼리를 이용해 유용한 데이터를 검색, 확인할 수 있다

Source

  • SDK
    • SDK를 이용해 로그를 전송할 수 있다
  • CloudWatch Logs Agent
  • CloudWatch Unified Agent
  • Elastic Beanstalk
  • ECS
  • 람다
  • VPC Flow Logs
  • API Gateway
  • CloudTrail
    • 필터에 기반한 로그를 전송한다
  • Route53
    • 서비스에 대한 모든 DNS쿼리를 로깅한다

1). CloudWatch Logs Subscriptions

  • Logs는 여러 대상으로 내보낼 수 있는데 배치를 사용하기 때문에 실시간이 아니다
  • 실시간을 하려면 CloudWatch Logs Subscriptions을 이용해야한다
  • 그 데이터를 Kinesis Data Streams, 람다등 다양하게 쓸 수 있다
  • Filter도 사용할 수 있기 때문에 집계할 수도 있다

3. CloudWatch Alarms

  • 메트릭에서 나오는 알림을 트리거하는데 사용된다
  • 샘플링, 퍼센티지, 최대, 최소 등등 다양한 옵션으로 알람을 설정할 수 있다
  • 상태에는 3가지가 있다
    • OK: 알람이 트리거되지 않았다는 뜻이다
    • INSUFFICIENT_DATA: 알람이 상태를 결정하기 위한 충분한 데이터가 없다
    • ALARM: 설정한 한도 값을 넘었다는 뜻으로 알람이 전송됐다
  • 기간: 알람이 얼마나 오랫동안 메트릭을 평가할지 나타낸다
    • 10초, 30초 또는 60초 배수 기간을 줄 수 있다

1). Composite Alarams

  • 다수의 메트릭을 사용하기 원한다면 복합 알람을 사용해야한다
  • 복합 알람은 다수의 다른 알람들의 상태를 모니터링한다
    • 알람들은 각각 하나의 다른 메트릭에 의존할 수 있기 때문이다
    • 그런 모든 다른 알람들과 결합한다 (And, OR)
  • 알람 노이즈를 줄이는데 유용하다

4. Amazon EventBridge

  • 클라우드 크론잡, 스크립트를 예약할 수 있다
  • 시간마다 예약하는 것이 아니라 이벤트 패턴에 반응할 수도 있다
    • 특정 작업을 수행하는 서비스에 반응하는 이벤트 규칙이 있다
    • 예를들어 IAM 사용자가 로그인하면 이메일을 받을 수 있게 설정할 수 있다
  • 기본 Event Bus라서, 이벤트를

5. CloudWatch Insights

1). CloudWatch Container Insights

  • 컨테이너로부터 지표와 로그를 수집, 집계, 요약하는 서비스이다
  • ECS, EKS에서 사용하는 서비스에서 사용가능하다
  • 컨테이너로부터 지표와 로그를 손쉽게 얻어 세분화된 대시보드를 만들 수 있다
  • EC2에서 실행되는 쿠버네티스를 사용할 경우 컨테이너화된 버전의 CloudWatch 에이전트를 사용해야 한다

2). CloudWatch Lambda Insights

  • 람다에서 실행되는 서버리스 애플리케이션을 위한 모니터링, 트러블 슈팅 솔루션이다
  • 람다 함수를 위해 람다 계층으로 제공된다
    • 람다 함수 옆에서 제공되며 람다 인사이트라는 대시보드를 생성해 람다 함수의 성능을 모니터링한다
  • 서버리스 애플리케이션의 세부사항을 모니터링할 때 사용된다

AWS CloudTrail

  • AWS 계정의 관리, 절차, 감사를 실현하는 방법이다
  • 기본값으로 활성화되어 있고 AWS 계정안에서 일어난 모든 이벤트와 API 호출이력을 얻을 수 있다
  • 모든 로그가 CloudTrail에 나타나게 된다
  • 이런 로그들을 S3, CloudWatch Logs에 넣을 수 있다
  • 기본적으로 90일 동안 보관되고, 더 오래 보관하려면 S3에 전송하고 Athena를 통해 분석해야한다

이벤트

  • 관리 이벤트
    • AWS 계정안에서 리소스에 대한 수행된 작업을 나타낸다
    • 보안을 설정할 때 IAM API 호출을 하게되고 이것이 CloudTrail에 나타나게 된다
    • 리소스를 변경하지 않는 읽기 이벤트와 쓰기 이벤트가 있다
  • 데이터 이벤트
    • 고용량이기 때문에 기본적으로는 로깅하지 않는다
    • 예를 들어 S3 객체 수준 활동(Get,Delete, Put)등이 있다
    • 람다함수를 하면 어떤 API를 호출하는지도 확인할 수 있다
  • CloudTrail Insights Events
    • 계정에서 일어나는 이벤트를 분석하고 비정상적인 활동에 대한 탐지를 시도한다
    • 예를들어 부정확한 리소스 프로비저닝, 서비스 한도 도달 등이 있다
    • 정상적인 관리 활동을 분석해서 기준선을 만들고 분석을 한다

AWS Config

  • AWs내 리소스에 대한 감사와 규정 준수 엽루르 기록할 수 있게 해주는 서비스이다
  • 설정에 기반해 구성과 구서의 시간에 따른 변화를 기록할 수 있으며 이를 통해 인프라를 빠르게 롤백하고 문제점을 찾을 수 있다
  • 보안 그룹에 제한되지 않은 SSH 접근, 버켓에 공용 액세스가 있나라는 질문에 대답할 수 있다
  • 리전별 서비스이고, 데이터를 중앙화하기 위해 리전과 계정 간 데이터를 통합할 수 있다
  • 모든 리소스의 구성을 S3에 저장해 나중에 분석할 수 있다

0개의 댓글