はじめに
この記事はterraform Advent Calendar 2019の11日目の記事です。
穴埋めのやっつけです。穴が空いているとランキングに乗らずに、参加者のがんばりが無駄になってしまうので。。。
とはいえ、これまでも散々扱われてきた terraform 界隈でこれといって穴埋めに足りる記事などそうそう思いつくはずもなく、、、
誰にでもすぐ書けるけど、きっと同じにはならないもの、と考えて、現在使っているモジュールを紹介することにしました。
リスト
って、前職の時はもうちょっと広範囲に使っていたので、結構な数あったんだけど、現職ではそうでもなかった(&自作した)ので、期待外れになったらごめんね。
- terraform-aws-modules/vpc/aws
- terraform-aws-modules/rds-aurora/aws
- terraform-aws-modules/eks/aws
- terraform-aws-modules/autoscaling/aws
- terraform-aws-modules/security-group/aws/
- terraform-aws-modules/autoscaling/aws
説明
terraform-aws-modules/vpc/aws
- VPC まわりを一括管理
- 新規でVPCを作るなら迷わずこれを使ってください
- むしろ手でVPCを作るとかいう資料は破り捨ててしまえ
- 一般的なNW構成とAWSのVPCであるべき構成についてきちんと考える機会になります
terraform-aws-modules/rds-aurora/aws
- Aurora for RDS を作る
- Aurora を使うなら迷わずこれを使ってください
- むしろ手で(ry
- RDSについて理解していないと少しだけわかりにくいけどそこを乗り越えれば最高のモジュールの1つです
terraform-aws-modules/eks/aws
- EKS を作る
- eksctl とかなにそれおいしいの?
- 2019年にもなって EKS 使う時にワーカーノードを手で作って管理とか小学(ry
- 先のVPCモジュールと合わせて上手に管理しましょう
terraform-aws-modules/autoscaling/aws
- オートスケーリンググループを作る
- bastion を用意する時に便利
- スケジュールアクションで、定時の間だけ起動させるとか
- 別途 packer で Ansible 使って AMI を作るのと組み合わせる
terraform-aws-modules/security-group/aws/
- セキュリティグループを作る
- Web系サービスや bastion 用 ssh などの SG を用意するのに活用
- 個人的に地味だけど縁の下の力持ちなモジュール
おまけ
モジュール化しないほうが幸せになれるもの
- CloudFront は構造上リソースの中に全部つっこむ必要があるので、モジュール化しないほうが自由度が高い
- 自作ではないワンオフモジュールは、帯に短し襷に長しになりかねないので注意
- iam モジュールは慣れてないと辛くなるので、AWS IAM のあるべき姿、ベストプラクティスをよくよく理解した上で、それを適用する自信がつくまでは敬遠してもいい(ry
研究中
- https://github.com/eerkunt/terraform-compliance (これはモジュールじゃないけど)
terraform の勉強に役立つ github
- https://github.com/skyscrapers
- https://github.com/cloudposse
- https://github.com/brikis98/terraform-up-and-running-code
- https://github.com/shuaibiyy/awesome-terraform
最後に
他のクラウドプロバイダー向けのモジュールとか、もっとAWSでも便利なモジュールあるよとか、そもそもモジュールはこう使うんだぜ、とかそういう記事がもっと読みたいなー。チラッチラッ