0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ECS on Fargate でトレースを取得する

Last updated at Posted at 2024-02-12

概要

AWS Distro for OpenTelemetry サイドカーを作成することで、Amazon ECS は、アプリケーションから AWS X-Ray にトレースをルーティングします。

設定

必要な設定は 2 つだけ

  • タスクロールを作成する
  • AWS Distro for OpenTelemetry サイドカーコンテナを追加する

タスクロールを作成する

タスクが、AWS X-Ray にトレースをルーティングするための権限をタスクロールに追加してあげる必要があります。

AWSXRayDaemonWriteAccess 管理ポリシーをアタッチしてあげれば良いです。

AWSDistroOpenTelemetryPolicyForXray
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "xray:PutTraceSegments",
                "xray:PutTelemetryRecords",
                "xray:GetSamplingRules",
                "xray:GetSamplingTargets",
                "xray:GetSamplingStatisticSummaries"
            ],
            "Resource": "*"
        }
    ]
}
AmazonECS_OpenTelemetryXrayRole
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "",
            "Effect": "Allow",
            "Principal": {
                "Service": "ecs-tasks.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}

AWS Distro for OpenTelemetry サイドカーコンテナを追加する

コンソールからの場合は、モニタリング - オプションで、AWS Distro for OpenTelemetry サイドカーコンテナを簡単に作成できます。
スクリーンショット 2024-02-10 19.02.37.png

コンソールを使用していない場合は、AWS OpenTelemetry Distro サイドカーコンテナ をタスク定義に追加します。

{
	"family": "otel-using-xray",
	"taskRoleArn": "arn:aws:iam::111122223333:role/AmazonECS_OpenTelemetryXrayRole",
	"executionRoleArn": "arn:aws:iam::111122223333:role/ecsTaskExecutionRole",
	"containerDefinitions": [{
			"name": "aws-otel-emitter",
			"image": "application-image",
			"logConfiguration": {
				"logDriver": "awslogs",
				"options": {
					"awslogs-create-group": "true",
					"awslogs-group": "/ecs/aws-otel-emitter",
					"awslogs-region": "us-east-1",
					"awslogs-stream-prefix": "ecs"
				}
			},
			"dependsOn": [{
				"containerName": "aws-otel-collector",
				"condition": "START"
			}]
		},
		{
			"name": "aws-otel-collector",
			"image": "public.ecr.aws/aws-observability/aws-otel-collector:v0.30.0",
			"essential": true,
			"command": [
				"--config=/etc/ecs/otel-instance-metrics-config.yaml"
			],
			"logConfiguration": {
				"logDriver": "awslogs",
				"options": {
					"awslogs-create-group": "True",
					"awslogs-group": "/ecs/ecs-aws-otel-sidecar-collector",
					"awslogs-region": "us-east-1",
					"awslogs-stream-prefix": "ecs"
				}
			}
		}
	],
	"networkMode": "awsvpc",
	"requiresCompatibilities": [
		"FARGATE"
	],
	"cpu": "1024",
	"memory": "3072"
}

動作確認

次の通り、AWS Distro for OpenTelemetry サイドカーコンテナが追加されました。

スクリーンショット 2024-02-12 18.20.40.png

なお、main-container は、AWS Open Source Blog に記載のあったイメージを使用させていただいております。

次の通りコンテナにリクエスします。

curl -v http://X.X.X.X:8080/outgoing-http-call

CloudWatch > トレースを確認し記録されていることを確認しましょう。

スクリーンショット 2024-02-12 18.27.27.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?