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

最終更新日: 2020 年 3 月 18 日

AWS CloudFormation スタックの 1 つで作成されたリソースを手動で削除したところ、スタックが更新されなくなりました。どうすればスタックを更新できますか?

簡単な説明

AWS CloudFormation スタックからリソースを削除する場合は、AWS CloudFormation テンプレートからもリソースを削除する必要があります。AWS CloudFormation スタックのリソースのみを削除している場合、スタックが更新に失敗し、エラーメッセージが表示されます。

解決方法

手動で作成したリソースを更新する

削除済みの手動で作成したリソースを新しいリソースに置き換えることで、スタックを更新することができます。ただし、新しいリソースには削除されたリソースと同じ名前をつける必要があります。

たとえば、AWS Identity and Access Management(IAM) ロールは名前で追跡されるため、リソースの名前を変更すると、ロールの処理方法に影響する可能性があります。IAM ロールを誤って削除した場合には、同じ名前のロールを手動で再作成できます。

IAM ロールまたは手動で作成した他のリソースを更新するには、次の手順を実行してください。

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

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

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

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

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

  1. AWS CloudFormation テンプレートで、ルートテーブルとそのルートテーブルに対するリファレンスを削除します。
  2. ルートテーブルが含まれていないスタックを更新します。
  3. ルートテーブルと、必要な追加のリソースまたはリファレンスを AWS CloudFormation テンプレートに追加しなおします。
    注意: AWS CloudFormation は、削除したリソースを再作成します。
  4. 再度、スタックを更新します。

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

改善できることはありますか?


さらにサポートが必要な場合