[DataDog] AWS ECS 에이전트 구성하기

[원본 링크]

얘들 문서가 너무 개떡같더라.
내가 직접 붙인 방법을 기록한다.

AWS ECS(Fargate) 환경에서는 좀 세팅 방법이 번거로운 편이다.
사이드카 컨테이너를 하나 띄우고, 메인 컨테이너에서도 에이전트 구성을 다 해줘야 한다.
그렇게 해서 에이전트 -> 사이드카 -> DataDog의 통신 구조를 엮는다.




사이드카 구성

기존 ECS 작업정의를 수정하면서, 컨테이너를 하나 추가한다.

ECR 공식 이미지로 사이드카 이미지를 제공하니까, 그거 대충 넣으면 된다. 포트도 열어야 한다.


그리고 환경변수로 DataDog 인증정보 등을 넣어준다.

JSON으로도 적어둔다.

{
            "name": "datadog",
            "image": "public.ecr.aws/datadog/agent:latest",
            "cpu": 0,
            "portMappings": [
                {
                    "containerPort": 8125,
                    "hostPort": 8125,
                    "protocol": "tcp",
                    "name": "datadog-8125-tcp"
                },
                {
                    "containerPort": 8126,
                    "hostPort": 8126,
                    "protocol": "tcp",
                    "name": "datadog-8126-tcp"
                }
            ],
            "essential": false,
            "environment": [
                {
                    "name": "ECS_FARGATE",
                    "value": "true"
                },
                {
                    "name": "DD_API_KEY",
                    "value": "...키..."
                },
                {
                    "name": "DD_SITE",
                    "value": "datadoghq.com"
                },
                {
                    "name": "DD_PROCESS_AGENT_ENABLED",
                    "value": "true"
                }
            ],
            "environmentFiles": [],
            "mountPoints": [],
            "volumesFrom": [],
            "systemControls": []
        }

그렇게 해서

오류 없이 잘 뜨면 된 것이다.




에이전트

메인 컨테이너, 프로그램 코드에서는 가이드에서 제공하는대로 라이브러리를 깔고 옵션들을 켜서 쓰면 된다.
사이드카가 같은 네트워크에서 실행되기 때문에, 엔드포인트는 localhost:8126으로 설정하면 된다.

Node.js의 경우
https://docs.datadoghq.com/ko/tracing/trace_collection/dd_libraries/nodejs/

Python의 경우
https://github.com/datadog/datadogpy

Go의 경우
https://github.com/datadog/dd-trace-go

아무튼 그렇게 실행하고, 잘 연결이 된다면

이렇게 잘 뜰 것이다.



참조
https://www.datadoghq.com/architecture/using-datadog-with-ecs-fargate/
https://docs.datadoghq.com/ko/integrations/aws-fargate/?tab=webui