经过几个小时的努力,这是我的问题。我目前正在使用CDK以最简单的形式创建VPC:
let vpc = new Vpc(this, "myVpc", {maxAzs: 1});
这使我得到一个公共子网和一个带有所有网关(互联网和NAT)的私有子网。我的NAT网关从AWS池中获得了公共EIP。当然,当我销毁堆栈并重新创建堆栈时,我会从AWS获得新的EIP,但是我不想这样做。
我想要的是 在CDK项目之外(手动通过CLI或AWS控制台)创建一个弹性IP,并将其附加到我的NAT GW,这样,即使在破坏堆栈之后,我也可以将(外部)EIP重新附加到“新” NAT GW
因此,必须有一种方法不让VPC自动创建AWS :: EC2 :: NatGateway,但使用适当的EIP关联手动将其创建,然后将其附加到VPC /公共子网。我可以以几乎相同的方式明确定义子网并将其与VPC关联,而不是与CDK结合使用。
答案 0 :(得分:1)
您可以在上一篇文章中引用https://github.com/aws/aws-cdk/issues/4067。
您可以定义EIP分配,然后在部署CDK时将其分配给Nat Gateway。
当然,您必须首先手动创建EIP。