AWS Cloud Monitoring(CloudWatch / CloudTrail)
CloudWatch?
-AWS 클라우드 리소스와 AWS에서 실행되는 애플리케이션을 위한 모니터링 서비스
- 리소스 및 애플리케이션에 대해 측정할 수 있는 변수인 '지표'를 수집하고 추적 가능
- 사용중인 모든 AWS 서비스에 대한 지표가 자동으로 표시되며, 사용자 지정 대시보드를 통해 사용자 지정 애플리케이션에 대한 지표를 표시하고 지정 집합 표시 가능
- '지표'는 Cloudwatch에 게시도니 시간 순서별 데이터 요소 세트이며, 모니터링할 변수
- 기본 모니터링과 세부 모니터링으로 나뉘며, 각각 5분과 1분 주기로 수집함
- 기본 모니터링은 자동활성화지면, 세부 모니터링은 선택사항임
- 기본적으로 CPU, Network, Disk, Status Check등을 수집함
-> Memory 항목이 없음!!!!
-지표 데이터의 보존기간은 다음과 같음(안외워도됨.
1. 기간 60초 미만의 경우, 3시간
2. 기간 60초의 경우, 15일
등등..~~
- AWS CLI 혹은 API를 이용하여, Cloudwatch에 사용자 정의 지표 게시 가능
- '경보' 기능을 사용하여 어떤 지표가 일정기간동안 일정값에 도달할 경우 각 서비스가 취해햐할 행동을 정의할 수 있음
-> 모니터링 하기로 선택한 측정치가 정의한 임계값을 초과할 경우 하나 이상의 자동화 작업을 수행하도록 구성
- > EC2의 경우, 경보에 따라 인스턴스 중지, 복구, 종료, 재부팅 가능
Cloudwatch Agent
- EC2에 Agent를 설치하게 되면 더 많은 시스템 수준 지표를 수집할 수 있음
- 온프레미스 서버 또한 CloudWatch Agent 사용 가능
- 여기에 Memory 항목이 포함됨!!
- > 메모리 항목은 사용자 지정 지표로 수집가능하며, 이는 Agent를 통해 수집함
- Cloudwatch Agent는 로그를 수집할 수 있으며, Cloudwatch Logs 기능 사용 가능
Cloudwatch Logs
- EC2, CloudTrail, Route 53, VPC Flow log 등 기타 소스에서 발생한 로그 파일을 모니터링, 저장 및 액세서 하는 기능
- Cloudwatch Agent를 사용하여 로그를 수집함
- Cloudwatch log Insights를 사용하여 CloudWatch Logs에서 로그 데이터를 대화식으로 검색해 분석할 수 있음
- Agent는 기본적으로 5초마다 로그 데이터를 전송함.
Cloudwatch Events
- AWS 각 서비스의 이벤트가 사용자가 지정한 이벤트 패턴과 일치하거나 일정이 트리거될 경우, 사용자가 원하는 기능을 발동시키도록 하는 기능
- 이벤트 소스와 대상으로 나뉨
1. 이벤트 소스 : AWS환경에서 발생하는 이벤트이며, 가령S3의 경우 오브젝트 등록, 삭제 등을 들 수 있음
2. 대상 : 이벤트 발생시 해야 할 행동을 정의하는 것이머 SNS 전송 혹은 람다, SQS 게시 등을 설정할 수 있음
- 이벤트 소스에 해당하는 규칙이 트리거될 경우 대상에 해당하는 서비스를 실행시킴
1. 이벤트가 시스템에 생성해 둔 규칙과 일치하는 경우, AWS Lamdba 함수를 자동으로 호출하고, 해당 이벤트를 Amazon Kinesis 스트림에 전달하고 , Amazon SNS 주제를 알림
CloudTrail?
- AWS 계정 내에서 이루어지는 모든 작업과 활동에 대해 기록하는 서비스
- 계정 내에서 이루어지는 API 호출도 모두 기록함
- AWS 계정 생성시 자동으로 활성화되며 최대 90일간의 기록을 볼 수 있음
-> 더 오래 보관하려면 S3에 저장
- 최근 이벤트를 확인할 수 있는 이벤트 기록, '추적'기능, Insight 이벤트로 이루어짐
추적
- '추적'을 활성화하면 모든 리전 혹은 선택한 리전에 대하여 활동기록을 기록하고 S3 Bucket에 보관할 수 있음
- Organization과 연동하여 사용가능하며 자신의 '조직'을 선택하면 조직 내 모든 계정을 추적할 수 있음
- Insight 이벤트는 write API 호출에 관련된 비정상적인 호출을 탐지함