比较 NAT 网关和 NAT 实例
以下概要列出了 NAT 实例和 NAT 网关的区别。我们建议您使用 NAT 网关,因为它们提供了更好的可用性和带宽,而且管理工作所需的工作量更少。
属性 | NAT 网关 | NAT 实例 |
---|---|---|
可用性 | 高度可用。每个可用区中的 NAT 网关都采用冗余实施。在每个可用区中创建一个 NAT 网关可确保架构不依赖于可用区。 | 使用脚本管理实例之间的故障转移。 |
带宽 | 可以纵向扩展到 100 Gbps。 | 取决于实例类型的带宽。 |
维护 | 由 AWS 管理。您不需要进行任何维护。 | 由您管理,例如您需要对实例安装软件更新或操作系统补丁。 |
性能 | 软件经过优化以便处理 NAT 流量。 | 配置来执行 NAT 的通用 AMI。 |
费用 | 费用取决于您使用的 NAT 网关的数量、使用时长以及您通过 NAT 网关发送的数据量。 | 费用取决于您使用的 NAT 实例的数量、使用时长以及实例类型和大小。 |
类型和大小 | 整合提供;您不需要选择类型或范围。 | 根据您的预测工作负载选择适当的实例类型和大小。 |
公有 IP 地址 | 创建时选择弹性 IP 地址,与公有 NAT 网关关联。 | 为 NAT 实例使用弹性 IP 地址或公有 IP 地址。您随时可以通过将新的弹性 IP 地址与实例关联来更改公有 IP 地址。 |
私有 IP 地址 | 在您创建网关时自动从子网的 IP 地址范围中选择。 | 在您启动实例时,从子网的 IP 地址范围内分配特定的私有 IP 地址。 |
安全组 | 您不能将安全组与 NAT 网关相关联。您可以将安全组与 NAT 网关后的资源关联,以控制入站和出站流量。 | 与您的 NAT 实例和 NAT 实例之后的资源关联,以控制入站和出站流量。 |
网络 ACL | 使用网络 ACL 控制进出您的 NAT 网关所在子网的流量。 | 使用网络 ACL 控制进出您的 NAT 实例所在子网的流量。 |
流日志 | 使用流日志捕获流量。 | 使用流日志捕获流量。 |
端口转发 | 不支持。 | 手动自定义配置以支持端口转发。 |
堡垒服务器 | 不支持。 | 用作堡垒服务器。 |
流量指标 | 查看 NAT 网关的 CloudWatch 指标。 | 查看实例的 CloudWatch 指标。 |
超时行为 | 如果连接超时,NAT 网关向 NAT 网关后方的任何资源返回 RST 数据包,尝试继续进行连接 (它不发送 FIN 数据包)。 | 如果连接超时,NAT 实例向 NAT 实例后方的资源发送 FIN 数据包,以关闭连接。 |
IP 分段 | 支持转发 UDP 协议的 IP 分段数据包。 不支持 TCP 和 ICMP 协议的分段。将删除这些协议的分段数据包。 |
支持重组 UDP、TCP 和 ICMP 协议的 IP 分段数据包。 |
从 NAT 实例迁移到 NAT 网关
如果您已在使用 NAT 实例,我们建议将它替换为 NAT 网关。您可以在您的 NAT 实例所在的同一子网中创建一个 NAT 网关,然后将路由表中指向该 NAT 实例的现有路由替换为指向该 NAT 网关的路由。要为 NAT 网关使用 NAT 实例当前所用的同一个弹性 IP 地址,您必须先解除该弹性 IP 地址与 NAT 实例的关联,然后在创建 NAT 网关时将该地址与该 NAT 网关关联。
如果您将路由从 NAT 实例更改为 NAT 网关,或者,如果解除弹性 IP 地址与 NAT 实例的关联,则所有当前连接都会中断,必须重新建立。请确保您没有任何关键任务(或任何通过 NAT 实例操作的其他任务)正在运行。