以下の内容はhttps://www.yokoyan.net/entry/2019/03/20/123000より取得しました。


【CloudFormation】Route, ResourceStatusReason:Route did not stabilize in expected time. エラーの解決方法

f:id:yokoyantech:20181207175720p:plain

はじめに

CloudFormationで、NAT Gatewayを作成しようとしたところ、タイトルのエラーが発生して1時間くらいハマったのでメモ。

発生したエラー

ResourceType:AWS::EC2::Route, ResourceStatusReason:Route did not stabilize in expected time.

失敗したCloudFormationの結果を見ると、NatGatewayは作成できているものの、deletedになっている。 んんんん?

原因

  • ymlの記述が間違っているため
  • AWS::EC2::Route タイプのプロパティに誤りがある
    • 具体的には、RoutingのGatewayIdが違う
NATGateway1a:
  Type: AWS::EC2::NatGateway
  Properties:
    AllocationId: !GetAtt
      - ElasticIPOnNatGateway1a
      - AllocationId
    SubnetId:
      Fn::ImportValue:
        !Sub "${ENV}-PublicSubnet1a"
# ----------------- #
# Routing
# ----------------- #
PrivateRouteAFromNAT:
  Type: 'AWS::EC2::Route'
  Properties:
    DestinationCidrBlock: 0.0.0.0/0
    RouteTableId:
      Fn::ImportValue:
        !Sub "${ENV}-PrivateRouteTableA"
    # ここを修正する
    GatewayId: !Ref NATGateway1a

解決方法

  • NatGatewayを作る場合は、GatewayId プロパティではなく、NatGatewayId プロパティを使う
# ----------------- #
# Routing
# ----------------- #
PrivateRouteAFromNAT:
  Type: 'AWS::EC2::Route'
  Properties:
    DestinationCidrBlock: 0.0.0.0/0
    RouteTableId:
      Fn::ImportValue:
        !Sub "${ENV}-PrivateRouteTableA"
    # ここを修正する
    NatGatewayId: !Ref NATGateway1a

参考

aws.amazon.com

まとめ

あー、はいはい、NatInstanceを作るときは、RoutingにInstanceIdをしたけど、NatGatewayだから、RoutingはGatewayIdだよね!!と、安易に設定したことが原因でした・・・。リファレンスはちゃんと読みましょう。反省。




以上の内容はhttps://www.yokoyan.net/entry/2019/03/20/123000より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14