1.はじめに
Terraformによる構成管理に感動したのは良いのですが、プロジェクトで触らなくってはや3年ちょい。
インフラのコード化はてなんじゃったかのー状態のジジイが勘を取り戻すだけの記事です。
内容は初心者レベルで目新しいことはございません!
作業環境は2021年型Mac(かっこいい)、個人のAWSアカウント、敬愛するtmknom氏著の実践Terraformです。
2.AWSにログイン(数ヶ月ぶり)
ログインしてなさすぎてなんか毎月数百円取られてるなあ状態でしたが、マメな性格ゆえしっかりとメモしてました。
MFAも設定してて偉すぎる。
確かこの記事を参照して設定した記憶があります。
これもtmknomさんが書かれてますね!
3.実行環境のセットアップ
AWSCLIのインストールがpipだとできませんでしたが、公式の手順通りに手を動かして解決しました。
ありがとう公式。
Terraformのバージョンずいぶん上がりましたね。
プロジェクトで書いてた頃って0.11だった記憶があるなw
soshi.sato: ~/ % tfenv list-remote
1.3.1
特にハマりもなかったけどgit-secretsが何者なのかよくわからず。
次の機会に調べます。
4.基本操作
4-1.terraform init
initってなんだっけ。。と調べました、初回作業(もしくは作業ディレクトリを初期化したい時)に実行するっぽい。
確かにあまり頻繁に使った記憶無いですね。
そういえばTerraformは公式ドキュメントが鬼充実してるんだった!
バリバリ書いてた頃は記法を調べる→試すをよく試行してました。なつい。
4-2.terraform plan
planすら忘れてた自分に驚きだ!!
初回なので軒並み+ですね、VPCとかSGとか全部デフォルトを使うのかな?と思いましたがそうじゃなければコケるだけの話。
そういえばこんな感じで教えてくれるんでした!
Plan: 1 to add, 0 to change, 0 to destroy.
4-3.terraform apply
Stg環境にapplyしようとしたら実はPrdで全身から冷や汗出たの思い出しました。
ただこの時以降IaCの怖さも思い知り、あらゆる作業に慎重になったので、早めに転んでよかったなとも思う。
当時のチームリーダーへの謝罪はいつでも行いますw
更地にテストインスタンス立てるだけなのでエラーも無く完了。
Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
マネジメントコンソールからも確認できますね!
パッと見た感じ思いっきりパブリックなインスタンスだったので必要に応じて停止したりすると良いと思います。
タグを追加するapplyも完了。
Terraformは書いて動かした結果がマネジメントコンソールに成果物としてわかりやすく表れるとこが本当に好き。
4-4.terraform tfstateとtfnotify
更に思い出しましたが、メルカリのツールtfnotify
が存在しましたね。
困ったから自分たちで作ってそれをOSSで公開、最高にカッコ良い流れ。
当時もこのブログ読みましたが今読んでも色褪せないですね!
4-5.terraform destory
今回はCLIからポーンと叩くだけですが、やっぱり怖さがある。
そういう意味でもtfnotifyを使ったりしてSlackやメールで通知する仕組みは本当に重要ですね。
5.おわりに
記事というかポエムになってしまってすみません。。けどTerraformを思い出すには十分でした。
あとは実践で補完していこうと思います。久しぶりに業務で使うTerraformが楽しみです!!
以上です。
この記事がどなたかのお役に立てますように