← ECS Fargate 모니터링
🏗️

01 / 06

아키텍처

Prometheus + Grafana 모니터링 아키텍처 구성, ECS-discovery 컨테이너 연동, MySQL Exporter 구성

PrometheusGrafanaArchitecture
아키텍처도입 배경JVM 메트릭ecs-discovery대시보드일정 & 비용

Architecture

아키텍처 개요

ECS Fargate 환경에서 JVM 메트릭을 수집하기 위해 Prometheus + Grafana 기반 모니터링 아키텍처를 구성했다. Fargate Task 내 Spring Boot 애플리케이션이 Actuator를 통해 메트릭을 노출하고, ecs-discovery 컨테이너가 ECS Task 목록을 자동 탐지하여 Prometheus가 수집할 수 있도록 연결한다.

ECS Fargate 모니터링 아키텍처 다이어그램

Monitoring Flow

Instance: [Company] Replica DB

GrafanaPrometheus
Metrics
ECS Info
Metrics

ECS Cluster

Fargate

Spring App (Actuator)
ecs-discovery
MySQL ExporterMariaDB 11.4

* 회사명, IP 등 민감 정보는 일반화하여 표시했습니다

Components

구성 요소

🏗️

ECS Cluster / Fargate

Spring Boot 애플리케이션이 Fargate Task로 실행된다. 각 Task는 awsvpc 네트워크 모드로 고유 ENI를 할당받으며, Actuator 엔드포인트를 통해 JVM 메트릭을 노출한다.

🍃

Spring App (Actuator)

Spring Boot Actuator의 /actuator/prometheus 엔드포인트를 활성화하여 Micrometer 기반 JVM 메트릭(Heap, GC, Thread, CPU 등)을 Prometheus 형식으로 노출한다.

🔍

ecs-discovery

ECS API를 주기적으로 호출하여 실행 중인 Task 목록을 조회하고, Docker Labels를 파싱하여 Prometheus가 읽을 수 있는 ecs_file_sd.yml 파일을 생성한다. Fargate Task의 동적 IP 변경에 자동 대응한다.

🔥

Prometheus

ecs_file_sd.yml을 기반으로 Fargate Task의 메트릭 엔드포인트를 자동 탐지하고 주기적으로 스크래핑한다. EC2 인스턴스([Company] Replica DB)에서 실행되며, MySQL Exporter 메트릭도 함께 수집한다.

📊

Grafana

Prometheus를 데이터 소스로 연결하여 JVM 메모리, GC, Thread 등의 대시보드를 구성한다. 동일한 EC2 인스턴스([Company] Replica DB)에서 실행된다.

🗄️

MySQL Exporter

MariaDB 11.4에 연결하여 데이터베이스 메트릭(쿼리 수, 커넥션 수, 슬로우 쿼리 등)을 Prometheus 형식으로 변환하여 노출한다.

💾

MariaDB 11.4

애플리케이션의 주 데이터베이스로, MySQL Exporter를 통해 DB 레벨 메트릭이 Prometheus로 수집된다. [Company] Replica DB 인스턴스에서 운영된다.

Data Flow

데이터 흐름

1

메트릭 노출

Spring App이 Actuator /actuator/prometheus 엔드포인트를 통해 JVM 메트릭을 노출

Spring AppPrometheus 엔드포인트
2

Task 탐지

ecs-discovery가 ECS API를 호출하여 실행 중인 Fargate Task IP를 탐지하고 ecs_file_sd.yml 생성

ecs-discoveryecs_file_sd.yml
3

메트릭 수집

Prometheus가 ecs_file_sd.yml 기반으로 각 Task의 메트릭 엔드포인트를 스크래핑

PrometheusSpring App 메트릭
4

DB 메트릭 수집

MySQL Exporter가 MariaDB 11.4에 연결하여 DB 메트릭을 Prometheus로 전달

MySQL ExporterPrometheus
5

시각화

Grafana가 Prometheus를 데이터 소스로 연결하여 JVM 대시보드를 렌더링

PrometheusGrafana 대시보드
도입 배경