以下公式ドキュメントから画像を引用します。モジュールごとの詳細については公式をご確認ください。 引用元: Module Creation - Recommended Pattern | Terraform - HashiCorp Learn 変更頻度や役割に応じてモジュールを分けることが明文化されています。 基本的には上記の方針に乗っ取って開発することで、リスクが少なく、スムーズに開発を進められると思います。 問題点 従来通りのWebアプリケーションの設計なら上記の設計で、後はモジュール内をVPC、RDSなどの単位で分割しても問題ないと思います。 しかし、Serverlessアプリケーション開発の場合はサービス間の結合が分かりづらくなる問題があるかと考えます。例えば以下のようにIAM、IoT Core、Lambda、S3をそれぞれ別のモジュールに分割して構築するとします。 上記の構築の場合
![Serverless×Terraformモジュール設計のベストプラクティスの検討~IoTデータ収集基盤の例~ | DevelopersIO](https://cdn-ak-scissors.b.st-hatena.com/image/square/8a77b081e14c8d61a2e80498092f8ffb9b60da03/height=288;version=1;width=512/https%3A%2F%2Fdevio2023-media.developers.io%2Fwp-content%2Fuploads%2F2019%2F05%2Fterraform-eyecatch.png)