[AWS] CloudWatch & CloudTrail & Config
CloudWatch
- Metric은 CPU 이용률 같이 모니터링하는 변수
- log를 쿼리해서 보는 Insights 기능
- log를 S3, kinesis Stream or Firehore, Lambda OpenSearch에 보내는 것도 가능
- 다른 계정으로 보내는 것도 가능
CloudWatch Log Agent
- Agent를 머신에다가 설치해서 로그를 푸시함
- log Agent과 통합 Agent로 구분 되며 통합에서는 좀 더 세부한 정보를 확인할 수 있음 (CPU, Disk Metrics, RAM, Netstat, Processes, Swap Space)
CloudWatch Alarms
- 메트릭에 트리거되어 알람을 공지할 때 사용
- EC2 복구에도 사용될 수 있음
EventBridge
- Cron jobs을 스케줄 하거나 트리거를 세팅할 때 유용
- Event bus는 기본, 파트너, 커스텀으로 구분됨
- Schema Registry을 통해 분석 및 코드 생성이 가능함
CloudTrail
- AWS 계정에 대해 거버넌스, 준수, 및 감사 기능을 제공
- 기본으로 실행됨
- 관리 이벤트, 데이터 이벤트, CloudTrail 인사이트 이벤트(비정상 감지)로 구분됨
- 이벤트 브릿지와 같이 쓰는 케이스
Aws Config
- AWS 리소스에 대해서 준수를 감사하고 기록하는 기능을 제공
최소 용량을 2로 구성한 오토 스케일링 그룹이 관리하고 있고, 한 세트의 EC2 인스턴스에서 호스팅하고 있는 애플리케이션이 있습니다. 또한 CPU 사용률이 60%에 이르면 ASG를 스케일 인하도록 구성된 CloudWatch 경보도 생성해 둔 상태입니다. 현재, 이 애플리케이션은 2개의 EC2 인스턴스 상에 실행되고 있으며, 트래픽의 수준은 낮고, CloudWatch 경보는 ALARM 상태에 있습니다. 이런 경우, 무슨 일이 일어나게 될까요?
- 하나의 EC2 인스턴스가 종료되고 ASG의 원하는 용량 및 최소 용량이 1로 설정됨
- CloudWatch 경보는 계속 ALARM 상태로 유지되지만, ASG의 EC2 인스턴스 수는 절대 감소하지 않음
- CloudWatch 경보가 ASG로부터 분리될 것
- CloudWatch 경보가 OK 상태로 변화함
CloudTrail이 전체 AWS 리전의 AWS 계정에 활성화되어 있습니다. AWS 계정 내의 비정상적인 활동을 감지하려면 다음 중 어떤 기능을 사용해야 할까요?
- CloudTrail Data Events
- CloudTrail Insights
- CloudTrail Management Events
………………………….는 Kinesis Data Firehose 를 통해 거의 실시간으로 S3 버킷 또는 외부 목적지(예: Splunk, Datadog 등)에 CloudWatch 지표를 전송할 수 있는 CloudWatch 기능입니다.
- CloudWatch 지표 스트림
- CloudWatch 로그 스트림
- CloudWatch 지표 필터
- CloudWatch 로그 그룹
한 DevOps 엔지니어가 회사에서 근무하며 AWS에서 인프라와 리소스를 관리하고 있습니다. 회사의 주요 애플리케이션에 대한 트래픽이 갑자기 폭증했는데, 이는 시기적으로 봤을 때 일반적이지 않은 현상입니다. 애플리케이션은 프라이빗 서브넷에 있는 몇 개의 EC2 인스턴스에서 호스팅되고, 퍼블릭 서브넷에 있는 애플리케이션 로드 밸런서에 의해 배포됩니다. DevOps 엔지니어는 이것이 정상적인 트래픽 증가인지 공격인지 확인하기 위하여 서브넷의 VPC 흐름 로그(Flow Logs)를 활성화하고 CloudWatch 로그 그룹에 로그를 저장했습니다. DevOps 엔지니어는 이 로그를 분석하여 웹 사이트에 요청을 보내는 상위 IP 주소를 찾아 공격 의도가 있는지 확인하려고 합니다. 다음 중 DevOps 엔지니어가 로그를 분석하는 데 도움을 받을 수 있는 것은 무엇입니까?
- CloudWatch 지표 스트림
- CloudWatch Alarm
- CloudWatch Contributor Insights
- CloudWatch 지표 필터
회사가 AWS에서 실행하고 있는 서버리스 애플리케이션은 애플리케이션 내부에 있는 서비스 간의 상호 통신 채널로 EventBridge를 사용합니다. 개발 환경 및 운영 환경에서 이벤트를 사용해 몇 가지 테스트를 진행해야 한다는 요구 사항이 있습니다. 테스트는 6개월에 한 번씩 진행하기 때문에 이벤트를 저장해 뒀다가 나중에 다시 사용해야 합니다. EventBridge 이벤트를 저장해 나중에 사용할 수 있는 가장 효과적이고 경제적인 방식은 무엇입니까?
- EventBridge 아카이브 및 다시 재생(Replay) 기능을 사용한다.
- 나중에 사용할 수 있도록 S3 버킷에 EventBridge 이벤트를 저장하는 Lambda 함수를 생성한다.
- EventBridge가 DynamoDB 테이블에 이벤트를 저장하도록 설정한다.