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

所要時間1分
0

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

簡単な説明

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

リソースタイプに応じて、以下のいずれかの解決策を選択してください:

  • 一意の名前でリソースを更新します
  • 一意の ID でリソースを更新します

解決策

一意の名前でリソースを更新します

削除されたリソースが一意の名前をサポートしている場合は、リソースを手動で作成してスタックを更新できます。ただし、新しいリソースは、削除されたリソースと同じ名前でなければなりません。たとえば、リソース名を変更すると、CloudFormation がリソースを処理する方法に影響を与えることができます。これは、AWS ID およびアクセス管理 (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 は削除操作が成功したと見なします。
  3. ルートテーブルと必要な追加リソースまたは参照を CloudFormation テンプレートに戻します。
  4. スタックをもう一度更新します。
    **注:**CloudFormation は削除されたリソースを再作成します。

関連情報

AWS CloudFormation のトラブルシューティング

AWS公式
AWS公式更新しました 3年前