Datadog コース / Chapter 03
cost-api stg基盤 前編
ECSを作る前に、何をどの単位で用意するかを整理します。2つのコンテナが1つのTaskで動くため、ECR・IAM・SG・S3 envはそれぞれ異なる境界を持ちます。
- ECRは2つ
- Task Roleは1つ
- 最初はmock-first
01
2つのイメージを別々に届ける
Taskが1つでも、build・push・更新する成果物は2つ。

cost-aggregator-stgとcost-provider-stgのECRを作成し、それぞれへDocker imageをpushします。Task Definitionは後で両方のimage URIを参照します。
| 単位 | 数 | 理由 |
|---|---|---|
| ECR repository | 2 | イメージごとに更新 |
| ECS Task | 1 | 講座では同居 |
| ECS Service | 1 | 同じdesired count |
「同じTaskに入る」ことと「同じイメージにまとめる」ことは別です。
02
Task RoleとSecurity Groupで境界を作る
AWS APIの権限と、ALBからの通信許可は別の制御。

ALBから8080へのinboundはSecurity Groupが制御します。一方、providerがCost Explorerを呼べるかはTask Roleが制御します。
| 仕組み | 守る境界 | 判断 |
|---|---|---|
| Security Group | ネットワーク | ALB→8080のみ |
| Task Role | AWS API権限 | 1 Taskで共有 |
共有Roleにはproviderだけが使う権限も含まれます。教材の単純化であり、別Task化するならRoleも分けます。
03
S3 envはmock-firstで始める
起動確認と外部サービス連携を同時にデバッグしない。

| 設定 | 初期値 | 効果 |
|---|---|---|
| DATADOG_ENABLE_TRACE | false | Trace依存を外す |
| DATADOG_USE_MOCK | true | Datadog APIをmock |
| AWS_USE_MOCK | true | AWS APIをmock |
各コンテナ用envファイルをconfig S3 bucketへ置き、Task Definitionから読み込みます。イメージを作り直さず環境設定を切り替えられます。
Correction: 教材の一文に「USE_MOCK=trueで実API」とありますが、掲載コードと後続説明ではtrueがmock、falseが実APIです。