Observability

이 장에서는 AWS 환경에서 메트릭 모니터링, 로그 수집, 경고 트리거 및 분산 서비스 추적 기능을 극대화하는 데 활용할 수 있는 CloudWatch Container Insights, Cloudwatch Logs 및 Prometeus와 같은 주요 운영 데이터 및 툴에 대해 살펴보겠습니다.

Observability에는 애프리케이션의 전반적인 상태를 모니터링하기 위해 다양한 신호(측정, 추적, 로그)를 사용하는 것이 포함됩니다. 또한 이 실습에서는 다음 데이터와 툴을 사용하여 EKS에 구축된 제품 카탈로그 애플리케이션에 엔드 투 엔드 vissibility를 제공합니다.

  • Container Insights

  • Cloudwatch Container logs

  • Prometheus App Mesh Metrics

  • Fargate Container logs

  • AWS X-Ray Tracing

1. Container Insights

CloudWatch Container Insights는 Amazon EKS 메트릭 및 로그를 수집, 집계 및 요약하는 완전히 관리되는 서비스입니다. CloudWatch Container Insights 대시보드는 다음 정보에 대한 액세스를 제공합니다.

  • CPU 및 메모리 사용률

  • 작업 및 서비스 수

  • 읽기/쓰기 저장소

  • 네트워크 Rx/Tx

  • 클러스터, 서비스 및 작업에 대한 컨테이너 인스턴스 수

콘솔에서 Cloudwatch -> Container Insights -> 성능 모니터링으로 이동하여 EKS 클러스터 Insight을 볼 수 있습니다.

2. Cloudwatch logs

로그는 EKS 노드에서 실행 중인 Fluentd 데몬셋과 Fargate에서 로그를 수집하여 Cloudwatch로 전송하는 Fluentbit 데몬셋에 의해 수집됩니다.

Container Insights를 설정할 때 기본적으로 다음과 같은 CloudWatch 로그 그룹이 생성됩니다.

  • /aws/containerinsights/cluster-name/application

  • /aws/containerinsights/cluster-name/dataplane

  • /aws/containerinsights/cluster-name/hostNodegroup Container Logs

  • /aws/containerinsights/cluster-name/performance

  • /aws/eks/eksworkshop-eksctl/cluster

  • fluent-bit-cloudwatch

콘솔 Cloudwatch -> LogGroups로 이동합니다. 아래 로그 그룹이 표시됩니다.

Nodegroup Container Logs

application LogGroup을 클릭하고 Search All 을 클릭합니다.

Search Box에 Catalog Detail Version 을 작성하여 proddetail backend service 로그를 확인 할 수 있습니다.

Fargate Container Logs

콘솔에서 Cloudwatch -> LogGroups -> Click on fluent-bit-cloudwatch LogGroup -> Click on Search All 후에 Search box에 Get Request succeeded 를 작성하여 Fargate container log를 확인할 수 있습니다.

Control Plane Logging

콘솔에서 Cloudwatch -> LogGroups 에서 /aws/eks/eksworkshop-eksctl/cluster 로그 그룹으로 Control Plane 로그를 확인할 수 있습니다.

3. Prometheus Metrics

CloudWatch Container Insights for Prometeus 모니터링은 컨테이너형 시스템 및 워크로드에서 Prometeus 메트릭을 자동으로 검색합니다.

CloudWatch 에이전트는 Prometeus 설명서의 scrape_config에 설명된 표준 Prometeus 스크랩 구성을 지원합니다. 이전 장에서 설정한 CloudWatch 에이전트 YAML에는 스크랩된 작업이 구성되어 메트릭이 CloudWatch로 전송됩니다.

Amazon EKS 및 Kubernetes 클러스터의 로그 이벤트는 Amazon CloudWatch 로그의 /aws/containerinsights/cluster_name/prometheus LogGroup에 저장됩니다.

콘솔에서 Cloudwatch -> LogGroups로 이동합니다. /aws/containerinsights/eksworkshop-eksctl/prometheus LogGroup을 확인하고 이 항목을 선택하면 여기에 기록된 모든 컨테이너에 대한 메트릭을 볼 수 있습니다.

4. X-ray Trace

AWS X-ray는 DevOps 기술자과 개발자들이 빠르게 애플리케이션의 관계과 성능을 파악할 수 있도록 도움을 줍니다. AWS App Mesh와 결합되면 강력한 분석 도구를 만들어 냅니다.

애플리케이션 코드를 계측하려면 X-Ray SDK.를 사용합니다. SDK는 수신 및 송신 요청에 대한 데이터를 기록하고 이를 X-Ray 데몬으로 전송하여 데이터를 일괄적으로 X-Ray로 중계합니다. 제품 카탈로그 데모 응용 프로그램은 아래 코드의 예를 참조하십시오.

콘솔에 로그인하고 X-Ray로 이동합니다. AWS X-Ray Service map은 클라이언트에서 다운스트림 서비스로의 호출에 대한 정보를 표시합니다. 서비스 그래프 화살표는 서비스 간의 관계를 이해하는 데 도움이 되는 요청 워크플로우를 표시합니다. 아래 그래프는 로드 밸런서 엔드포인트에서 제품 카탈로그 애플리케이션에 액세스할 때의 추적을 보여줍니다.

Last updated