Datadog コース / Chapter 02
cost-api の全体像
この章で作るのはDatadogの設定ではなく、後で観測する対象です。HTTP、gRPC、外部APIの境界と、講座特有のECS配置判断を一本につなぎます。
- 入口は cost-aggregator
- 外部取得は cost-provider
- 講座では同一Task内をlocalhost接続
01
処理の往復を一本で追う
誰が次の誰を呼び、どこでデータを整形するかを固定する。

PostmanからGET /api/costを受けるのはcost-aggregatorです。aggregatorはgRPCでcost-providerを呼び、providerがAWS Cost and Usage APIへ到達します。
| 境界 | プロトコル | 役割 |
|---|---|---|
| Client → aggregator | HTTP | 利用者向けAPI |
| aggregator → provider | gRPC | 内部サービス呼び出し |
| provider → AWS | AWS API | 実コスト取得 |
観測では、どの境界で遅延・エラーが起きたかをこの順序に沿って切り分けます。
02
責務は分け、配置はあえて同居させる
論理的なサービス境界と、ECS上の配置単位は同じではない。

本来は独立スケールできる別ECS Serviceも候補です。しかしその場合はService ConnectやCloud Mapが必要です。この章では同一Taskに置き、localhost:50051でgRPC接続します。
| 観点 | 講座の構成 | 独立Service |
|---|---|---|
| 通信 | localhost | Service discovery |
| スケール | 2コンテナ一緒 | 個別に可能 |
| 学習負荷 | 低い | 高い |
同居は「マイクロサービスなら常に正解」ではなく、Datadogの観測学習へ集中するための教材上の選択です。
03
三段階で観測対象を成立させる
起動、内部連携、外部API接続を一度に検証しない。

- aggregatorの/api/healthがokを返す
- AWS_USE_MOCK=trueで固定データが返る
- AWS_USE_MOCK=falseで実コストが返る
curl -f http://localhost:8080/api/health curl http://localhost:8080/api/cost
ここまで通れば、後続章でMetrics・Logs・Tracesを導入したとき、観測設定ではなくアプリ疎通の問題に迷いにくくなります。