1

正しく作成された CloudFormation スタック ( https://gist.github.com/palfrey/7021931の匿名バージョン) がありますが、削除しようとすると VPCGatewayAttachment を削除しようとすると失敗します。アドレス。ただし、最初に VPC 内にあるインスタンスから Elastic IP の関連付けを解除すると、正常に機能します。

スタック JSON からの注目事項:

  • Elastic IP と VPCGatewayAttachment が作成され、スタック作成の一部として関連付けられます。作成と削除の間に変更を加えません。
  • AWS Powershell ヘルパーを使用して、特に New-CFNStack と Remove-CFNStack を作成および破棄していますが、AWS コンソールからスタックを手動で削除しても同じ結果になります。
  • AWS コンソールからの削除シーケンスは、Elastic IP の前に VPCGatewayAttachment を削除しようとしていることを示していますが、関連付けを解除すると、正しい順序で処理が行われます。

事前に Elastic IP の関連付けを解除することでこれを回避できますが、CloudFormation が削除シーケンスの他の依存関係を認識しているように見えることを考えると、正しい順序で処理しない理由について混乱しています。

4

2 に答える 2

2

現在 (2016 年 4 月現在) の解決策は、リソースを指すDependsOn属性をリソースに追加することです。AWS::EC2::EIPAWS::EC2::VPCGatewayAttachment

DependsOn 属性が必要な場合については、AWS CloudFormation のドキュメントを参照してください。

VPC 内の一部のリソースには、ゲートウェイ (インターネットまたは VPN ゲートウェイ) が必要です。AWS CloudFormation テンプレートが VPC、ゲートウェイ、およびゲートウェイ アタッチメントを定義する場合、ゲートウェイを必要とするすべてのリソースはゲートウェイ アタッチメントに依存します。たとえば、VPC リソースと InternetGateway リソースも同じテンプレートで宣言されている場合、パブリック IP アドレスを持つ Amazon EC2 インスタンスは VPC-gateway アタッチメントに依存します。

現在、次のリソースは、関連付けられたパブリック IP アドレスがあり、VPC 内にある場合、VPC ゲートウェイ アタッチメントに依存しています。

  • Auto Scaling グループ
  • Amazon EC2 インスタンス
  • Elastic Load Balancing ロードバランサー
  • Elastic IP アドレス
  • Amazon RDS データベース インスタンス
  • インターネットゲートウェイを含む Amazon VPC ルート

あなたの例では、、、およびリソースに追加する必要があります(上記"DependsOn": "AttachGateway"の引用では太字で示されています)。WebServerWebServerEIPRoute

"WebServerEIP": {
        "Type" : "AWS::EC2::EIP",
        "DependsOn" : "AttachGateway",
        [...]
}
于 2016-04-15T18:07:07.850 に答える
1

これは Elastic IP アドレスの割り当て解除順序のバグであり、CloudFormation が単一処理から並列処理に移行したときに導入されました。

AWS はそれを認識しており、ロードマップに載せてすぐに修正できることを願っています。当面の間、remove-cfn スタックを再度実行することは、やや受け入れがたい回避策です。

(実際には削除を実行するヘルパーがあり、最終的に削除することが決定されるまで削除を呼び出し続けます)

于 2013-10-28T02:58:12.653 に答える