Skip to content

infra(terraform): Phase 1 Sprint 0 — Terraform プロジェクト構造 ADR(S0Infra-1) #238

Description

@win2cot

Phase 1 Sprint 0 Infra-1: Terraform プロジェクト構造 ADR

概要

AWS IaC を Terraform で構築するにあたり、リポジトリ構造・モジュール分割・環境分離方式を ADR として確定する。infra/docs/adr/0002-terraform-project-structure.md 新規作成。

詳細仕様: docs/architecture/infrastructure-plan.md v5 §3.1(環境別構成図)/ §3.3(リポジトリ構成)/ §6.1 Phase 1 Sprint 0 Infra(Terraform 基盤)。

背景

Phase 1 Sprint 0 〜 Sprint 5 で AWS リソース(VPC / RDS / ECS / ALB / Keycloak Custom / S3+CloudFront / Route53 + ACM 等)を段階的に Terraform で構築する。最初に構造を確定しないと、Sprint 1 以降の Issue が module 分割や環境差異で迷走する。

なお MVP リリース時の対象環境は local + gha + dev のみ(stg / prd は構築せず、Terraform 設計も Post-Sprint-0 に延期。infrastructure-plan v5 §1.3 / §3.1)。

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

  1. ディレクトリ構造: infra/modules/<resource>/ + infra/environments/<env>/ の二層構成
  2. 環境分離: MVP リリース対象は dev のみ(local + gha + dev、stg / prd は構築せず Post-Sprint-0 に延期 — infrastructure-plan v5 §1.3 / §3.1)。ただし infra/environments/<env>/ の二層構造は将来の stg / prd 追加を見越して設計する。共通定義は modules で共有
  3. state ファイル分離: env 毎に独立した state(S0Infra-2 と整合)
  4. モジュール粒度: VPC / RDS / ECS / ALB / Route53 等を module 単位に。共通 module(network 等)はネスト可
  5. provider バージョン管理: versions.tf で AWS provider / Terraform 本体の制約明示
  6. 命名規約: リソース名・タグ・モジュール名のルール

受入条件

  • infra/docs/adr/0002-terraform-project-structure.md が Accepted ステータスで存在
  • 議論ポイント 6 項目すべてに決定と根拠が記載されている
  • ディレクトリ構造方針(infra/environments/<env>/ + infra/modules/ の二層、Sprint 0 は dev のみ・per-concern 5 module 限定)が ADR §3 / §6 に明記されている。※空 module ディレクトリは先に作らない決定(ADR §3 D)のため、実ディレクトリの生成は S0Infra-2 / S0Infra-4〜8 の各実装 Issue が担当(本 Issue のスコープ外)
  • Sprint 1 以降の Issue が本 ADR を参照できる(§7 参照リンクあり)

関連

備考

  • task-type: task-type:design
  • 優先度: priority/p0
  • area: area/infra
  • claude-automation 推奨: 議論先行

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/infraAWS インフラ(ECS Fargate / RDS / Keycloak / IAM)変更priority/p0Critical / Blocker。本番影響あり、または他作業がブロックされるtask-type:design規約・ADR・設計書の追加/変更タスク

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions