Skip to content

design(infra): Private DNS for RDS 採否 ADR(infra/docs/adr/0001-...) #222

Description

@win2cot

Phase 1 Setup 2-3: Private DNS for RDS 採否 ADR

概要

Route53 Private Hosted Zone を使った RDS エンドポイント固定化(env 不問の DNS 名)の採否を ADR として記録する。infra/docs/adr/0001-private-dns-for-rds.md を起票(IaC 固有 ADR、infra/docs/adr/ 配下)。

採用方針は infrastructure-plan v5 §3.5.1 で確定済(2026-05-23)、本 Issue で経緯を ADR 化。

詳細仕様: docs/architecture/infrastructure-plan.md v5 §3.5.1。

背景

infrastructure-plan v5 策定中の議論で、各 env(dev/stg/prd)の VPC に 同名 Private Hosted Zone tasks.internal を独立して作成し、db.tasks.internal の CNAME を被せる方針を採用。

メリット:

  • env 切替時にアプリ ENV 不変(DATASOURCE_URL=jdbc:mysql://db.tasks.internal:3306/tasks が全 env 共通)
  • Aurora 移行 / エンジン切替時もアプリ ENV 不変
  • VPC 境界が PHZ 境界と一致、env 間 DNS 漏洩リスクなし

判断根拠を ADR で残し、Sprint 0 Infra S0Infra-8(PHZ 構築)+ Sprint 1 Infra S1Infra-1(RDS CNAME 登録)実装の前提とする。

議論ポイント(ADR で記録)

  1. PHZ 構成: env 毎独立 PHZ(同名 tasks.internal)vs 単一 PHZ + env prefix(db-dev.tasks.internal 等)
  2. アプリ ENV 不変性: DATASOURCE_URL 全 env 共通化の利点
  3. コスト: Route53 PHZ $0.50/月 × VPC 数 + クエリ料(ほぼ 0)
  4. 運用複雑度: DNS 解決層が 1 つ増えるトラブルシューティング
  5. Aurora 移行時の振る舞い: CNAME 先を書き換えるだけ
  6. MySQL → Aurora エンジン切替時: reader/writer endpoint も同様にラップ可能
  7. 代替案: RDS endpoint を Terraform output 経由で ECS Task Definition env に直接注入(シンプル、env ENV 変動受容)

ADR 内容(infra/docs/adr/0001-private-dns-for-rds.md)

下記セクションを含む:

  • Title / Status (Accepted)
  • Context(infrastructure-plan v5 策定議論、env 共通 ENV を求めて)
  • Decision(env 毎独立 PHZ + 同名 record の (α) 案を採用)
  • Consequences(コスト・運用・将来拡張)
  • Alternatives Considered(単一 PHZ + env prefix、Private DNS 不採用案)
  • Related: infrastructure-plan v5 §3.5.1、Sprint 0 Infra S0Infra-8、Sprint 1 Infra S1Infra-1

受入条件

  • infra/docs/adr/0001-private-dns-for-rds.md が存在し、accepted status
  • 議論ポイント 1〜7 すべてに比較・根拠が記載
  • (α) env 毎独立 PHZ + 同名 record 方針 と明示
  • Sprint 0 Infra S0Infra-8 / Sprint 1 Infra S1Infra-1 が参照可能な粒度
  • infra/docs/adr/ ディレクトリが新規作成される(本 ADR が初回)

関連

備考

  • task-type: task-type:design
  • 優先度: priority/p0
  • area: area/infra
  • 配置: infra/docs/adr/ 配下(IaC 固有 ADR、横断 ADR とは別 namespace)

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/infraAWS インフラ(ECS Fargate / RDS / Keycloak / IAM)変更claude:ready実装着手 OK のサイン。人が付与すると実装 Claude が起動priority/p0Critical / Blocker。本番影響あり、または他作業がブロックされるtask-type:design規約・ADR・設計書の追加/変更タスク

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions