0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

個人的備忘録:Terraformディレクトリ整理の個人メモ(ファイル分割編)

Last updated at Posted at 2025-04-24

はじめに

本記事は、Terraformによるインフラ構成管理において、リソースごとにファイルを分割して整理する方法をまとめたものです。

以前のハッカソンで、1枚の main.tf に多くの記述をしてしまい、レビュー時に「コードレベルで分割した方が良い」との指摘をいただきました。

そこで、少し時間があったタイミングで、各リソースをファイル単位で整理する形に挑戦してみました。

この内容はあくまで個人の備忘録となり、箸書きのメモ程度ですが、今後Terraformを使う際や構成の整理をする際の一助になれば幸いです。

Terraformディレクトリ構成の整理例

以下は、Terraformファイル一覧に基づいて整理したディレクトリ構成の一例です。

実際のリポジトリ

terraform/
├── alb.tf                  # Application Load Balancer関連の設定
├── cloudfront.tf          # CloudFrontの設定
├── ecs.tf                 # ECSクラスターやサービス定義
├── internet_gateway.tf    # インターネットゲートウェイの設定
├── local_file.tf          # ローカルファイル出力など(例:Terraform output用)
├── main.tf                # メイン設定ファイル(entry point)
├── nat_gateway.tf         # NATゲートウェイの設定
├── provider.tf            # プロバイダー(例:AWS)定義
├── rds.tf                 # RDSインスタンスの設定
├── README.md              # プロジェクトの概要や使用方法など
├── route_table.tf         # ルートテーブル関連の設定
├── route53.tf             # Route 53(DNS)設定
├── s3.tf                  # S3バケット定義(静的ホスティングやログ保存など)
├── security_groups.tf     # セキュリティグループの定義
├── subnet.tf              # サブネットの設定
├── variables.tf           # 変数定義ファイル
└── vpc.tf                 # VPCの定義

このように、各リソースごとにファイルを分けて管理することで、構成が分割されており保守性や可読性が向上します。

補足:さらなるディレクトリ分けの提案

より大規模なプロジェクトやチーム開発を想定する場合、以下のようにカテゴリごとにディレクトリ分けすることも推奨されます。

terraform/
├── network/
│   ├── vpc.tf
│   ├── subnet.tf
│   ├── internet_gateway.tf
│   ├── nat_gateway.tf
│   └── route_table.tf
├── compute/
│   ├── ecs.tf
│   └── security_groups.tf
├── storage/
│   ├── s3.tf
│   └── rds.tf
├── delivery/
│   ├── alb.tf
│   ├── cloudfront.tf
│   └── route53.tf
├── provider.tf
├── variables.tf
├── main.tf
└── README.md

このような構成にすることで、担当領域ごとの管理がしやすくなり、チームメンバー間での役割分担も明確になります。

まとめ

Terraformでの構成管理は、最初は1つのファイルにまとめたくなる気持ちもありますが、プロジェクトが大きくなるにつれて保守性が課題となります。

今回のようにリソースごとにファイルを分割することで、各構成要素の把握がしやすくなり、レビューや運用もスムーズになります。

本記事はあくまで備忘録として残すものですが、Terraformを触る方々の参考になれば幸いです...!

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?