ota2000
2 min read

個人ドメインのインフラを Terraform で管理する

個人ドメイン ota2000.com のインフラを全て Terraform で管理している。

構成

  • DNS: CNAME、MX、SPF、DKIM、DMARC
  • Cloudflare Pages: GitHub 連携による自動デプロイ
  • Email Routing: Gmail への転送ルール
  • Bulk Redirects: 短縮 URL (/s/github など)
  • Transform Rules: セキュリティヘッダー

なぜ Terraform で管理するか

Cloudflare のダッシュボードでも設定はできる。ただ Terraform にしておくと便利な点がいくつかある。

  • 変更履歴が Git に残る。誰が何をいつ変えたか明確
  • PR ベースでレビューできる
  • 同じ構成を別ドメインにも適用できる
  • 手動変更があれば terraform plan で検知できる

Cloudflare Provider v5 の注意点

Cloudflare の Terraform Provider v5 では構文が大きく変わった。

# v4 (ブロック構文)
build_config {
  build_command = "npm run build"
}

# v5 (オブジェクト引数)
build_config = {
  build_command = "npm run build"
}

rulesitems も同様にリスト形式に変わっている。v4 のサンプルコードをそのまま使うとエラーになるので注意。

Backend

State 管理には Terraform Cloud (Free) を使っている。個人利用なら 500 リソースまで無料で、Web UI から plan/apply の結果も確認できる。

個人サイトでも IaC 化しておくと設定の見通しが良くなる。DNS レコードは手動管理だと何のために追加したか忘れがちなので、コードとして残しておく価値がある。