Search
Duplicate
📒

[AWS - SAA] 17. 모니터링 및 감사

상태
완료
수업
AWS - Solutions Architect
주제
AWS
4 more properties
참고

Amazon CloudWatch

NOTE
모니터링은 정말로 중요한 개념이다!
무슨일이 일어나는지 로그와 지표, 추적을 통해 AWS 인프라에 누가 무엇을 만들었는가 감시
유지보수에 꼭 필요한 개념!
CloudWatch 경보 액션을 사용해 인스턴스를 재부팅할 수 있다.

CloudWatch Metrics

NOTE
CloudWatch는 AWS의 모든 서비스에 대한 지표(Metrics)를 제공한다!
metric을 스트리밍해서 분석하거나 저장!
Meticsnamespaces에 속하고, 서비스당 namespace는 하나이다.
Metics의 속성으로 측정 기준(Dimension)이 있다.
CPU 사용률에 대한 지표 - 특정 인스턴스 ID, 특정환경 등
Metics당 최대 10개의 Dimension
Metics는 시간을 기반으로 하기 때문에 타임스탬프가 꼭 있어야 한다.
CloudWatch 사용자 지정 Metics 생성 가능

CloudWatch Logs

NOTE
AWS에 로그를 저장하는 최고의 저장소!
로그 그룹
임의의 이름으로 보통 애플리케이션을 나타냄
로그 스트림
애플리케이션 내 인스턴스나 다양한 로그 파일명 또는 컨테이너 등을 나타냄
로그 만료일을 정의할 수 있는데, 영원히 만료되지 않게 하거나 일정 기간후 만료되게 설정이 가능하다.
이 로그들은 S3, KDS, KDF, Lambda, ElasticSearch 등으로 전송할 수 있음

저장되는 소스

ECS
컨테이너의 로그를 CloudWatch로 전송
API Gateway
받는 모든 요청을 보냄
AWS Lambda
함수 로그에서 수집

메트릭 필터 & 통계

이런식으로 함
CloudWatch Logs는 필터 표현식을 사용할 수 있다.
ex) 로그 내에서 특정 IP찾기
메트릭 필터를 사용하여 CloudWatch 경보를 트리거할 수 있다.

CloudWatch Logs 에이전트

NOTE

CloudWatch Logs for EC2

CloudWatch Logs로 이동..
EC2 인스턴스에서 CloudWatch로는 기본적으로 어떤 로그도 옮겨지지 않음
EC2 인스턴스에 CloudWatch Logs 에이전트를 실행시켜 원하는 로그 파일을 푸쉬해야 함
EC2 인스턴스에 로그를 보낼 수 있게 해주는 IAM역할 설정이 필요
온프레미스 환경에서도 가능하다!

CloudWatch Logs Agent & Unfied Agent

EC2 인스턴스나 온프레미스 서버 같은 가상 서버를 위한 것
CloudWatch Logs Agent
오래된 버전
CloudWatch Logs로 로그만 전송
CloudWatch Unified Agent
프로세스나 RAM등과 같은 추가적인 시스템 단계 지표를 수집
CloudWatch Logs에 로그 전송

CloudWatch Unified Agent - Metrics

통합 CloudWatch 에이전트를 EC2 인스턴스나 Linux서버에 설치하면 지표 수집 가능
CPU, Disk, Ram, Netstat, 프로세스 지표등을 확인할 수 있음!

CloudWatch Alarams

NOTE
특정 지표에 대해서 알람을 트리거할 때 사용한다!
주로 이 3개에서 지표를 검사하고 알람을 뛰운다.
다양한 옵션(%, 최소값, 최대값 등)을 추가해서 복잡한 경보를 정의할 수 있음
10초, 30초, 60초의 배수로 설정이 가능
Amazon CloudWatch 복합 경보를 사용하여 여러 경보를 결합함으로써 경보 노이즈를 줄이고 중요한 운영 문제에 집중 가능함

Amazon Event Bridge

NOTE
CloudWatch Events의 새 버전이며, 서버리스 이벤트 버스이다!
여러 AWS Resource들의 이벤트를 받고 그걸 처리함
클라우드에서 Cron 작업을 예약할 수 있음
이벤트 패턴에 반응
ex) 누군가가 root 계정을 사용하면 알람을 받는다
대상이 다양하면 Lambda 함수를 트리거해서 SQS, SNS 메세지 등을 보낼 수 있음
이벤트는 세부 사항을 나타내는 JSON 문서로 생성
기본적으로 EventBridge에 포함된 기본 이벤트 버스는 AWS 서비스에서 생성된 것
파트너 이벤트 버스
소프트웨어 서비스 제공자와 같은 파트너와 통합된 AWS 서비스에서 생성된 것
Zendesk, DataDog, Auth0 ..
사용자 지정 이벤트 버스
애플리케이션의 자체 이벤트를 사용자 지정 이벤트 버스로 전송

CloudWatch 인사이트 유형

NOTE

CloudWatch Container Insight

컨테이너로부터 지표와 로그를 수집, 집계, 요약하는 서비스
EKS나 EC2의 쿠버네티스에서 사용할 경우 컨테이너화된 버전의 CloudWatch 에이전트를 사용해야 한다.

CloudWatch Lambda Insights

서버리스 애플리케이션을 위한 모니터링과 트러블 슈팅 솔루션을 위한 세부 지표 제공
Lambda 함수 옆에서 실행되며 Lambda Insights라는 대시 보드를 생성해 함수의 성능을 모니터링 한다.

CloudWatch Contributor Insight

Contributor 데이터를 표시하는 시계열 데이터를 생성하고 로그를 분석하는 서비스
VPC, DNS 로그 등 AWS가 생성한 모든 로그에서 동작
CloudWatch Logs를 통해 트래픽을 많이 생성하는 N개의 IP주소를 찾을 수 있음

CloudWatch Application Insights

모니터링하는 애플리케이션의 잠재적인 문제와 진행 중인 문제를 분리할 수 있도록 자동화된 대시보드 제공
EBS, RDS, SQS, S3, EKS.. 다양한 AWS 리소스에 연결

AWS CloudTrail

NOTE
AWS 계정에 대한 거버넌스, 규정 준수 및 감시를 제공한다!
AWS의 작업들을 모두 감시한다고 생각하면 좋다!
AWS 계정 내에서 이루어진 이벤트/API 호출 기록을 가져온다
console
SDK
CLI
AWS 서비스
CloudTrail의 로그를 CloudWatch Logs나 S3로 옮길 수 있음
이벤트는 기본적으로 90일간 저장되고 이후에 삭제
기본 기간 이상으로 이벤트를 보존하기 위해서는 S3로 전송해서 로그를 기록하고 Athena를 사용해 분석한다!

CloudTrail Events

NOTE

관리 이벤트

AWS 계정의 리소스에서 수행되는 작업을 나타냄
리소스나 AWS 계정을 수정하는 모든 작업이 CloudTrail에 표시된다!
추적은 기본적으로 관리 이벤트를 기록하게 구성되어 있다.

데이터 이벤트

기본적으로 데이터 이벤트는 고볼륨 작업이므로 로깅되지 않는다.
AWS Lambda 함수 실행 활동
테이블의 Amazon DynamoDB 객체 수준 API 활동

CloudTrail Insights 이벤트

CloudTrail Insights는 비용을 지불하고 활성화되면 이벤트를 분석해 계정 내 특이활동 감지
부정확한 리소스 프로비저닝, 서비스 한계 도달, IAM 동작 과다사용 등..
정상적인 관리 활동을 분석하고 기준선을 생성한 뒤 모든 쓰기 이벤트를 분석하여 특이한 패턴을 탐지한다

AWS Config

NOTE
AWS내 리소스에 대한 감시와 규정 준수 여부를 기록할 수 있게 해주는 서비스!
AWS Config로 해결할 수 있는 문제
보안 그룹에 제한되지 않은 SSH 접근이 있는가?
버킷에 공용 액세스가 있는가?
시간이 지나며 변화한 ALB 구성이 있는가?
리전 단위 서비스이므로 모든 리전별로 구성해야 한다.
모든 리소스의 구성을 S3에 저장해서 Athena와 같은 서버리스 쿼리 엔진을 통해 분석할 수 있다.

AWS Config 규칙

NOTE
AWS Lambda를 이용해 사용자 정의 Config 규칙을 만들 수 있다.
EBS 디스크가 gp2 유형인가?
개발 계정에서 EC2 인스턴스가 t2.micro 유형인가?
AWS Config 규칙은 규정 준수를 위한 것이고 어떤 동작을 미리 예방하거나 차단할 수 없다.
AWS Config 규칙은 대신 규정을 준수하지 않는 리소스를 수정및 알람을 보낼 수 있다!
리소스를 자동 수정했음에도 미준수한다면 5번까지 재시도
규정을 미준수 했을때 마다 알람을 보낼 수 있음

CloudWatch vs CloudTrail vs Config

NOTE
ELB의 경우 3가지가 어떻게 동작하는지 알아본다!

CloudWatch

들어오는 연결 수를 모니터링
오류 코드 수를 시간 흐름에 따라 비율로 시각화

CloudTrail

누가 API를 호출하여 로드 밸런서를 변경했는지 추적

Config

로드 밸런서에 대한 보안 그룹 규칙을 추적해 무언가 수정하지 못하게 사용
SSL 인증서가 로드밸런서에 할당되어야 한다는 규칙을 만들어 암호화되지 않은 트래픽 차단