Terraformは、IaC(Infrastructure as Code)を実現するツールの 1 つです。
この記事では、筆者が利用しているTerraformの命名規則をご紹介します。
Terraform の入門内容については以下の記事を参照してください。
基本
| 対象 | 命名方法 |
|---|---|
| ファイル名 | ケバブケース |
| ディレクトリ名 | ケバブケース |
リソース ID ( resource や data ) |
スネークケース |
リソース名 ( name 属性や Name タグ) |
ケバブケース |
| 変数名 | スネークケース |
リソースタグ
tags 属性のある resource には以下のタグを必ずつける。
System:システムを識別可能な文字列Service: システム内のコンポーネント・マイクロサービスなどを識別するサービス名Env:環境名(dev, tst, stg, prd)Terraform:“true”、 Terraform で作成した目印Name:命名規則で定めたリソース名称- ケバブケース で記載し、『[
System]-[Env]-[Service]-[リソースに合わせた任意名称]』の形式 resourceのname属性は、Name tagで名称の名称と矛盾がないように命名- なお
aws_db_instanceのようにidentifierを使用しなければならないケースは注意
- なお
- [
リソースに合わせた任意名称] は リソースの付随関係により-で繋げて多段に命名
- ケバブケース で記載し、『[
ファイル名
- 命名は『[
Service]-[ファイル内に定義するリソースに合わせた任意名称]』 - 例
- VPC :
[Service]-vpc - EC2 :
[Service]-web - EC2 :
[Service]-batch - RDS :
[Service]-rds - Security Group :
[Service]-web-sg - Security Group :
[Service]-rds-sg
- VPC :
リソース ID
- 命名は『[
Service]_[リソースに合わせた任意名称]』 - 特定のコンポーネント・マイクロサービスに所属しない
Systemで唯一のリソースの場合、 [Service] はcommonなどを利用 Serviceで唯一のリソースの場合、 [リソースに合わせた任意名称] は省略可- [
リソースに合わせた任意名称] はリソースの付随関係により_で繋げて多段にする - 例
- EC2 :
[Service]_web - EC2 :
[Service]_batch - RDS :
[Service]_rds - Security Group :
[Service]_web_sg - Security Group :
[Service]_rds_sg
- EC2 :
おすすめ書籍
リンク
