🚀
terraformのbackendリソースを爆速作成するCLIツール「tfbackend」をリリースしました!
どんな記事?
- terraform backend作成用のCLIツール「tfbackend🚀」の紹介記事
- ワンコマンドでbackend用に最適化されたリソースのプロビジョニングができる!
- v1.0.0時点ではAWS(S3, DynamoDB)に対応しています
みなさん、terraform、使われてますか?
...そうですか!使われていますか👏
では、それは「チームで」ですか?
...そうですかチームでですか👏
では、terraform backend、使われていますね?
...そうですか、使われていますか👏
なになに、でも毎回手動で作るのがめんどくさいと。
なるほどなるほどわかります、その気持ち。
特にセキュリティやバージョニングをちゃんとやろうとすると、考えることが色々あってめんどくさいんですよね。
tfbackend
というわけで、こうしためんどくさいを解決するCLIツール「tfbackend」を作ったので、ご紹介したいと思います。
なにはともあれ、まずはどんなものなのかを見てみましょう。
$ tfbackend aws --s3 YOUR_BUCKET_NAME --dynamodb YOUR_TABLE_NAME
これだけで
- backendに最適化されたS3 bucket
- lock tableに最適化されたDynamoDB
が生成できちゃいます。
もう少し詳しくお伝えすると、S3は
- バージョニング: ON
- デフォルト暗号化(AES256, SSE-S3): ON
- ブロックパブリックアクセス: すべてON
の状態。
DynamoDBは
- パーティションキー: LockTable
- Write/ReadCapacity: 最低限の5 (オプションでオンデマンドモードにもできます)
の状態でプロビジョニングされます。
Install
Homebrew
$ brew tap Jimon-s/tfbackend
$ brew install tfbackend
その他
go 1.16~
$ go install github.com/Jimon-s/tfbackend@latest
そもそもどうしてこんなツールが欲しいのだっけ?
terraformの「backend作成」のプラクティスは、「管理対象のterraform projectと完全に別」にリソースを作成することです。
命綱のstateファイルが、万が一にも消えてなくなっては困るので、うっかりdestroyの対策としてはじめから分けておくんですね。
となると、取りうる選択肢は、
- コンソールから作る
- CLIで作る
- backendを作るterraform projectを別で用意する
なのですが、
コンソールから作る
は、めんどくさいですし、
CLIで作る
は、叩くコマンドが複数 & オプションも長いので、気軽に叩けない。
backendを作るterraform projectを別で用意する
でもよいのですが、いくつもbackendを作る際には、前に作ったbackendのtfstateが邪魔になったりしてこれも今ひとつ気軽に使えません。
ならば、
- terminalから、コマンド一発
- オプション少ない
で使えるツールを作っちゃおう!ということで作ったのが、tfbackend
です。
気軽に使えるツールになっているので、試してみてください👍
Discussion