Closed4

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

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

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

https://tech.layerx.co.jp/entry/2021/11/04/170000

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