good module should raise the level of abstraction by describing a new concept in your architecture that is constructed from resource types offered by providers." 優れたモジュールは、プロバイダが提供するリソースタイプから構成されるアーキテクチャにおける新しい概念を定義すること で、抽象化のレベルを引き上げるべきである。 — Terraform 公式ドキュメント "When to write a module" [3] Log用のs3 • 監査・アクセスログを保存する • 改ざん不可・長期保存が前提 • 変更要件はガバナンス依存 aws_s3_bucket bucket_policy lifecycle 新しい概念を定義