HotFoxy
불여우의 전직 이야기
게임 서버 개발자가 되어 보죠!
전체 방문자
오늘
어제
  • 분류 전체보기 (135)
    • 연구한 이야기 (26)
      • 깊게 공부해보기 (7)
      • 문제 해결 이야기 (12)
      • 맡은 업무 이야기 (6)
    • 전직 이야기 (0)
      • 1년이라는 시간 (5)
      • 프로카데미 이야기 (5)
    • 공부한 이야기 (87)
      • 알고리즘 (7)
      • 리눅스 (11)
      • 클라우드 (24)
      • 윈도우 OS (17)
      • 윈도우 소켓 프로그래밍 (11)
      • 네트워크 (16)
      • Docker & K8S (0)
      • 기타 (1)
    • 자격증 이야기 (12)
  • MSB : Mad Square's Brawl
  • GITHUB

인기 글

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
HotFoxy

불여우의 전직 이야기

AWS SAA - Monitoring & Audit
공부한 이야기/클라우드

AWS SAA - Monitoring & Audit

2022. 8. 4. 03:16

Monitoring & Audit

CloudWatch

CloudWatch Metrics

CloudWatch 는 모든 AWS 서비스에 대한 지표를 제공한다.

Metric 은 모니터링할 수 있는 다양한 지표이다. (CPUUtilization, NetworkIn ...)

지표가 어떤가에 따라서 서비스 작동 상태도 알 수 있다.

Dimension 은 지표의 속성이 된다. (instance id, environment ...)

지표당 10개의 dimension 을 만들 수 있다.

지표에는 timestamp 가 있어서 그래프로 표시할 수 있다.

EC2 Detailed Monitoring

EC2 인스턴스는 기본적으로 5분마다 지표를 가진다.

세부 모니터링 (detailed monitoring) 을 활성화하면, 매 1분마다 지표를 얻을 수 있다.

  • 이를 이용하면 ASG가 더욱 빠르게 스케일로 대응할 수 있게 도울 수 있다.

EC2 Memory usage 는 기본적으로 제공되는 지표가 아니며, 인스턴스에서 custom metric 으로 push 되어야 한다.

Custom Metrics

RAM 사용량이나 디스크 공간, 어플리케이션 로그인 사용자 수같은 다양한 커스텀 지표를 CloudWatch 에 푸시할 수 있다.

이에 대한 dimension 이름은 자유롭게 지을 수 있다.

  • Standard : 1분 해상도
  • High Resolution : 1/5/10/30 초

이러한 커스텀 지표는 해당 지표의 과거 혹은 미래 시간을 설정해서 푸시가 가능하다.

Dashboards

이러한 지표들을 대시보드에 표시할 수 있다.

주요 지표들과 Alarm 에 접근할 수 있으며, 글로벌화되어있기에 많은 리전과 계정을 통합하여 다양한 그래프를 보여준다.

AWS 계정이 없는 사람들과 대시보드를 공유할 수도 있다.

CloudWatch Logs

로그들을 로그 그룹으로 그룹화하는데, 이는 일반적으로 어플리케이션으로 나뉘게 된다.

Log stream : 어플리케이션 내 인스턴스, 로그 파일명, 컨테이너 등

로그 만료일 또한 설정이 가능하다.

필터 표현식을 써서 원하는 데이터셋을 얻고, 이를 기반으로 Metric filter 를 얻어 Alarm 과 연계할 수 있다.

S3으로 내보내기까지 12시간이 소요될 수 있으며, 이는 real-time 이 아니다.

real-time 으로 데이터를 저장해야 한다면 Logs Subscriptions 를 사용해야 한다.

  • S3
  • Kinesis Data Streams / Firehose
  • AWS Lambda
  • ElasticSearch

위 서비스로 로그를 내보낼 수 있다.

Sources

  • CloudWatch Logs Agent, SDK, CloudWatch Unified Agent
  • Elastic Beanstalk
  • ECS, Lambda
  • VPC Flow Logs
  • API Gateway
  • CloudTrail based on filter
  • Route53

CloudWatch Agent

기본적으로, EC2 에서 CloudWatch 로 데이터를 전송하는 것은 EC2 내부의 CloudWatch Logs Agent 가 담당하며,
이는 온프레미스 환경에서도 셋업될 수 있다.

CloudWatch Unified Agent 는 기존의 Logs Agent 보다 더욱 세분화되어있는 지표를 제공하며, 최신의 서비스이다.

CloudWatch Alarms

Alarms는 지표에서 알림을 트리거할 때 사용된다.

  • OK : 트리거되지 않았음
  • INSUFFICIENT_DATA : 상태를 결정할 데이터가 부족한 상태
  • ALARM : 임계값에 도달하여 알림이 보내지는 상태

CloudWatch Logs Metrics Filters 에 따라서 Alarm 의 설정이 가능하다.

Alarm Targets

  • EC2 인스턴스의 중지, 종료, 재시작, 복구
  • Auto Scaling Action Trigger
  • Send notification to SNS

CloudWatch Events

Event를 통해서 모든 AWS 서비스 내의 이벤트를 인터셉트할 수 있다.

EC2 인스턴스 스타트나 CodeBuild 실패 등의 다양한 이벤트를 받아들일 수 있다.

예약이나 Cron을 설정하여 이벤트를 작동시킬 수 있다.

Amazon EventBridge

이는 CloudWatch Events 의 차세대 버전이다.

기본적으로 EventBridge에 포함된 Event Bus는 AWS 서비스에서 생성된 것으로, CloudWatch Event와 동일하다.

하지만 이에 더해, Partner Event Bus 를 통해 SaaS 서비스나 어플리케이션의 이벤트를 받을 수 있다.

또한 사용자가 직접 만든 Custom Event Bus 또한 사용이 가능하다.

이러한 이벤트 버스는 Resource-based Policy 에 따라서 다른 AWS 계정에서 접근할 수 있다.

이러한 이벤트는 아카이빙될 수 있으며, 저장된 이벤트를 재사용할 수 있다.

Schema Registry

EventBridge에 이벤트가 전송되면 서비스 자체에서 버스 내 이벤트를 분석하고 schema를 추론한다.

그 이후 Schema Registry 에서 코드를 생성하고, 앱은 코드를 통해 이벤트 버스 내 데이터의 구조를 인식한다.


CloudTrail

AWS 계정에 Governance 와 규정 준수, 감사권을 부여한다.

이는 활성화가 기본으로 설정되어 있기에 AWS 계정 내의 모든 이벤트 기록과 서비스에 의한 API 호출 기록을 볼 수 있다.

이러한 Trail 은 단일 리전과, 모든 리전에 적용될 수 있다.

Management Events

  • AWS 계정 내 리소스에 작동한 연산을 나타낸다.
  • 누군가가 보안을 구성하기 위해 쓴 Policy 기록
  • 서브넷을 생성할 때 쓴 EC2 CreateSubnet 액션
  • 기본적으로 항상 활성화되어있다.
  • Read Events
    • 리소스를 수정 않는 읽기 이벤트
  • Write Events
    • 리소스를 수정하는 쓰기 이벤트

Data Events

  • 기본적으로 데이터 이벤트는 로깅되지 않는다.
  • S3의 GetObject 나 DeleteObject 같은 액션을 의미한다.
  • Read Events
    • GetObject 등
  • Write Events
    • DeleteObject
    • PutObject 등
  • Lambda 기능의 실행을 로깅한다.

CloudTrail Insights Events

모든 서비스를 통틀어 관리 이벤트가 너무 많고 계정 내에서 API 가 급속히 실행되고 있다면 분석이 쉽지 않을 수 있다.

쓰기 이벤트를 분석하여 평소와 다른 활동을 찾아낸다.

CloudTrail Events Retention

CloudTrail 내 이벤트는 기본적으로 90일까지 저장된다.

하지만 보존 기간을 늘려야 할 때, 90일에 도달한 이러한 로그들을 S3 에 저장할 수 있다.


AWS Config

Config는 AWS 내 리소스에 대한 감사와 규정 준수 여부를 기록할 수 있게 해주는 서비스이다.

구성 설정과 구성의 시간에 따른 변화를 기록할 수 있으며, 이를 통해 필요한 경우 인프라를 롤백하거나 문제점을 찾아낼 수 있다.

원하는 변경 사항 구독마다 SNS 알림을 받을 수 있다.

Config 는 리전별 서비스이므로 모든 리전별로 구성해야 한다.

데이터를 S3 에 저장하여 Athena 로 추후에 분석할 수 있다.

Config Rules

  • AWS 관리형 Config 규칙
  • 직접 제작한 Config 규칙 (Lambda 를 통하여 정의될 수 있다)
  • 구성이 변화할 때마다 트리거시킬 수 있다.
  • 정기적으로 이러한 구성이 규칙에 부합한지 확인할 수 있다.
  • Config 는 어떠한 액션도 차단하지는 않는다.

Remediations

SSM 자동화 문서를 이용하여 규정을 준수하지 않는 리소스를 자동으로 수정할 수 있다.

AWS 관리형 문서를 사용할 수도 있고, 본인의 자동화 문서를 제작하여 사용할 수도 있다.

저작자표시

'공부한 이야기 > 클라우드' 카테고리의 다른 글

AWS SAA - Networking  (0) 2022.08.04
AWS SAA - Serverless  (0) 2022.08.04
AWS SAA - Identifications  (0) 2022.08.04
AWS SAA - Storages  (0) 2022.08.02
AWS SAA - Route 53  (0) 2022.08.02
    '공부한 이야기/클라우드' 카테고리의 다른 글
    • AWS SAA - Networking
    • AWS SAA - Serverless
    • AWS SAA - Identifications
    • AWS SAA - Storages
    HotFoxy
    HotFoxy
    1년 동안의 고군분투 전직 이야기! ..가 완료되어, 게임개발자로 살아남는 이야기!

    티스토리툴바