Container Insights를 사용한 서비스 메트릭 수집
서비스 메트릭(metrics)은 코드에 계측(instrumentation)을 추가하여 캡처하는 애플리케이션 수준의 지표입니다. 이러한 메트릭은 두 가지 방식으로 애플리케이션에서 수집할 수 있습니다.
- Push 방식: 애플리케이션이 메트릭 데이터를 직접 대상으로 전송하는 방식입니다. 예를 들어, CloudWatch PutMetricData API를 사용하여 애플리케이션이 CloudWatch에 메트릭 데이터 포인트를 게시할 수 있습니다. 또한 OpenTelemetry Protocol(OTLP)을 통해 gRPC나 HTTP로 OpenTelemetry Collector 같은 에이전트에 데이터를 전송할 수도 있습니다. 에이전트는 이후 메트릭 데이터를 최종 대상으로 전송합니다.
- Pull 방식: 애플리케이션이 사전 정의된 형식으로 HTTP 엔드포인트에 메트릭 데이터를 노출하는 방식입니다. 이 엔드포인트에 접근할 수 있는 에이전트가 데이터를 스크래핑한 후 대상으로 전송합니다.

Prometheus용 CloudWatch Container Insights 모니터링
Prometheus는 널리 사용되는 오픈 소스 시스템 모니터링 및 알림 도구입니다. 컨테이너화된 애플리케이션에서 Pull 방식으로 메트릭을 수집하는 사실상의 표준으로 자리잡았습니다. Prometheus를 사용하여 메트릭을 캡처하려면 먼저 모든 주요 프로그래밍 언어로 제공되는 Prometheus 클라이언트 라이브러리를 사용하여 애플리케이션 코드를 계측해야 합니다. 메트릭은 일반적으로 HTTP를 통해 애플리케이션에서 노출되며 Prometheus 서버가 이를 읽습니다. Prometheus 서버가 애플리케이션의 HTTP 엔드포인트를 스크래핑하면, 클라이언트 라이브러리가 추적 중인 모든 메트릭의 현재 상태를 서버로 전송합니다. 서버는 자체 관리하는 로컬 스토리지에 메트릭을 저장하거나 CloudWatch와 같은 원격 대상으로 메트릭 데이터를 전송할 수 있습니다.
Prometheus용 CloudWatch Container Insights 모니터링을 사용하면 Amazon ECS 클러스터에서 Prometheus의 기능을 활용할 수 있습니다. EC2와 Fargate에 배포된 Amazon ECS 클러스터에서 사용 가능합니다. CloudWatch 에이전트를 Prometheus 서버의 드롭인 대체제로 사용할 수 있어 Observability를 개선하는 데 필요한 모니터링 도구의 수를 줄일 수 있습니다. 이 에이전트는 Amazon ECS에 배포된 컨테이너화된 애플리케이션에서 Prometheus 메트릭을 자동으로 검색하고 메트릭 데이터를 성능 로그 이벤트로 CloudWatch에 전송합니다.
Amazon ECS 클러스터에서 Prometheus 메트릭 수집과 함께 CloudWatch 에이전트를 배포하는 단계는 Amazon CloudWatch 사용자 가이드에 문서화되어 있습니다.
Prometheus용 Container Insights 모니터링에서 수집하는 메트릭은 사용자 지정 메트릭으로 요금이 부과됩니다. CloudWatch 요금에 대한 자세한 내용은 Amazon CloudWatch 요금을 참조하세요.