# CloudTrail & X-Ray & ElasticSearch & Tagging

# 1. CloudTrail

모든 이벤트와 API의 로그를 S3나 CloudWatch Logs에 기록하는 서비스이다. 15분 정도 딜레이가 있다.

### **로그 무결성**

AWS는 한 시간에 한 번 로그들의 digest를 S3에 따로 저장해 로그 파일의 조작 여부를 검증한다.

### Cross Account Logging

다른 계정의 CloudTrail Log를 내 계정의 S3에 저장하려면, S3 버킷 정책을 수정해 해당 계정에 쓰기 권한을 줘야 한다.

# 2. X-Ray

분산 어플리케이션에서 요청을 추적하고, 디버깅하고, 서비스맵을 보여주는 서비스이다. 

- 어디에 어떤 에러가 언제 어떻게 발생했는지 보여준다.

- 연계된 다른 요청도 함께 보여줘, 어디에서 에러가 났는지 추적이 가능하다.

![Image](https://upload.cafenono.com/image/slashpageHome/20240820/134234_xN3f4A34TXFOMBN2DB?q=80&s=1280x180&t=outside&f=webp)

### 자동화

X-Ray는 알람 기능이 없기 때문에 람다를 통해서 수동으로 알람을 구현해야 한다.

![https://aws.amazon.com/ko/blogs/devops/using-amazon-cloudwatch-and-amazon-sns-to-notify-when-aws-x-ray-detects-elevated-levels-of-latency-errors-and-faults-in-your-application/](https://upload.cafenono.com/image/slashpageHome/20240820/134235_7Cm70yF2W2t1cl04Pj?q=80&s=1280x180&t=outside&f=webp)

# 3. Amazon ElasticSearch (ES)

ElasticSearch를 대체해 로그를 분석하는 서비스이다. 서버 위에서 돌아가야 한다.

### ELK stack

- **ElasticSearch** : 로그 검색과 인덱싱

- **Kibana** : ES 위에서 실시간 대쉬보드를 제공 (CW Dashboard의 상위호환)

- **Logstash** : Logstash Agent가 보내준 로그를 수합 (CW Logs 대체)

### ES Patterns - DynamoDB

![Image](https://upload.cafenono.com/image/slashpageHome/20240820/134235_3LFLJOqoEvZ7rCwCLM?q=80&s=1280x180&t=outside&f=webp)

1. DynamoDB에서 찾고 싶은 아이템의 인덱스를 모르면, 전체 DB를 scan해야 하는 불상사가 생긴다.

2. 그럴 경우 DynamoDB의 로그를 ES로 보내고,

3. ES에서 검색하면 쉽고 빠르게 찾을 수 있다.

### ES Patterns - CloudWatch Logs

![Image](https://upload.cafenono.com/image/slashpageHome/20240820/134236_uzVNNjPyfa8nOlxIwv?q=80&s=1280x180&t=outside&f=webp)

- Lambda는 실시간이지만 비싸다.

- Kinesis Firehose는 거의-실시간이지만 싸다.

# 4. Tagging

거의 모든 AWS 리소스에는 태그가 있다. 태그는 어떻게 사용할까? 아래는 몇몇 적용 사례를 소개한다.

- **비용 계산** : 부서별, 환경별 비용을 책정할 때, 태그를 보고 필터링

- **CodeDeploy** : 어떤 인스턴스에 배포하는가?를 판단

- **TBAC (Tag based Access Control) **: Tag와 IAM을 연동해, 태그로 리소스에 대한 접근을 관리

[What is Tag Editor? - Tagging AWS Resources and Tag Editor](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html)

For the site tree, see the [root Markdown](https://slashpage.com/kaonmir.md).
