🔭

AWS Distro for OpenTelemetry(ADOT)とは何か?

に公開

この記事は「AWS×OpenTelemetryについて調査&検証してみた連載」の第1回目です。

はじめに:ADOTってなんだ?

AWSにおけるOpenTelemetryの利用について学習しようとしていて、「AWS Distro for OpenTelemetry(ADOT)」というものがあることを知りました。

AWSのサービス一覧を見ると、ADOTには専用のアイコンがありますが、AWSコンソールに「ADOT」というサービスがあるわけではありません。「ADOTってサービスじゃないの?何者?」という疑問が生まれました。

AWS Distro for OpenTelemetryのアイコン
ADOTのアイコン

ADOTの公式サイトでは、以下のように説明されています。

https://aws-otel.github.io/

AWS Distro for OpenTelemetry (ADOT) is a secure, production-ready, AWS-supported distribution of the Cloud Native Computing Foundation (CNCF) OpenTelemetry project.

つまり、「OpenTelemetryプロジェクトのAWSがサポートするディストリビューション」だということなのですが、正直これだけでは判然としませんでした。

そこで、「ADOTって結局どういうものなのか?」を自分なりに調べた結果を整理してみます。

OpenTelemetryとは何か

ADOTを理解するために、まずベースとなるOpenTelemetryについて整理します。

OpenTelemetryの公式ドキュメントでは、OpenTelemetryは以下のように説明されています。

https://opentelemetry.io/ja/docs/

OTelの略称でも知られるOpenTelemetryは、トレース、メトリクス、ログのようなテレメトリーデータを計装、生成、収集、エクスポートするためのベンダー非依存なオープンソースのオブザーバビリティフレームワークです。

つまり、OpenTelemetryはアプリケーションやインフラに対して計装コード(instrumentation)を仕込み、その情報を監視ツールへ送るための 標準仕様(プロトコル・SDK・Collectorなど) を定めたプロジェクトです。

一度OpenTelemetryで計装してしまえば、監視ツールの乗り換えも容易になりますし、同時に複数の監視ツールに送信することも可能になります。これがOpenTelemetryの大きなメリットです。

ディストリビューションとは?

ここで初めのADOTの説明で出てきた「ディストリビューション」という概念について整理します。

ディストリビューション=便利セット?

私は最初、「ディストリビューション」という言葉に引っ掛かりました。

ディストリビューションと言えば、まずLinuxディストリビューションが思い浮かぶ人もいると思います。私は、Linuxディストリビューション(Amazon LinuxやUbuntuなど)は、元々のLinuxからフォークされてOS部分からコードが異なっているものだと誤解していました。そのため、OpenTelemetryディストリビューションも、元々のOpenTelemetryライブラリからフォークされたものだと勘違いしていました。しかし実際に調べてみると、そうではありませんでした。

OpenTelemetryディストリビューションとは、OpenTelemetryコアライブラリに、ベンダー独自の機能を追加した便利セットのようなものです。ベースとなるコアライブラリはどのディストリビューションでも共通ですが、各ベンダーがそれぞれのサービスと組み合わせて使いやすくするために、独自の機能を追加しています。つまり、OpenTelemetryを“素の状態”で使うのではなく、“ベンダーに最適化された形”で簡単に使えるようにしたものが、OpenTelemetryディストリビューションです。

ADOTの特徴

ここまでの理解を踏まえると、ADOTが何なのか明確になってきます。

ADOTは、AWSが提供するOpenTelemetryディストリビューションです。OpenTelemetryのコアライブラリに、以下のAWS固有の機能を追加したものです。

  • OpenTelemetry SDK
    • AWSリソース固有のメタデータ(ECSのTask ID、Lambdaのバージョン、EKSのPod名など)の自動収集機能が組み込まれています。
  • 自動計装エージェント
    • OpenTelemetry自動計装エージェントに、AWS SDKおよびAWS X-Rayトレースデータのサポートが追加されています。
  • OpenTelemetry Collector
    • X-Ray、CloudWatch、Managed Service for Prometheusへの送信機能(エクスポーター)が含まれています。

これらの関係をまとめたのが、次の概念図です。

ADOT概念図
ADOTの概念図

ADOTの利点

では、なぜOpenTelemetryのライブラリを直接使うのではなくADOTを使うのでしょうか?ADOTを選択する利点をまとめます。

✅ 1. AWSサポート対象

ADOTはAWSが公式にサポートしており、問題が発生した際も、AWSのサポートチームから直接支援を受けることができます。

✅ 2. AWSサービスと統合済み

AWSリソースからメタデータを自動収集するため、AWSリソースを関連付けて分析しやすくなります。また、X-RayやCloudWatchへの送信機能が事前に組み込まれており、設定が簡単です。

✅ 3. AWS環境での検証・最適化済み

AWSの環境で動作するよう、検証・最適化がされており、特にパフォーマンステストでは、ADOT自体がアプリケーションの動作に悪影響を与えないよう、様々な条件でテストされています。
👉 ADOT Collector Performance Report

✅ 4. AWS環境で導入しやすい

ECSやEKSでは、ADOTコレクターをサイドカーとして簡単にデプロイできます。Lambdaでは、ADOT Lambdaレイヤーが提供されており数クリックで有効化できます。EC2でも、SSM Distributor等を使って簡単にデプロイ可能です。

他のOpenTelemetryディストリビューション

ADOT以外にも、多くのベンダーがOpenTelemetryディストリビューションを提供しています。

  • Microsoft:Azure Monitor OpenTelemetry Distro
  • Elastic:Elastic OTel Distro
  • Grafana:Grafana Distribution of OpenTelemetry

公式の一覧はこちらです。
👉 OpenTelemetry公式・ディストリビューション一覧

まとめ:ADOTはAWSに最適化されたOpenTelemetry便利セット

この記事では、ADOTとは何か?という疑問から、以下を整理しました。

  • ADOTとは?
    • OpenTelemetryのAWSディストリビューション
    • コアライブラリにAWS向け機能を追加した便利セット
  • ADOTを使う理由
    • AWSサポート対象
    • AWSサービスと統合済み
    • AWS環境での検証・最適化済み
    • AWSで導入しやすい

次回は、ADOTを利用して、実際にAWSにトレースを送信する場合の構成パターンと、X-RayやCloudWatchなどの送信先の違いについて整理したいと思います。

参考


この記事が、OpenTelemetryやADOTに興味を持っている方にとって、理解の助けになる第一歩になっていれば嬉しいです。
間違いや補足があれば、コメントで教えてください。

Discussion