「Pragmatic Terraform on AWS」を読んだ

ダウンロード版で読みました。

f:id:asmsuechan:20190510144654p:plain

booth.pm

本の情報

項目 情報
ページ数 144P
ç« æ•° å…¨22ç« 
著者 @tmknomさん

全体的な感想

大事なのはTerraformの使い方というよりAWSのリソースを正しく構成して関連する全てのリソースの存在を明確に意識する力だと思いました。難しい。

最後の章に書いてある参考文献もとても素晴らしくて、SREとしてやっていきたいなら必要な知識が書かれている本ばかりですのでぼちぼち拾って読んでいきたいです。

↓読んでいて心に残った言葉

Terraform で試行錯誤するときには、ケチケチせずにそれなりのインスタンスタイプを使用しましょう。時は金なりです。

こんな人におすすめ

サーバーサイドは書けるけどWebインフラはちょっとあんまりって人は読んでとてもためになると思います。

この本を買った理由

Terafformを1から自分で書くという経験をしたことがなく、体系的に学べると思ったためです。あと、著者の@tmknomさんがクラウドワークスインターン時代に一時期メンターさんだったから、っていうのも大きな理由です。

また、最近研究でGPUインスタンス(G3/P2)を立てて学習を回しているのですがパフォーマンス改善の問題でスペックの異なるインスタンスで動かしたり複数人で同じ環境のインスタンスを立てたりする必要があってここの作業をなるべく自動化したかったためという理由があります。

自分の開発経験

Terafformを1から書いたことはありませんが、plan / applyはしたことがあります。AWSに関しては一通り触ったことがあるのですがリソースを作る時は結構コンソールからポチポチすることが多いですし、最近は開発にserverless frameworkを使うことが多いです。

1-3章 TerraformでEC2インスタンス立ててapacheを入れる

ここでterraformの使い方の流れが学べます。私は順序立ててTerraformを使ったことがなかったので全部手を動かしてapache入りのサーバーを作りました。

4-17ç« 

ここからの章は全部手を動かすというより興味が合ったり必要が合ったりしそうな部分を読んで必要がある場合には手を動かすって感じにしました。

17章 構造化

この章は以前の章とは違ってTerraformを使ってAWS上にリソースを作っていくのではなくTerraformのモジュール構造において意識すべきポイントが書かれています。この構造化はTerraformだけに限らず他の設計(コンポーネント設計やクラス設計)に関しても大いに役立つとても有意義な章だと思います。

18章 Terraformベストプラクティス / 19章 AWSベストプラクティス

Webのチュートリアルだけでは学べない、現場で開発するには必須のTipsがまとめられています。

20章 モジュール設計

Terraformのモジュールを作る際に意識すべきことがまとまっています。疎結合、高凝縮、認知的負荷などの項目がまとまっているのでTerraformだけでなくライブラリのAPI設計(npm packageやgemなど)に対しても非常に有用です。

得られた学び

この本を読んで無事に研究の機械学習環境構築が自動化されました。その中で詰まった点は「user_dataのスクリプトはrootユーザーで実行される」ということくらいです。これサクッと書きましたが結構詰まりました。

その他

著者の@tmknomさんがこの本に関する出版周りの記事をいくつか書いているのですが、どれも読むと「すげえ・・・・・」ってなります。全ての技術書に感謝したくなる。

nekopunch.hatenablog.com

nekopunch.hatenablog.com

すげえ・・・・・