インストールから、HCL・plan と apply・tfstate とリモートバックエンド・モジュール・VPC と EC2 と IAM・シークレット・CI でのレビュー・import と drift まで。全20レッスンで「インフラをコードで書き、plan を読んでから apply し、チームでレビューして運用できる」ところまで進みます。AWS のアカウントは要らず、手元のファイル・Docker・moto を相手に Terraform 1.16.2 で実際に動かした出力を載せています。
全20レッスンを5つの章に分けています。第1章から順に進めるのがおすすめですが、 気になるところだけ拾い読みしてもかまいません。 ※ Terraform のコマンドはブラウザ内で実行できないため、手元に Terraform(1.14 以上)を入れて試してください。第5・6・9回は手元の Docker、第8回と第12〜20回は Docker で動かす AWS のまね(moto)を相手にするので、AWS のアカウントは要りません。
手作業でインフラを作ると何が困るのかを整理し、Terraform を入れて init・fmt・validate と HCL の読み方を押さえます。最後は plan の記号を読み分け、保存した計画のとおりに apply するところまで進みます。
手元の Docker を相手にリソースのつながりを見て、変数と出力で設定を外から変えられるようにします。Terraform が覚えている「いまの姿」= tfstate の中を読み、S3 に置いてロックをかけるところまで進みます。
同じ構成をモジュールにまとめ、dev と prod をフォルダとワークスペースで分けます。for_each と count で数を扱い、最後はデータソースで設定の外にある値を読みます。
moto を相手に、VPC とサブネット・セキュリティグループ、EC2、IAM を順に組み上げます。最後は、パスワードを状態のファイルに残さない ephemeral と write-only まで進みます。
GitHub Actions で plan をプルリクエストに出してレビューし、画面で作ったものを import で取り込みます。drift の見つけ方と、lifecycle・moved・removed で破壊的な変更を防ぐ方法でコースを締めくくります。
全20レッスンを終えたら、次は Terraform で作った土台の上でアプリを動かす Kubernetes 入門コース や、plan のレビューを支える CI を深める GitHub Actions 入門コース へ。メンバーシップで全コースが解放されます。