AWS

Terraformの便利なコマンドたち

はじめに

とあるプロジェクトにてTerraformを利用して環境構築を行った。
これまで「なんとなく」、そして「差分の更新」程度でしか使っていなかったTerraform。
今回の作業で結構便利なコマンドと出会うことができましたので、まとめておきます。

なお、Terraformの基本的な使い方(plan やapply など)には今回触れませんのでご了承ください。

便利なコマンドたち

erraform validate

各tfファイルの「構文に問題がないか」チェックするためのコマンド。
修正箇所が多いとき、記述方法に不安があるときなどに活用できるかと思われます。

terraform init -reconfig

tfstate ファイルをAWS S3 などに「移動させる」ときに使用するコマンド。
一度ローカルでinit したが、backend の設定を変更して改めてinit したい(tfstate ファイルをS3 に持っていきたい)ときに利用します。

terraform force-unlock

Terraformコードの実行がロックされてしまった場合に「ロックを解除する」ためのコマンド。
backend 設定でDynamoDB を利用した「複数人での同時実行を防止する」ためのロック機構を構築することができます。
ただ、謎のタイミング(確実に自分しか作業していないとき)でもロックがかかってしまい何もできない状態になることがあります(ありました)。
そんなときに利用するコマンド。

terraform ~ | landscape

これはコマンドと言って良いのかわかりませんが、Terraformを実行した際に出る差分(追加/変更/削除)の表示を見やすくするためのもの。
事前にインストールするものなのか、実行時にパイプで食わせるものなのか、、
私の環境ではlandscape 適用後の表示になっているので(無意識)、Terraform 導入当初に設定していたのかな?と。
ただ、landscape 適用後の表示ができていないと差分の確認なんて無理!と思ったので一応メモしておきます。
(git diff の結果のように、行単位で+プラスとか-マイナスとかの表示になっていない方は要確認かもしれません)

まとめ

作業をする中で、都度必要なコマンドを調べて使ってみました。
「便利なコマンド」と書きましたが、ぶっちゃけ基本的なコマンドのような気もしています。
つまり、まだまだ勉強が足りないということで、精進いたします。

最後まで読んでいただきありがとうございました。