안녕하세요, devyu입니다.
오늘은 DevOps의 핵심 요소 중 하나인 모니터링에 대해 이야기해보려고 합니다. 특히 AWS ECS Fargate 환경에서 Datadog을 활용하여 애플리케이션 로그 및 상태를 모니터링하는 방법을 소개하겠습니다.
안녕하세요, devyu입니다.
오늘은 DevOps의 핵심 요소 중 하나인 모니터링에 대해 이야기해보려고 합니다. 특히 AWS ECS Fargate 환경에서 Datadog을 활용하여 애플리케이션 로그 및 상태를 모니터링하는 방법을 소개하겠습니다.
최종적으로 제가 작성한 구조는 다음과 같습니다.

먼저, ECS에서 구동되는 애플리케이션의 로그와 상태를 Datadog으로 모니터링하는 전체적인 구조를 살펴보겠습니다.

ECS는 AWS의 컨테이너 관리 서비스로, Fargate를 이용하면 서버를 직접 관리할 필요 없이 컨테이너를 실행할 수 있습니다. 그리고 Datadog은 서비스 전반에 대한 End-to-End 모니터링을 제공하여, 다양한 인프라와 플랫폼의 로그를 통합하여 관리할 수 있도록 도와줍니다.
Datadog은 애플리케이션과 인프라를 모니터링할 수 있는 강력한 솔루션입니다. AWS 환경에서 ECS Fargate와 연동하면, 별도의 서버를 운영하지 않고도 애플리케이션 로그, 상태 및 성능을 실시간으로 분석할 수 있습니다.
이제 본격적으로 ECS Fargate에서 Datadog을 연결하는 과정을 살펴보겠습니다.
Datadog을 ECS Fargate에 적용하기 위해 필요한 요소는 다음과 같습니다:
(이미지 캡처를 못해서, 문장으로 설명 대체했습니다..)
1. AWS Console에서 ECS에 접속하여 Datadog Agent를 적용할 Task를 선택합니다.
2. Task를 선택한 후 "Create New Version"을 클릭하여 Task를 업데이트할 수 있도록 설정합니다.
3. "Container Definition" 섹션에서 "Add Container"를 클릭하여 Datadog Agent 컨테이너를 추가합니다.
4. Datadog Agent 컨테이너는 별도의 이미지를 생성할 필요 없이 공식 이미지를 사용할 수 있습니다.
public.ecr.aws/datadog/agent:latest8125/8126| 변수명 | 설명 |
|---|---|
| DD_ENV | 애플리케이션 환경 (dev, local, production) |
| DD_SERVICE | 애플리케이션 서비스 명칭 |
| DD_PROFILING_ENABLED | Continuous Profiler 활성화 여부 |
| DD_LOG_INJECTION | MDC key injection 활성화 |
여기까지 완료되었다면, ECS Task에 Datadog Agent 컨테이너가 추가된 것입니다. 이제 애플리케이션에서 로그 및 성능 데이터를 Datadog으로 전송하기 위한 설정을 진행합니다.
JVM 기반 애플리케이션에서 Datadog Tracing Agent를 활성화하려면, ENTRYPOINT를 수정해야 합니다.
# 기존 설정 (AS-IS)
ENTRYPOINT ["java", "-Dspring.profiles.active=production", "-jar", "/app.jar"]
# 변경된 설정 (TO-BE)
ENTRYPOINT ["java", "-javaagent:/usr/agent/dd-java-agent.jar", "-Ddd.agent.host=localhost",
"-Ddd.profiling.enabled=true","-XX:FlightRecorderOptions=stackdepth=256", "-Ddd.logs.injection=true",
"-Ddd.service=my-app", "-Ddd.env=prod", "-Dspring.profiles.active=production", "-jar", "/app.jar"]
Datadog Agent가 ECS Task 내에 포함되었기 때문에, -Ddd.agent.host=localhost로 설정하여 애플리케이션에서 로컬 Datadog Agent로 데이터를 보낼 수 있도록 합니다.
ECS에서 Task를 실행할 때 사용할 수 있는 네트워크 모드는 다음과 같습니다.



모든 설정이 완료되면 Datadog에서 다음과 같은 데이터를 실시간으로 확인할 수 있습니다.
오늘은 AWS ECS Fargate에서 Datadog을 활용하여 애플리케이션을 모니터링하는 방법을 살펴봤습니다. CI/CD 환경에서 모니터링을 효과적으로 설정하면, 장애 감지 및 문제 해결이 훨씬 수월해집니다.