19
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

terraformのimportを超快適にしてみた件【v4の破壊的変更のお供に!】

Last updated at Posted at 2022-02-15

いつものアレ

「リソース作っておいたから後はよろしくねー」

開発チームから期日の無いチケットが切られる。やれやれだぜいつものimport作業発生かよ・・
importするリソースを公式ドキュメントで調べていると次のメンションが

「先週importしてもらったの差分出てるよ。調査してみてくれない?」

ええ?誰か手作業で変更した??tfstateのバックアップ探さないと・・、とさらに追撃のメンション

「この前importしたやつ、importするリソースが足りてないと思います!」

もはやインフラ屋じゃなくてimport屋か??IaC化は別のトイルを産んでいる

そもそもimportの仕組みがよろしくないのよね

ググリが前提なんだよね。リソース名とかargsの指定方法とか。
そこまではどんなツールでも変わらないけど、main.tfファイルの生成は手動とかは違うんじゃねー?って思う。
あとターゲットリソースの指定は事前に調査してってのもなぁ。そんな理由でマネコン入るのってどうなの??
aws2tfとか一気にブッコ抜くツールも良いんだけど、もっとコンパクトに分かりやすく動くものって無いしなァ

作ったわ!

yasutakatou/tfimport - GitHub

詳しくはリポジトリで。Bashベースのエコシステムに乗っかったツールです。対応import数増えてくと良いなぁ(他力本願

v1.1 - v1.4

コンフィグの追加で以下のimportをサポートしました

  • WAF v2
  • CloudFront
  • WAF Classic
  • IAM Policy
  • IAM Role

あとリージョン指定バージョン固定のオプションもいれました

v1.5 - v2.0

選択用のpecoを任意で呼び出せるモードと、一度に複数リソースをimport出来るモードを追加しました

コンフィグの追加で以下のimportをサポートしました

  • ListenerRule
  • secretsmanager
  • ECS Autoscale

v3.0 - v3.1

Mac OSでも動くようにしたのと、datadogのモニターも抜き出せるよう複数コンフィグを扱えるようにしました

  • Mac OS対応
  • Terraform AWS Provider v4でS3のリソースが細分化されたので一気に抜き出せるようにした
  • datadogのモニターに対応

どんなん?

このツールを使うと・・

  • インタラクティブにimportするリソースを指定できます
  • バッチ処理っぽくスナップショット的にtfstateを抜き出せます
  • 複数リソースを一度に抜き出せます

pecoで検索性バッチリでリソース指定できーの、

1.gif

バッチ処理ぽくtfstateを抜き出せーの

2.gif

複数リソースを一度に抜き出せるのでimport漏れも解消!

といったかんじでimportに関わるめんどくさいエトセトラが解決できます!

あとがき

いまだかつてない抽象化の高い・・・というかほぼコンフィグに任せっぱなしのツールですw
階層的に抜き出したものを後に引き継ぐだけなんだけど立派なツールなような気がする。
コンフィグを充実させることで組織のノウハウも拡充できる気がするので成長性Aってことで良いんじゃないかなw

TerraformのAWS Provider v4メジャーアップデートは破壊的変更あり

こういう、どーしょーもない変更喰らってもとりあえずIaC出来るので是非是非に

19
9
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?