【IaC】Terraformのディレクトリ構成について調べた

AWS

TerraformでAWSを構築をするために、どこから手を付けていく必要があるか検討する機会がありました。Terraformをプロジェクトで実践したことはなかったので、どういったとこから検討していくか悩みましたが、まずはAWSサービスをTerraformのコードに落としていく上で、どうコードを管理していくか、つまりディレクトリ構成をまずは検討していこうと自分なりに結論を出しました。

ディレクトリ構成を検討するうえで色々なWEBサイトを参考にさせていただいたところ、一つのベストプラクティスはなく、プロジェクトの特性に応じて検討が必要と理解しましたが、参考にさせていただいたWEBサイトを共有する形で、検討のプロセスを残していきたいと思います。

参考にさせていただいたリンク

①「それ、どこに出しても恥ずかしくないTerraformコードになってるか?」

Terraform初心者の自分にとっては、ステートファイルの管理方法やディレクトリ構成の案などスライド形式でわかりやすく書いてありましたので参考になりました。ディレクトリ構成のパターンとして、小規模・中規模・大規模が例示されており、自身のプロジェクトではどの程度の規模感とするべきか具体的に検討することができました。

②Terraformでmoduleを使わずに複数環境を構築する

Terraformでmoduleを使わずに複数環境を構築する

Terraformにはmoduleと呼ばれる共通化の仕組みを提供する概念がありますが、こちらの記事ではmoduleの設計難易度やコードの可読性といった観点からmoduleを採用しない構成を紹介されているといった内容になります。
いろんなWEBサイトでmodule化しているから利用した方がいいのかといった疑問に対して別の見方を提示されており、運用面から考慮しなくてはいけない観点について気づきを得ることができました。

③Terraform公式のスタイルガイド

https://developer.hashicorp.com/terraform/language/style
ディレクトリ構成以外にもコーディングルールが書いてあり、初心者にとってはTerraformでコーディングする際に何を検討しなければいけないかの全体像をつかむのに役に立つ印象がありました。情報量が多いので一度に理解するのは難しいので、コーディングしていく中で疑問に思ったときにスタイルガイドを参照し理解していく使い方がよいかなといった感じがします。
あとは、公式の情報なので安心して参考情報をして利用できるのもよいですね(笑)

まとめ

  • こうすればよいという一つのベストプラクティスはないので、自分のプロジェクトではこうする!という方針をチーム内で共有することが大事かと思います。
  • Terraformのコードを運用するうえで可読性や設計の難易度などの観点からディレクトリ構成など明確化しておく必要があると改めて感じました。
  • Terraformで構築していく中で、また色々な課題が出てくるかと思いますので

コメント

タイトルとURLをコピーしました