説明
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 は変わりません。既に管理しているリソースでは、状態アドレスの移行も必要です。