Terraform applyでエラーが発生!IAMロール名の重複問題とその解決策 ❗️
はじめに
こんにちは、Takeです。都内の自社開発企業でエンジニアとして働いています。
突然ですが、$ terraform plan
の実行時には何もエラーが出なかったのに、$ terraform apply
後にエラーが発覚した経験はありませんか?
そんな時、こちらの記事内容が皆様のお役に立てれば幸いです。
似ているエラー内容
また、以下の記事においても類似したエラー内容について解説していますので、お読みいただければ幸いです。
エラー内容
次のようなエラーメッセージが出た。
Error: AWS SDK Go Service Operation Incomplete
│
│ with awscc_iam_role.ecs_throttling_alert_role,
│ on chatbot_slack_config.tf line 19, in resource "awscc_iam_role" "ecs_throttling_alert_role":
│ 19: resource "awscc_iam_role" "ecs_throttling_alert_role" {
│
│ Waiting for Cloud Control API service UpdateResource operation completion returned: request cancelled while waiting, context
│ canceled
エラー原因
問題の原因は、IAMで既に存在するロール名で新たにロールを作成しようとしたため、名前が重複してエラーが発生したと思われれる。
解決策
まず、Terraformで管理するIAMリソースをチェックした。問題のロールをIAMから直接削除し、整合性を保つため以下のコマンドを実行した。
▼Terraformの初期化
terraform init
▼変更点を確認し、予定されたアクションが正しいかの検証
terraform plan
▼実際のリソース変更分をAWSに適用
terraform apply
これらの手順を経て、無事、terraform apply
が成功した。IAMの状態とTerraformのステートを一致させることの重要性を学んだ。
まとめ
今回は、$ terraform plan
の実行時には何もエラーが出なかったのに、$ terraform apply
後にエラーが発覚したケースのひとつの解決策について学んだことを共有してきた。
$ terraform apply
の実行と共に、IAMのロールを確認することで自分の場合、エラーが解消し無事$ terraform apply
が成功した。必ずしもこれが原因だとは限らないが、解決の一つの選択肢として参考になれば幸いだ。
最後に
ここまで読んでいただきありがとうございました!
今回の記事が良かったと思ったらぜひ「いいね」を押していただけると嬉しいです 🎉
noteでも記事を執筆していますので、ぜひチェックしてみてください。
他にもこのようなことについて記載しているのでお読みいただければ幸いです。
最後までお読みいただき、誠にありがとうございました!
Discussion