2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[Terraform] AWSコンソールで削除されたリソースが原因でDestroyできない場合の対処法

Posted at

前書き

Terraformを使用してインフラを管理していると、一部のリソースがAWSコンソール上で削除されてしまい、Terraformの terraform destroy が失敗することがあります。この記事では、そのような状況に陥った際のいくつかの解決方法と、それぞれの具体的なコマンドを紹介します。

問題の概要

Terraformは管理対象のリソースを terraform.tfstate ファイルで管理しています。しかし、AWSコンソールなどで手動削除されたリソースがあると、Terraformが状態を正しく認識できず、削除時にエラーが発生することがあります。

解決策 ①: terraform state rm コマンドを使用する

Terraformの state rm コマンドを使用することで、手動削除されたリソースを terraform.tfstate から削除できます。これはTerraformの管理対象からリソースを外す方法です。

手順
1. まず、エラーの原因となっているリソースを特定する

terraform plan

2. 問題のリソースをTerraformの状態管理から削除する

terraform state rm aws_instance.example
# aws_instance.example の部分は、エラーで表示されているリソース名に置き換えてください

3. その後、通常通り terraform destroy を実行できる

terraform destroy

解決策 ②: terraform import で再登録する

AWSコンソールで削除されたリソースがまだ必要な場合は、 terraform import を使ってTerraformの管理対象に再登録できます。

手順
1. まず、対象のリソースをTerraformにインポートできるか確認する

terraform state list

2. AWSのリソースIDを確認し、Terraformにインポートする

terraform import aws_instance.example i-xxxxxxxxxxxx
# i-xxxxxxxxxxxx は、AWS上の実際のリソースIDに置き換えてください

3. その後、 terraform destroy が正常に動作するか試す

terraform destroy

解決策 ③: terraform refresh

Terraformの状態ファイルを最新の状態に更新することで、問題が解決する場合があります。

手順
1. terraform refresh コマンドを実行する(Terraform v0.15 以前の場合)

terraform refresh

※Terraform v1.0以降では refresh は非推奨になり、 terraform apply に統合されました。

2. terraform apply を実行し、削除されたリソースを再作成する

terraform apply

解決策 ④: 手動で terraform.tfstate を編集する(最終手段)

terraform state rm で対応できない場合は、 terraform.tfstate を直接編集することもできます。ただし、手作業での編集はリスクが伴うため、事前にバックアップを取ることをおすすめします。

手順
1. terraform.tfstate のバックアップを作成する

cp terraform.tfstate terraform.tfstate.bak

2. terraform.tfstate を手動で開き、削除されたリソースに関連するエントリを削除する

3. 修正後、 terraform apply または terraform destroy を再実行する

terraform destroy

まとめ

Terraformで管理しているリソースがAWSコンソールで削除された場合は、まず state rm や import で対応し、それでも解決しない場合は refresh や tfstate の編集を検討すると良いでしょう。
お役に立てれば幸いです。

2
3
0

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
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?