😊

Terraform applyでエラーが発生!IAMロール名の重複問題とその解決策 ❗️

2024/05/09に公開

はじめに

こんにちは、Takeです。都内の自社開発企業でエンジニアとして働いています。

突然ですが、$ terraform planの実行時には何もエラーが出なかったのに、$ terraform apply 後にエラーが発覚した経験はありませんか?

そんな時、こちらの記事内容が皆様のお役に立てれば幸いです。

似ているエラー内容

また、以下の記事においても類似したエラー内容について解説していますので、お読みいただければ幸いです。
https://zenn.dev/take_tech/articles/45fed827836d34

エラー内容

次のようなエラーメッセージが出た。

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既に存在するロール名で新たにロールを作成しようとしたため、名前が重複してエラーが発生したと思われれる。

https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/intro-structure.html

https://aws.amazon.com/jp/iam/

解決策

まず、Terraformで管理するIAMリソースをチェックした。問題のロールをIAMから直接削除し、整合性を保つため以下のコマンドを実行した。

https://zenn.dev/fdnsy/articles/31105a37126d66

▼Terraformの初期化

terraform init  

▼変更点を確認し、予定されたアクションが正しいかの検証

terraform plan

▼実際のリソース変更分をAWSに適用

terraform apply

これらの手順を経て、無事、terraform applyが成功した。IAMの状態とTerraformのステートを一致させることの重要性を学んだ。

https://developer.hashicorp.com/terraform/cli/commands/apply

https://qiita.com/takkii1010/items/082c0854fd41bc0b26c3

まとめ

今回は、$ terraform planの実行時には何もエラーが出なかったのに、$ terraform apply 後にエラーが発覚したケースのひとつの解決策について学んだことを共有してきた。

$ terraform applyの実行と共に、IAMのロールを確認することで自分の場合、エラーが解消し無事$ terraform applyが成功した。必ずしもこれが原因だとは限らないが、解決の一つの選択肢として参考になれば幸いだ。

最後に

ここまで読んでいただきありがとうございました!
今回の記事が良かったと思ったらぜひ「いいね」を押していただけると嬉しいです 🎉

noteでも記事を執筆していますので、ぜひチェックしてみてください。
https://note.com/take_lifelog/n/n58df7ce7af6f

他にもこのようなことについて記載しているのでお読みいただければ幸いです。

https://zenn.dev/take_tech/articles/275e5f4242973d

https://zenn.dev/take_tech/articles/374817f256ec9d

最後までお読みいただき、誠にありがとうございました!

Discussion