Terraformの命名規則

2022-04-22

Terraformは、IaC(Infrastructure as Code)を実現するツールの 1 つです。
この記事では、筆者が利用しているTerraformの命名規則をご紹介します。

Terraform の入門内容については以下の記事を参照してください。

基本

対象 命名方法
ファイル名 ケバブケース
ディレクトリ名 ケバブケース
リソース ID ( resourcedata スネークケース
リソース名 ( name 属性や Name タグ) ケバブケース
変数名 スネークケース

リソースタグ

tags 属性のある resource には以下のタグを必ずつける。

  • System :システムを識別可能な文字列
  • Service : システム内のコンポーネント・マイクロサービスなどを識別するサービス名
  • Env :環境名(dev, tst, stg, prd)
  • Terraform :“true”、 Terraform で作成した目印
  • Name :命名規則で定めたリソース名称
    • ケバブケース で記載し、『[ System ]-[ Env ]-[ Service ]-[ リソースに合わせた任意名称 ]』の形式
    • resourcename 属性は、 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

リソース 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

おすすめ書籍

おすすめ記事