snake_case に従っていない名前

Terraform のリソースや変数の名前を snake_case に統一すると、読みやすさと保守性が向上します。

説明

Terraform では、リソース名、変数名、モジュール名を snake_case に統一することが一般的です。camelCase、PascalCase、kebab-case が混在すると規則が不統一になり、検索や保守が難しくなります。

これは直接的なセキュリティ脆弱性や構文エラーではなく、コード品質とチームの規約に関する事項です。

想定される影響

  • リソース、変数、モジュールの命名規則が混在し、コードが読みにくくなります。
  • 検索、置換、自動化スクリプトの適用でミスが増える可能性があります。
  • Terraform のスタイルが不統一になり、レビューや保守に時間がかかります。

対処方法

web_server や db_subnet_group のように、名前を snake_case に統一してください。既存の名前を変更する際は参照も更新し、リソースやモジュールの状態アドレスを moved ブロックなどで移行して、意図しない再作成を防いでください。

例

EKS リソースの Terraform 上の名前を比較する抜粋です。作成に必要な他のプロパティは省略しています。

変更前

hcl
resource "aws_eks_cluster" "productionCluster" {
  name = "production"
}

変更後

hcl
resource "aws_eks_cluster" "production_cluster" {
  name = "production"
}

変更後は Terraform のリソース名を production_cluster に統一しています。AWS のクラスター名 production は変わりません。既に管理しているリソースでは、状態アドレスの移行も必要です。

参考資料