【AWS×Terraform】マネジメントコンソール側からパラメータを変更してそのままコード化する(terraform plan)
eyecatch

2024-07-04

2024-07-11

【AWS×Terraform】マネジメントコンソール側からパラメータを変更してそのままコード化する(terraform plan)

開発速度を上げる

目的

使い慣れていないAWSサービスをTerraformから構築するときにそもそもどのような設定項目があるのか?となりがちです。
また、Terraformで構築したもののリソースが思うように動作しないとき、いくつか設定をいじっては更新を繰り返して、デバッグしたいときがあります。

このような場合、AWSやTerraformの公式ドキュメントを見るのがベストですが、いちいち該当するパラメータを調べるのが若干面倒なときがあります。設定項目を知るにしてもデバッグするにしても、洗練されたGUIのAWSマネジメントコンソールをさわるほうが速いです。

そんなとき、terraform plan コマンドを使ってAWSマネジメントコンソール(クラウド上)から手動でパラメータを変更して、それをローカルでコードとして取り込むという方法を紹介します。

注意事項

本来、Terraform側で管理しているリソースをマネジメントコンソールからいじることは差分ができてしまい危険であるため、本番環境などではおすすめしません。
また、変更した項目によっては、terraform planでも取得できないケースもあります。

手順

1.クラウドとTerraformの状態を一致させておく

  • あらかじめターミナルからterraform apply などでクラウドとTerraformの状態を一致させておく
  • terraform plan を実行し「No changes. Your infrastructure matches the configuration.」と表示されることを確認する

2.Terraform化したい設定項目を、AWSマネジメントコンソールから変更する

  • AWSマネジメントコンソールから様々な設定項目があることを確認しつつ、
  • 今回の目的に合った設定項目を手動で変更し、リソースを更新する

3.変更した項目をTerraform化する

  • ターミナルに戻り、再度terraform plan を実行する
  • 変更したリソースのパラメータがコードとして表示されるので、それをコピーする
  • 先ほどの表示されている中の、該当するresourceやmoduleのファイルを開く
  • コピーしたコードを貼り付けて、フォーマットをTerraformに合わせるように修正し保存する

  • terraform plan を実行し、「No changes. Your infrastructure matches the configuration.」と表示されていればコード化が完了

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

自己紹介

logo

かわいち

Webエンジニアです! 普段から効率良く開発できるように心がけています。 また、趣味でもプログラミングをしており、モノづくりが好きです。 このブログでは、プログラミングに役立つコトを日々発信しています!