【ダウンロード版】Pragmatic Terraform on AWS - KOS-MOS - BOOTH

これも職場の同僚氏がオススメしていた本。

普段から Terraform の設計に課題を感じていたので、ざーっと斜め読みして、第17章からしっかり読んだ。

その中での設計のやり方が
モノリス → モジュールの利用 → 環境(ステージ)の分離 → コンポーネント分離
と段階を踏んでおりとても良いと思った。そう、これなんですよ。最初は main.tf だけで十分。

Terraform の設計はアプリケーション設計とよく似ており、初めから抽象化すると難しくなると思う。

基本は宣言的に書いていき、設定ファイルのような読めるコードにする。3回くらい重複し始めたくらいで、変数やモジュールに落とし込むのが良いはず。

17.4.1 の “安定度の高いコンポーネントは、変動を想定したコンポーネントに依存してはいけません” もまさにアプリケーション設計あるある。『オブジェクト指向設計実践ガイド 』にも同じことが書いてある。→ [2016-09-22-1] [2017-11-01-1]

Terraform の Workspaces をオススメしない点にも同意。状態を気にしながらの terraform apply は怖い。

18.4 のリモートステートは知らなかった。便利そう。現状、ちょっとだけ関連があるリソースを同じコンポーネント(ディレクトリ)に集めている。リモートのバックエンドを使えば疎結合に出来るかも。Data Source でも良いと思うけどね。

Terraform だけでなく、第19章のように AWS のベストプラクティスが書かれている点も良い。S3 の暗号化は確認しようと思った。


ちなみにダウンロード版には .epub と .pdf しか存在しない。kindlegen 使って .mobi に変換して、Kindle 用のメールアドレスに送った。久々だと忘れちゃうね。

$ brew cask install kindlegen
$ kindlegen PragmaticTerraformOnAWS.epub

追記(2019-05-10):
作者様からありがたいお言葉が・・・!

追記(2022-03-03):
『実践Terraform』として商業出版されました。※ 書き忘れてたので今さらながら追記
『実践Terraform』刊行のお知らせと技術書典7での頒布について #技術書典 #Terraform - 憂鬱な世界にネコパンチ!

実践Terraform AWSにおけるシステム設計とベストプラクティス amazon.co.jp