TL

Cloud Service

AWS Distro for OpenTelemetry (ADOT)

ベンダーロックインを避けつつメトリクス・トレース・ログを一括計装。OpenTelemetry を AWS が検証・サポートして配布し、X-Ray や CloudWatch、Managed Prometheus へまとめて送れる ADOT。

中級DVA-C02DOP-C02SOA-C02運用上の優秀性パフォーマンス効率
最終更新: 2026-06-28公式ドキュメント ↗
TL;DR要点だけ先に
  • 1.OpenTelemetry の AWS 公式ディストリビューションで、計装を1つに統一できる。
  • 2.1度計装すれば X-Ray・CloudWatch・Managed Prometheus など複数の送り先に同時送信できる。
  • 3.SDK とコレクターから成り、コレクターが収集・変換・転送のハブになる。

解決する課題

可観測性(オブザーバビリティ)を整えようとすると、監視ベンダーや送り先ごとに別々のエージェントや SDK を入れることになりがちです。これは次の問題を生みます。

  • 送り先を変えるたびにアプリの計装をやり直すことになり、ベンダーロックインに陥る
  • メトリクス・トレース・ログでそれぞれ別の仕組みを使い、運用と設定が分散する
  • オープンソースの OpenTelemetry をそのまま使うと、バージョン管理やサポートを自前で抱える

AWS Distro for OpenTelemetry(ADOT)は、ベンダー中立な標準である OpenTelemetry を AWS がテスト・検証・サポートして配布するものです。1度の計装で、X-Ray・CloudWatch・Amazon Managed Service for Prometheus など複数の送り先へデータを送れるようにします。

主要概念と用語

  • OpenTelemetry(OTel): メトリクス・トレース・ログを統一的に扱うための、ベンダー中立なオープンソースの可観測性標準
  • ディストリビューション: OpenTelemetry 本体を AWS が検証・サポートしてパッケージ化したもの。それが ADOT
  • テレメトリの3信号: メトリクス(数値の時系列)、トレース(リクエストの横断的な流れ)、ログ(イベント記録)の総称
  • ADOT SDK / 自動計装: 言語ごとのライブラリ。アプリのコードに計装を組み込み、テレメトリを生成する
  • ADOT コレクター: 収集(receiver)・加工(processor)・転送(exporter)を担うエージェント。OpenTelemetry Collector をベースにする
  • レシーバー / プロセッサー / エクスポーター: コレクターのパイプライン構成要素。受信・変換・送信をそれぞれ担当する
  • OTLP: OpenTelemetry Protocol。SDK とコレクター間、コレクター間でテレメトリを運ぶ標準プロトコル
  • エクスポーター: 収集したデータを特定の送り先(X-Ray、CloudWatch、Prometheus など)の形式に変換して送る部品

仕様・制限・クォータ

  • 主要なプログラミング言語向けの SDK と、コレクターのコンテナ/ディストリビューションが提供される
  • 送信先は単一ではなく、X-Ray・CloudWatch(メトリクスやログ)・Amazon Managed Service for Prometheus など複数を同時に設定できる
  • コレクターは EC2 上のエージェント、ECS や EKS のサイドカー/デーモン、Lambda のレイヤーなど、さまざまな実行形態で動かせる
  • 実際の取り込み量・保持期間・クォータは、送信先となる各サービス側(X-Ray や CloudWatch など)の仕様に従う
  • コレクター自体はリージョンをまたいで自由に転送できるが、送り先サービスのリージョン構成に合わせる必要がある
ADOT は配管、保存は送り先側

ADOT が担うのは「計装と転送」です。データの保存・保持・課金は X-Ray や CloudWatch、Managed Prometheus といった送り先サービスが担います。両者の役割を分けて考えると設計が整理できます。

内部の仕組み

アプリに組み込んだ ADOT SDK(または自動計装)が、メトリクス・トレース・ログを生成し、OTLP で ADOT コレクターへ送ります。コレクターは3段のパイプラインで処理します。

  • レシーバーで OTLP や Prometheus 形式などのデータを受け取る
  • プロセッサーでバッチ化、属性の付与・除去、サンプリングなどの加工を行う
  • エクスポーターで X-Ray、CloudWatch、Managed Prometheus など各送り先の形式へ変換して送信する

この構成により、アプリ側の計装は OpenTelemetry のまま固定しつつ、送り先の追加や差し替えはコレクターの設定変更だけで済みます。トレースは X-Ray へ、メトリクスは CloudWatch や Managed Prometheus へ、といった振り分けも1つのコレクターで実現できます。

計装漏れでデータが繋がらない

HTTP クライアントやメッセージングの計装が抜けると、トレース ID が伝播せずトレースが分断されます。自動計装でカバーされる範囲と、手動計装が必要な箇所を確認します。

設計パターン / ベストプラクティス

  • コレクターをハブにする: アプリは OTLP でコレクターに送るだけにし、送り先の制御はコレクター設定に集約する
  • 実行環境に合わせた配置: EKS ではデーモンセット、ECS ではサイドカー、Lambda ではレイヤー、と環境に応じてコレクターを配置する
  • プロセッサーで属性を整える: 環境名やサービス名などの共通属性を付与し、不要なラベルやカーディナリティの高い値は除去する
  • サンプリングでトレース量を制御: 重要なリクエストは記録率を上げ、ヘルスチェックなどは記録しないようにしてコストを抑える
  • バッチ処理を有効に: バッチプロセッサーで送信をまとめ、送り先 API の呼び出し回数とオーバーヘッドを減らす

運用・監視

  • テレメトリが届かない場合は、SDK の計装、コレクターの稼働、エクスポーター設定、IAM 権限を順に確認する
  • コレクター自身のヘルスやパイプラインの処理状況を監視し、ドロップやキューの詰まりを早期に検知する
  • 送り先が複数あるときは、どのエクスポーターで失敗しているかを切り分ける
  • バージョン更新時は、SDK・コレクター・送り先の互換性を確認してから展開する

コスト

  • ADOT 自体は OpenTelemetry のディストリビューションであり、課金の中心は送り先サービス側で発生する
  • トレースは X-Ray、メトリクスは CloudWatch や Managed Prometheus、ログは CloudWatch Logs の料金体系に従う
  • コレクターを EC2 や ECS/EKS で動かす場合は、そのコンピュートリソースのコストがかかる
  • サンプリングや高カーディナリティの抑制で、送り先での取り込み量と課金を下げられる

セキュリティ

  • コレクターやアプリには IAM ロールを付与し、各送り先への送信権限を最小権限で与える
  • Managed Prometheus へ送る場合は **SigV4 署名(IAM 認証)**が必要になる点に注意する
  • テレメトリに個人情報や認証情報を載せない。属性やメタデータに機密値を入れないようプロセッサーでマスク・除去する
  • 送り先サービス側で保存時の**暗号化(KMS)**が適用される。API 操作の監査は CloudTrail で記録する
テレメトリに秘密を載せない

トークンやパスワード、フルのカード番号などを属性に含めると、テレメトリを閲覧できる人に漏れます。機密値はコレクターのプロセッサーで除去するか、そもそも生成しないようにします。

関連サービス・比較

トレースの送り先となる AWS X-Ray とよく対比されます。両者は競合ではなく、ADOT が計装と転送、X-Ray が保存と可視化という補完関係です。

観点ADOTAWS X-Ray
役割計装と収集・転送の標準トレースの保存と可視化
対象信号メトリクス・トレース・ログ主にトレース
送り先X-Ray やCloudWatch など複数X-Ray 自身が保存先
中立性ベンダー中立なOTel ベースAWS ネイティブ

ハンズオン / CLI例

# ECS タスク定義に ADOT コレクターをサイドカーとして登録する例
aws ecs register-task-definition \
  --family my-app-with-adot \
  --cli-input-json file://taskdef-with-adot-collector.json

# コレクターからの送信に使う IAM ロールを作成し、必要なポリシーを付与
aws iam create-role \
  --role-name adot-collector-role \
  --assume-role-policy-document file://ecs-trust-policy.json

aws iam attach-role-policy \
  --role-name adot-collector-role \
  --policy-arn arn:aws:iam::aws:policy/AWSXrayWriteOnlyAccess

aws iam attach-role-policy \
  --role-name adot-collector-role \
  --policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy

AWS Service

AWS Distro for OpenTelemetry (ADOT)を実務で読む

TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。

解決すること

監視・オブザーバビリティ

比較で見る軸

クラウド: AWS / カテゴリ: 監視・オブザーバビリティ / 難易度: intermediate

導入後に効く点

1度計装すれば X-Ray・CloudWatch・Managed Prometheus など複数の送り先に同時送信できる。

先に潰すリスク

サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。

数字・仕様の読み方
クラウド
AWS
カテゴリ
監視・オブザーバビリティ
難易度
intermediate
関連資格
DVA-C02 / DOP-C02 / SOA-C02
設計柱
operational / performance

判断チェックリスト

  • 自社の用途が「監視・オブザーバビリティ / operational」に近いか確認する。
  • 強みである「OpenTelemetry の AWS 公式ディストリビューションで、計装を1つに統一できる。」が本当に評価軸になるか確認する。
  • 注意点の「サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。」を運用で吸収できるか確認する。
  • 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
  • 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
  • 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。

次に確認する観点

監視・オブザーバビリティoperationalperformanceDVA-C02DOP-C02