Share
Sign In

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

분산 어플리케이션에서 요청을 추적하고, 디버깅하고, 서비스맵을 보여주는 서비스이다.
어디에 어떤 에러가 언제 어떻게 발생했는지 보여준다.
연계된 다른 요청도 함께 보여줘, 어디에서 에러가 났는지 추적이 가능하다.

자동화

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/

3. Amazon ElasticSearch (ES)

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

ELK stack

ElasticSearch : 로그 검색과 인덱싱
Kibana : ES 위에서 실시간 대쉬보드를 제공 (CW Dashboard의 상위호환)
Logstash : Logstash Agent가 보내준 로그를 수합 (CW Logs 대체)

ES Patterns - DynamoDB

1.
DynamoDB에서 찾고 싶은 아이템의 인덱스를 모르면, 전체 DB를 scan해야 하는 불상사가 생긴다.
2.
그럴 경우 DynamoDB의 로그를 ES로 보내고,
3.
ES에서 검색하면 쉽고 빠르게 찾을 수 있다.

ES Patterns - CloudWatch Logs

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

4. Tagging

거의 모든 AWS 리소스에는 태그가 있다. 태그는 어떻게 사용할까? 아래는 몇몇 적용 사례를 소개한다.
비용 계산 : 부서별, 환경별 비용을 책정할 때, 태그를 보고 필터링
CodeDeploy : 어떤 인스턴스에 배포하는가?를 판단
TBAC (Tag based Access Control) : Tag와 IAM을 연동해, 태그로 리소스에 대한 접근을 관리