👁️‍🗨️

あるAWS上のリソースがTerraform管理かそうでないかを見分ける方法

に公開

前提

あるAWSアカウント内のリソースが、Terraform管理とそうでないもので入り混じっている。

やりたいこと

あるリソースがTerraform管理かそうでないかを見分けたい。

方法

default_tags機能を使う。

これを使い、次のようにprovider宣言を書き換える。

provider "aws" {
  region = "ap-northeast-1"

  default_tags {
    tags = {
      managed-by = "https://github.com/bigwheel/tfinfermv/tree/master/sample"
    }
  }
}

managed-by の値には単に terraform と書いてもよいが、ルートモジュールのパスを書いておくとどこのディレクトリで管理されているかがわかりやすくて便利。
また、同じリソースが2つの異なるルートモジュール内で管理されている場合に発見しやすくなる(applyタイミングで差分として表示されるため)。

Discussion