Closed4
Terraform Moduleのベストプラクティスを調べる

- カプセル化
- 関連するリソースをグルーピングして抽象度を上げる
- 特権性
- リソースの権限境界を揃える
- 変動性
- Moduleに含まれるリソースの更新頻度/ライフサイクルを揃える

- Network module
- 高い特権性と低い変動性
- あまり変更されることはない
- Web module
- 高いカプセル性と高い変動性
- 頻繫に変更される
- 概念的にも容易に分離できる
- App module
- Database module
- 高い特権性と低い変動性
- 変更頻度が低い
- Routing module
- 高い特権性と低い変動性
- Security module

- Local Module は初手で使用するのは避ける
- 3rd-party Module は本格運用するサービスで使用するのは避ける
- Proprietary Remote Module はプロダクトラインナップが増えてコードのコピペが増えてきたら使用を検討する
- プロジェクト全体で共通の構成、かつ頻繁に変更されないリソース群は Module 化の良い対象となる
- アプリ開発エンジニアも触る可能性があるリソースについては無理に Module 化しなくてもよい
このスクラップは2024/12/29にクローズされました