Amazon web services AWS专有网络-适用于不同环境的弹性IP

Amazon web services AWS专有网络-适用于不同环境的弹性IP,amazon-web-services,amazon-ec2,terraform,amazon-vpc,eip,Amazon Web Services,Amazon Ec2,Terraform,Amazon Vpc,Eip,我正在尝试为不同的环境建立一个VPC体系结构dev/test/pre-prod/prod,我面临一个关于弹性IP限制的问题。如果首先知道架构是否朝着正确的方向发展,那就太好了。让我在这里向你解释一下细节: 1个VPC,适用于具有1个Internet网关的所有环境 一个区域内的专有网络 3个可用性区域,共6个子网,其中1个专用子网和1个公用子网 3个NAT网关-每个公用子网一个,为其网络接口分配3个弹性IP EC2实例每个专用子网中的主机和节点 连接到公司网络的虚拟专用网关 我正在使用Terraf

我正在尝试为不同的环境建立一个VPC体系结构dev/test/pre-prod/prod,我面临一个关于弹性IP限制的问题。如果首先知道架构是否朝着正确的方向发展,那就太好了。让我在这里向你解释一下细节:

1个VPC,适用于具有1个Internet网关的所有环境 一个区域内的专有网络 3个可用性区域,共6个子网,其中1个专用子网和1个公用子网 3个NAT网关-每个公用子网一个,为其网络接口分配3个弹性IP EC2实例每个专用子网中的主机和节点 连接到公司网络的虚拟专用网关 我正在使用Terraform将整个基础设施自动化为代码,这在这里并不重要。当我为一个环境运行Terraform脚本时,比如说dev,上面详细介绍的整个基础设施都创建得很好,运行得很好。但是现在,当我为另一个环境(比如测试)运行脚本时,弹性IP用完了,因为每个区域有5个EIP的限制

为了在不达到这些EIP限制的情况下为不同的环境创建基础设施,最好的方法是什么

谢谢你的帮助。如果需要更多细节,请告诉我

问候,,
Abdul

我建议每个环境在其自己的AWS帐户中进行管理,而不是将所有环境混合在一个帐户中。当您实现了基础架构的自动化时,额外的分离非常容易,并且它为您提供了环境之间额外级别的安全性和隔离。一个环境中的黑客攻击不会影响另一个环境

我们以这种方式保持3个环境。生产、开发和故障保护环境。故障保护帐户包含位于不同区域的生产备份

按帐户分隔环境有多种好处。例如:

您不需要为每个人提供生产访问权限, 您可以指定某些资源只能在特定环境中创建, 代码空间类型事件!看见
我建议每个环境在其自己的AWS帐户中进行管理,而不是将所有环境混合在一个帐户中。当您实现了基础架构的自动化时,额外的分离非常容易,并且它为您提供了环境之间额外级别的安全性和隔离。一个环境中的黑客攻击不会影响另一个环境

我们以这种方式保持3个环境。生产、开发和故障保护环境。故障保护帐户包含位于不同区域的生产备份

按帐户分隔环境有多种好处。例如:

您不需要为每个人提供生产访问权限, 您可以指定某些资源只能在特定环境中创建, 代码空间类型事件!看见
如评论中所述,EIP限制只是您遇到了AWS针对EIP的服务限制,因此您应该与AWS讨论提高它的问题。按照的建议,在单独的AWS帐户中运行单独的工作负载是绕过服务限制的另一种方法,但由于他在回答中列出的许多其他原因,这也是一个好主意

也讨论过,您可能只考虑在非生产VPCS中运行单个NAT网关,因为这样既可以降低成本,又可以减少所需的EIP。 NAT网关被放置在其中,但显然不是跨区域的。这意味着,如果恰好包含NAT网关的AZ上有一个AZ故障,那么其他AZ将失去通过NAT网关的连接,故障将扩展到逻辑上分离的AZ之外。如果每个AZ都有一个NAT网关,那么当一个AZ出现故障时,它只会影响到那个明显完全停机的AZ


对于我自己来说,较小的HA对于非生产环境来说是不错的,每个非生产VPC每月可以节省65美元。然而,在生产环境中,我很乐意承担这一小部分额外成本,以减少AZ故障造成的损失,以及我为避免单点故障所做的所有其他工作。

如评论中所述,EIP限制只是您遇到了AWS对EIP的服务限制,因此您应该与AWS讨论提高它的问题。按照的建议,在单独的AWS帐户中运行单独的工作负载是绕过服务限制的另一种方法,但由于他在回答中列出的许多其他原因,这也是一个好主意

也讨论过,您可能只考虑在非生产VPCS中运行单个NAT网关,因为这样既可以降低成本,又可以减少所需的EIP。 NAT网关被放置在其中,但显然不是跨区域的。这意味着,如果恰好包含您的NAT网关的AZ上有一个AZ故障,那么您的其他AZ将失去通过NAT网关的连接,从而传播故障 在逻辑上分离的AZ之外。如果每个AZ都有一个NAT网关,那么当一个AZ出现故障时,它只会影响到那个明显完全停机的AZ


对于我自己来说,较小的HA对于非生产环境来说是不错的,每个非生产VPC每月可以节省65美元。但是,在生产环境中,我很乐意承担这一小部分额外成本,以减少AZ故障造成的损失,以及我为避免单点故障所做的所有其他工作。

如果您的所有实例都确实需要EIP,那么您可以向AWS支持部门请求增加限额。谢谢Briansbum。目前,弹性IP分配给公共子网中的网络接口。所以我的问题是:为我创建的每个环境分配3个弹性IP是否正确?有没有更好的解决方法?如果您不需要NAT网关上的HA,您可以在每个VPC上使用一个NAT网关。在包含您的NAT网关的AZ出现故障之前,这一切都是正常的,此时其他AZ现在无法出口到internet或通过NAT网关的任何路由。NAT网关在AZ本身是高度可用的,因此您只需要担心AZ故障案例,这种情况应该非常罕见,不必在生产之外真正担心它。但最终你只需要要求AWS增加你账户+地区的EIP限制。谢谢@ydaetskcoR。所以我可以在AZ1的公共子网中创建一个NAT网关,然后允许来自所有AZ的私有子网的实例与AZ1的公共子网通信?这可行吗?这应该适用于其他环境,如dev/test/pre-prod/staging,但我相信我仍然会遇到EIP限制问题3,prod为1,每个环境为1?如果是这样的话,我可以要求增加限额,但我会尝试了解这是否是正确的解决方案,因为这是一个非常常见的部署场景?如果AZ下降。NAT网关在其AZ中是HA,请参见,但如果包含NAT网关的AZ出现故障,则不应受到影响的其他AZ现在会受到NAT网关丢失的影响。对我来说,这在生产之外很好,但这是你必须做出的决定,而不是外界任何人都能告诉你的。如果你真的需要所有实例的EIP,那么你可以请求AWS支持部门增加限制。谢谢Briansbum。目前,弹性IP分配给公共子网中的网络接口。所以我的问题是:为我创建的每个环境分配3个弹性IP是否正确?有没有更好的解决方法?如果您不需要NAT网关上的HA,您可以在每个VPC上使用一个NAT网关。在包含您的NAT网关的AZ出现故障之前,这一切都是正常的,此时其他AZ现在无法出口到internet或通过NAT网关的任何路由。NAT网关在AZ本身是高度可用的,因此您只需要担心AZ故障案例,这种情况应该非常罕见,不必在生产之外真正担心它。但最终你只需要要求AWS增加你账户+地区的EIP限制。谢谢@ydaetskcoR。所以我可以在AZ1的公共子网中创建一个NAT网关,然后允许来自所有AZ的私有子网的实例与AZ1的公共子网通信?这可行吗?这应该适用于其他环境,如dev/test/pre-prod/staging,但我相信我仍然会遇到EIP限制问题3,prod为1,每个环境为1?如果是这样的话,我可以要求增加限额,但我会尝试了解这是否是正确的解决方案,因为这是一个非常常见的部署场景?如果AZ下降。NAT网关在其AZ中是HA,请参见,但如果包含NAT网关的AZ出现故障,则不应受到影响的其他AZ现在会受到NAT网关丢失的影响。对我来说,这在生产之外很好,但这是你必须做出的决定,而不是外界任何人都能告诉你的。谢谢@Rodrigo M。很高兴听到你有这样一个系统。我肯定会考虑到这一点。当然。我希望我在我的环境中早点这样做。有多个好处,例如您不需要为每个人提供生产访问权限,并且您可以指定某些资源只能在特定环境中创建。加上代码空间,代码空间的故事是相当可怕的,但一个很好的分享在这里。干杯..谢谢@Rodrigo M.很高兴听到你有这样一个系统。我肯定会考虑到这一点。当然。我希望我在我的环境中早点这样做。有多个好处,例如您不需要为每个人提供生产访问权限,并且您可以指定某些资源只能在特定环境中创建。加上代码空间,代码空间的故事是相当可怕的,但一个很好的分享在这里。干杯,好的观点。正如我在回答中所建议的,通过适当的工具和环境分离,某些资源可以在特定的环境中被约束或省略
环境。在非生产环境中降低HA级别当然是降低成本的好方法。是的,毫无疑问,在AWS帐户中拆分环境绝对值得,原因有很多,但提高软服务限制可能是其中最小的一个;好的观点。正如我在回答中所建议的,通过适当的工具和环境分离,某些资源可以在某些环境中受到约束或忽略。在非生产环境中降低HA级别当然是降低成本的好方法。是的,毫无疑问,在AWS帐户中拆分环境绝对值得,原因有很多,但提高软服务限制可能是其中最小的一个;