はじめに
バックエンドエンジニアとしてこの業界に入った自分が、転職を機にDBエンジニアとなりDBの構築、運用、監視を担当することになりました。
過去にはAWSのマネジメントコンソールからポチポチしてリソースを作ることはしてました。
ただ、設定などに関しては動けばよし!みたいなノリで作っていて、詳しいことを理解しないまま作っていたのですが、Terraformを使って作ろうとすると、細かい設定について理解をしていないとすんなり作れなかったのです。Terraform自体も初めて触るのでそこそこ使えるようになるまでに僕がしたこと、参考にしたサイトなどをまとめていきます。
記事を読むべき人
- AWSを理解したい
- Terraformに興味がある
- これからTerraformを利用する
解決できる課題
- Terraform何もわからないがわかるようになる
- AWS何もわからないがわかるようになる
課題の原因
- Terraformだけを理解しても何もできない。
習得の流れ〜概要〜
- まずは手を動かそう
- もっと手を動かそう
- ドキュメントを読み込もう
- 更に手を動かそう
習得の流れ〜詳細〜
まずは手を動かそう
エンジニアならとにかく手を動かして覚えよう
僕は書籍を使ってやりました
実践Terraform AWSにおけるシステム設計とベストプラクティス
2019年初版なので最新のTerraformバージョンを利用するとできないことも多いので
しっかりとバージョンを合わせて実施しました。
もっと手を動かそう
書籍通りに書いて構築したら、今度は設定値を変えたりしてみます
エラーが出てきたら内容を読んでなにがだめだったのかを理解して解消していきます。
ここで明確に気づくのがAWSの知識がないと設定値などに対してよくわからない状態になります。
僕の場合は実務の中でAWSに触れたり、勢いでクラウドプラクティショナーを取得したりで知らない人よりは知っているレベルだったので、AWSについて調べることは少なかったかなと思います。
AWSについての理解が足りなくてもとにかくTerraformの設定値をいじるために
AWSについて調べて設定してを繰り返します。
ドキュメントを読み込もう
Terraform Language Documentation
Terraformの公式ドキュメントです。
三項演算子についてなども書いてあるので、必要に応じて読み込むと知識が増えます。
Terraform Registry
リソースやdataについて纏められている。覚えなくてもいいが常に必要になる。
更に手を動かそう
主に構築をすることをしていたが、できたらConfigration Driftを起こして解消することも試すといい。
Configration Drift(インフラストラクチャの乖離)はTerraformで構築した後に、AWSのマネジメントコンソールから対象のリソースの設定(例えばインスタンスタイプなど)を変えてから
Terraformにてplanを実行すると出てきます。
チーム開発をしていると他メンバーがマネジメントコンソールから変更したりも起きうるので先々に体験しておくと対応の幅が広がります。
僕は利用頻度は少ないですがpull
などのコマンドも実際に試して何ができるのかの理解も深めておくといいです。
実務への影響
初めてTerraformを利用してみたけど、Terraformに対しては詰まるところは少なかったと思います。書籍の勉強だけで書く・読むができるようになっていたのがよかったと思います。
何よりもAWSの理解が足りなくて、既存のコードに対しても書いてあることがどのように構築されるのかがわからなくて調べることが多々ありました。
まとめ
Terraformの理解を深めることで、AWSの理解が深まります。
Terraform自体は基本を抑えておくだけでも大丈夫かなと。
それよりも一番は利用するプロバイダーの理解が足りないことで躓くことが多いかなと思います。
僕の場合はAWSの理解を補うために資格取得を目標にして理解を深めていこうと考えています。