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 :
おすすめ書籍
リンク