🚀

terraformのbackendリソースを爆速作成するCLIツール「tfbackend」をリリースしました!

2021/08/06に公開

どんな記事?

  • 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

https://github.com/Jimon-s/tfbackend

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です。
気軽に使えるツールになっているので、試してみてください👍

https://github.com/Jimon-s/tfbackend

Discussion