AWS VPC - 适用于不同环境的弹性IP

时间:2018-01-30 10:12:15

标签: amazon-web-services amazon-ec2 terraform amazon-vpc eip

我正在尝试为不同的环境(dev / test / pre-prod / prod)建立一个VPC架构,我面临着限制弹性IP限制的问题。很高兴知道架构首先是朝着正确的方向发展。那么让我在这里解释一下细节:

  1. 1个具有1个Internet网关的环境的VPC
  2. 一个地区的VPC
  3. 3个可用区域,每个子网拥有1个私有子网和1个公用事业子网(共6个子网)
  4. 3个NAT网关 - 每个公用事业子网一个,其网络接口分配了3个弹性IP
  5. 每个私有子网中的EC2实例(主节点和节点)
  6. 连接企业网络的虚拟专用网关
  7. 我正在使用Terraform将整个基础架构自动化为代码(这在这里并不重要)。当我为一个环境运行Terraform脚本时(让我们说dev),上面详述的整个基础架构都可以很好地创建并且运行良好。但是现在当我为另一个环境运行脚本(比如测试)时,我的弹性IP用完了(因为每个区域有5个EIP限制)。

    重新设计这个的最佳方法是什么,这样我可以为不同的环境创建基础设施,而不是达到这些EIP限制?

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

    此致 阿都

2 个答案:

答案 0 :(得分:3)

我建议每个环境都在自己的AWS账户中管理,而不是混合一个账户中的所有环境。自动化基础架构后,额外的分离非常简单,它为您提供了更高级别的安全性和环境隔离。在一个环境中进行黑客攻击不会影响其他环境。

我们以这种方式保留3个环境。生产,开发和故障安全环境。故障安全帐户包含不同区域的生产备份。

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

答案 1 :(得分:2)

正如评论中所提到的,EIP限制只是您遇到EIP的AWS服务限制,因此您应该与AWS讨论如何提高它。根据{{​​3}}的建议在单独的AWS账户中运行单独的工作负载是另一种绕过服务限制的方法,但出于其答案中列出的许多其他原因也是个好主意。

如前所述,您可能只想考虑在非生产VPC中运行单个NAT网关,因为这会降低您的成本(以及减少您需要的EIP)。

NAT网关Rodrigo M置于其中,但显然不在整个地区。这意味着,如果您在AZ上发生包含NAT网关的单个AZ故障,那么您的其他AZ将通过NAT网关失去连接,将故障分散到逻辑上分离的AZ之外。如果你为每个AZ都有一个NAT网关,那么当一个AZ失败时,它只会影响那个单独的AZ(这显然完全没有了)。

对于我自己来说,较低的HA适用于非生产环境,每个非生产VPC每月可节省65美元。然而,在生产环境中,我很乐意吃掉这么小的额外费用来减少AZ故障造成的损害以及我为避免单点故障所做的所有其他工作。