CloudWatch
- AWS의 모든 서비스에 대한 지표를 제공한다
- 지표는 모니터링할 변수이고, EC2 지표로는 CPUUtilization, NetworkIn등이 있다
- 지표는 이름공간에 속하며 각기 다른 이름공간에 저장되며, 서비스당 하나이다
- 커스텀 지표를 만들어 AWS 서비스에서 제공하는 것말고 다른 지표들도 볼 수 있다
1. CloudWatch Metric
- 지표를 외부로 스트리밍할 수도 있다
- 지표를 원하는 대상으로 지속적으로 스트리밍하면 거의 실시간으로 전송되고, 지연시간도 짧아진다
- Kinesis Data FirHose, Datadog 등 다양하게 지표를 보낼 수 있다

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

Source
- SDK
- CloudWatch Logs Agent
- CloudWatch Unified Agent
- Elastic Beanstalk
- ECS
- 람다
- VPC Flow Logs
- API Gateway
- CloudTrail
- Route53
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에 저장해 나중에 분석할 수 있다