Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 确保不在VPC之间重复使用EIP_Amazon Web Services_Amazon Ec2_Vpc_Elastic Ip_Amazon Cloudformation - Fatal编程技术网

Amazon web services 确保不在VPC之间重复使用EIP

Amazon web services 确保不在VPC之间重复使用EIP,amazon-web-services,amazon-ec2,vpc,elastic-ip,amazon-cloudformation,Amazon Web Services,Amazon Ec2,Vpc,Elastic Ip,Amazon Cloudformation,给定: 一个(或多个)我们想要重用的弹性IP。(ip池) 一种云信息模板,其机器具有与其相关联的弹性ip。(通过AWS::EC2::EIPAssociation) 启动/拆除从共享EIP池获取IP的多个CloudFormation堆栈。(ip是堆栈中的一个参数,在启动堆栈之前计算) 我的期望是,如果一个VPC/CloudFormation堆栈已经在使用EIP,其他尝试使用它的尝试将失败。 事实证明,如果您尝试在另一个堆栈中使用相同的EIP,它将起作用。EIP将绑定到创建的最新堆栈 更糟糕的是,如

给定:
一个(或多个)我们想要重用的弹性IP。(ip池)
一种云信息模板,其机器具有与其相关联的弹性ip。(通过AWS::EC2::EIPAssociation) 启动/拆除从共享EIP池获取IP的多个CloudFormation堆栈。(ip是堆栈中的一个参数,在启动堆栈之前计算)

我的期望是,如果一个VPC/CloudFormation堆栈已经在使用EIP,其他尝试使用它的尝试将失败。
事实证明,如果您尝试在另一个堆栈中使用相同的EIP,它将起作用。EIP将绑定到创建的最新堆栈

更糟糕的是,如果堆栈1使用EIP,那么堆栈2使用相同的EIP,如果在堆栈2使用“窃取”IP后拆除堆栈1,那么堆栈2将丢失IP(导致IP是免费的-即不绑定到任何实例)

有人遇到过这个问题吗?你如何确保你没有在上述情况下跑步


我必须使用ips的原因是,在我通过公共互联网与之交互的系统中,ips被列入了访问的白名单。流量必须来自该池中的ip,不能只是随机获取任何公共ip

如果你想通过云计算得到什么,我不是100%。但就我个人而言,我会用另一种方式。Cloudformation在它所做的事情上非常出色,但当您想要开始添加逻辑和条件时,它会遇到困难

像往常一样创建所有实例,但不要尝试绑定eip,而是使用用户数据脚本和aws cli搜索未连接的eip并将其连接。使用cli执行此操作将为您提供更多的功能


祝您好运

不要将EIP直接连接到实例,而是连接一个已连接EIP的ENI。如果ENI正在使用中,它将不会与当前连接到的实例分离

通过带有EIP的NAT实例路由出站流量不是更简单吗?@Michael sqlbot我所说的实例是NAT:)为了保持简单,省略了它,但是的,我正在通过NAT实例。哈哈,好吧,在这种情况下,我的问题重写了它自己,询问让NAT实例运行是否更简单?t2.micro是一款性能优良且价格低廉的NAT机器。但这里有一个想法:当在控制台中手动关联EIP时,可以选择“允许重新关联”。如果未选中,则可以选择。粗略阅读一下CloudFormation文档就可以看出,在进行关联时并没有类似的功能。。。理想情况下,这将通过API提供。离开t2.micro运行不是一个选项。有趣的想法。我确实有一个运行并生成模板的脚本。我想这将最小化可能出现问题的窗口,并将EIP绑定从云形成中移除,但这并不理想……我不确定我是否会遵循。你能解释一下为什么这比仅仅使用EIP更好吗?如果你的目标是有效地为一个实例“保留一个EIP”,而不是在你打开另一个实例时让它分离,实现这一点的一种方法是添加一个抽象级别:将EIP与弹性网络接口相关联,并使其成为您连接到实例的对象,从而有效地为其提供所需的EIP。您不会像现在这样失去EIP。