【问题标题】:HA for NAT / Internet gateways in Elastic Beanstalk environment with multiple AZ/subnets具有多个可用区/子网的 Elastic Beanstalk 环境中 NAT/Internet 网关的 HA
【发布时间】:2018-08-20 21:09:53
【问题描述】:

我有一个关于 NAT 网关和与弹性 beantalk 相关联的互联网网关的问题。我的配置如下:

  • 不同 AZ 的 3 个公有子网
  • 1 个包含 3 个公共子网和一个 Internet 网关的路由表
  • 不同 AZ 的 3 个私有子网
  • 1 个包含 3 个私有子网但什么都没有的路由表(还没有)
  • ELB 已为实例配置了每个 AZ 中的 3 个子网和每个 AZ 中的 3 个私有子网

现在,如果我为这 3 个私有子网创建一个 NAT 网关,这意味着我需要在不同的 AZ 和 3 个不同的弹性 IP 中为每个子网创建一个吗?我想我遗漏了一些东西,但除非该配置有意义,否则我看不到它。

【问题讨论】:

    标签: amazon-web-services networking amazon-elastic-beanstalk subnet private-subnet


    【解决方案1】:

    TL;DR

    这是你的选择。从技术上讲,一个 NAT 实例可以为一个 VPC 中的所有私有子网提供服务。

    再长一点:

    首先我们区分 NAT Instance(EC2 实例配置为 NAT GW,由最终用户管理)和 NAT Gateway(NAT Instance 由 AWS 管理)。

    如果是 NAT 实例,那么实现它的人需要更多地了解如何实现它。回答这个问题是不够的。

    如果是 NAT GW,则 AWS says“每个 NAT 网关都在特定的可用区中创建,并在该区域中以冗余方式实施”。我的解释是:只要整个 AZ 没有宕机,AWS 就保证 NATGW 的 HA(可能伴随服务中断或降级)。

    从技术上讲,只要所有 3 个私有子网的路由表都提供到此 NATGW 的路由(我猜是隐式的,但安全组/acl 已配置),您应该可以在任何一个公共子网中使用单个 NAT GW允许使用该路线)。由于此配置,您当然要为 AZ 之间的带宽使用付费。

    但显然这在 AZ 宕机的情况下不是容错的。

    如果您不希望所有私有子网在 NAT GW 关闭时断开 Internet 连接,那么您需要拥有更多 NAT GW。决定是否拥有多个,如果是,那么我猜有多少是个案。

    如果您有 2 个 NAT GW,那么为了发生故障转移,您需要设置监控和故障转移以确保如果 AZ 出现故障,所有私有子网(由该 AZ 中的 NAT GW 提供服务)开始发送到另一个 NAT GW 的流量。 Good explanation here。这是一个 AFAIK 的工作。

    最后,EIP和NAT GW之间的关系是一对一的。所以是的,您必须为您创建的每个 NAT GW 创建一个 EIP。

    【讨论】:

    • 只是一个注释。为了让 gayeways 完全 HA,AWS 建议在每个可用区中创建一个 NAT GW,以便当整个 AZ 不可用时,其他 AZ 继续工作。这种解决方案确实有其成本。
    猜你喜欢
    • 2020-10-05
    • 2020-02-10
    • 2021-02-26
    • 2014-02-11
    • 1970-01-01
    • 2017-05-23
    • 1970-01-01
    • 2016-12-06
    • 2021-06-28
    相关资源
    最近更新 更多