- tech系
GCPのリソースを後からterraformにするgcloudコマンドがあったから使ってみた
こんにちは、クラウドエース編集部です。
ある日、twitterを眺めていると https://cloud.google.com/sdk/gcloud/reference/beta/resource-config/bulk-export で紹介されている gcloud beta resource-config bulk-export
という見たことのないコマンドについて言及している方がいらっしゃったので早速使ってみました。
感想を先に述べておくと、例えば「VPC Networkだけに絞る」ようなresourceの範囲を指定できると実用的になると思います。
コマンド例
実際に次のように使ってみました
$ gcloud beta resource-config bulk-export --on-error=continue \
--resource-format=terraform \
--project=YOUR_PROJECT_ID > resources.tf
このコマンドはAsset Inventory APIを利用して取得したリソースをterraformのコードにするようで、文字通りプロジェクトの全てのresourceをterraformのコードにしてくれました。
しかし、筆者の感覚ではこれはやりすぎであり、大量のterraform化されたresourceを見せられてもそれをフィルタするだけで相当な労力です。
不必要だと思った一例を列挙すると
- InternetへのDefault route
- Diskのスナップショット
- Default サービスアカウント
などなど、最初から当然のようにあるものまでterraformにされます。
これらもterraformで管理しているプロジェクトであれば有用なのかもしれませんが、きっと無いですね。
後から消すとしても、大量のterraformコードの中から不必要なものを省く労力は相当なものです。
GAになった時に期待していることは、resourceのtypeを指定してコード化する範囲を絞れることです。
Asset Inventory APIはresourceの種類を指定することで取得する対象を選択できるので、これと同じことができるようになると非常に実用的だと思います。
個人的に今後のアップデートに期待しているもののうちの1つになりました。
フィードバックはこちらに送ると良さそうなのでついでに紹介しておきます。
Did you create resources in @GoogleCloudTech via gcloud or the console but want to turn it into Terraform?
Export the config with:
gcloud alpha resource-config bulk-export –resource-format=terraform
Feedback welcome! Let us know how we can make this better. pic.twitter.com/eynwHL6rpi
— Vic Iglesias (@vicnastea) March 12, 2021
Google Cloud ならクラウドエース
クラウドエースは Google Cloud に特化したシステムインテグレーターです。国内トップクラス、400社以上の支援実績と知見をもとに、Google Cloudの導入から設計開発まであらゆるご要望にお応えいたします。
Google Cloud やクラウドに関するご不明点がございましたら、お気軽にご相談ください。
こちらの無料資料では、Google Cloud とクラウドエースについてさらに詳しく記載していますので、ぜひ合わせて御覧ください。
この記事を共有する