メインコンテンツまでスキップ

Terraformのignore_changesの使い方

· 約3分

ignore_changes は、Terraform のリソースブロック内で使用される属性で、指定されたリソースの特定の属性またはブロックに対する変更を無視するために使用されます。これは、Terraform が既存のリソースを変更しようとする場合に役立ちますが、特定の属性の変更を許可したくない場合に使用されます。

以下は、ignore_changes の基本的な使い方を示す例です。

resource "aws_instance" "example" {
ami = "ami-12345678"
instance_type = "t2.micro"

lifecycle {
ignore_changes = [ami, instance_type]
}
}

この例では、amiinstance_type の属性に対する変更は Terraform によって無視されます。この意味は、AWSコンソールや別のツールを使用してこれらの属性を手動で変更した場合、次回の terraform planterraform apply の実行時に Terraform がこれらの変更を検出または適用しないことを意味します。

ブロック全体を無視する場合もあります。たとえば、以下のように tags ブロック全体を無視することもできます。

resource "aws_instance" "example" {
ami = "ami-12345678"
instance_type = "t2.micro"
tags = {
Name = "example-instance"
}

lifecycle {
ignore_changes = [tags]
}
}

ignore_changes を使用する際の注意点:

  1. 無視する属性やブロックを過度に使用すると、インフラストラクチャの管理が複雑になる可能性があります。最小限に抑え、使用する際の理由をドキュメント化することがおすすめです。
  2. ignore_changes は、特定の状況や一時的な変更を管理する際に役立つツールですが、恒常的に使用することは避けるよう努めてください。

最後に、ignore_changes の使い方や挙動に関する詳細な情報や例については、公式のTerraformドキュメントを参照するとよいでしょう。