手動で削除したリソースが原因で失敗している CloudFormation スタックを更新するにはどうすればよいですか?

最終更新日: 2021 年 8 月 23 日

AWS CloudFormation スタックのうちのひとつによって作成されたリソースを手動で削除したのですが、スタックが更新されなくなりました。

簡単な説明

CloudFormation スタックによって作成されたリソースを削除すると、スタックの更新に失敗し、エラーメッセージが表示されます。

リソースタイプに応じて、次の解決方法のいずれかを選択してください。

  • 固有の名前でリソースを更新する
  • 固有の ID でリソースを更新する

解決方法

固有の名前でリソースを更新する

削除されたリソースが固有の名前をサポートしている場合は、リソースを手動で作成してスタックを更新できます。ただし、新しいリソースには削除されたリソースと同じ名前をつける必要があります。例えば、リソース名を変更するときに CloudFormation によるリソースの処理方法に影響を与える可能性があります。これは、AWS Identity and Access Management (IAM) ロールは名前で追跡されるためです。IAM ロールを誤って削除してしまった場合は、同じ名前のロールを手動で再作成できます。

IAM ロールまたはその他のリソースを固有の名前で更新するには、次の手順を実行します。

  1. AWS CloudFormation コンソールを開きます。
  2. スタックを選択してから、[リソース] ビューを選択します。
  3. 物理 ID 列で、新しい IAM ロールに置き換えたい IAM ロールの物理 ID を探します。
    注意: 物理 ID とはリソースの名前のことです。
  4. 新しい IAM ロールを作成した後、ステップ 3 で見つけたものと同じ物理 ID を新しいロールに付与します。
  5. スタックを更新します。

注意: 詳細については、スタックテンプレートの変更を参照してください。

固有の ID でリソースを更新する

ルートテーブルなどのリソースを固有の ID で再作成することはできません。代わりに、リソースとそのリソースへのリファレンスを CloudFormation テンプレートから削除する必要があります。

注: 次の解決方法は、固有の名前または一意の ID をサポートしないリソースでも機能します。例えば、ホストゾーン内のレコードセットなどです。

CloudFormation が、ルートテーブルまたは他のリソースを固有の ID で再作成できるようにするには、以下の手順を実行してください。

  1. CloudFormation テンプレートで、ルートテーブルとそのルートテーブルに対するリファレンスを削除します。
  2. スタックを更新します
    注意: CloudFormation はルートテーブルの削除を試みます。リソースは既に削除されているため、CloudFormation は削除を成功したオペレーションと見なします。
  3. ルートテーブルと、必要な追加のリソースまたはリファレンスを CloudFormation テンプレートに追加しなおします。
  4. もう一度スタックを更新します。
    注意: CloudFormation は、削除したリソースを再作成します。

この記事はお役に立ちましたか?


請求に関するサポートまたは技術サポートが必要ですか?