Terraform設計ガイドライン
Terraform Design Guidelines
Terraformはインフラを宣言的にコード管理するツールであるが、特に大規模なシステムでは扱うリソース数が増え、必然的にTerraformコードも複雑化する傾向にある。Terraformの可読性が低下すると、作業効率の低下だけではなく影響度が大きいミスを誘発する懸念がある。
また、Terraformは活発に機能開発が継続されており新しい機能/記述方法もリリース毎に追加されている。これは嬉しい反面、新規開発者が悩むポイントも増えたと言える。関連して、チームやプロジェクトごとに設計方針が異なる場合も多く、Terraformの熟練者であってもそれぞれのコードベースに慣れるまで時間を要することも往々にしてある。
本ガイドラインは、各開発者が悩むポイントを軽減し、可読性や保守性、安全性を高めるルールをまとめ、設計のベースラインとするために作成された。それにより、生産性の向上・レビュー負荷の軽減・ナレッジやツールの横展開の支援・技術レベルの底上げを目指すものとする。
免責事項
対象とする技術は以下を想定している。
利用者は以下の技術を理解しているとし、本ガイドラインではこれらについて解説はしない。
本ガイドラインの適用範囲は、Terraformの設計、開発時に利用することを想定している。クラウドサービス上の技術選定、サービス設計の手法については本ガイドラインで対象外とする。
| 用語 | 説明 |
|---|---|
| ルートモジュール | terraformコマンドを実行するディレクトリ上にある .tf リソース |
| モジュール | 本ガイドラインでは、ルートモジュールから利用される子モジュールのことを指す |
このアーキテクチャガイドラインの作成には多くの方々にご協力いただいた。心より感謝申し上げる。