【问题标题】:AWS NAT gateway vs public IP for outgoing internet connectionsAWS NAT 网关与用于传出 Internet 连接的公共 IP
【发布时间】:2017-08-09 03:39:55
【问题描述】:

我正在学习 AWS 以及如何为 EC2 实例配置网络,并且有几个问题。我在 t2.micro 实例中使用 CentOS 7。

  1. 私有 IP 绑定到实例中的 NIC,如 ifconfig -a 所示。目的似乎是服务器的单点联系。添加另一个网络接口不会添加另一个 NIC,如 ifconfig -a 所示。由于主网络接口不能是静态 IP,因此大多数配置都需要辅助网络接口。例如,要将应用程序连接到数据库服务器,请使用分配给第二个网络接口的静态 IP。我理解正确吗?

  2. 公有 IP 显示在 AWS 控制台中,并提供一种通过 SSH 连接到实例的方法,前提是您配置了 SG。公共 IP 还提供了一种访问 Internet 以进行系统更新的方法。这似乎与NAT 的 AWS 文档相矛盾。如果公共 IP 已经提供互联网访问,为什么需要 NAT(实例或网关)?这是参考文档引用的系统更新。

您可以使用 NAT 设备使私有子网中的实例能够连接到 Internet(例如,用于软件更新)或其他 AWS 服务,但阻止 Internet 与实例。 NAT 设备将来自私有子网中实例的流量转发到 Internet 或其他 AWS 服务,然后将响应发送回实例。

  1. 是否总是为每个实例分配公共 IP 和私有 IP?我还没有完成创建 [新] AMI 的过程来验证是否可以选择不使用公共 IP。如果实例没有公共 IP,AWS 控制台 Connect 按钮是否仍允许您连接到它以管理服务器?什么情况下实例没有公网IP?您如何连接到该实例来管理它?

我已阅读 NAT Gateway 文档并了解其中的大部分内容。我无法理解声明 NAT 网关或 Internet 网关对于启用 Internet 访问是必需的部分,而这似乎是默认启用的。我错过了什么?

【问题讨论】:

标签: amazon-web-services amazon-ec2


【解决方案1】:

我认为您的困惑源于您的第三个问题。公共 IP 并不总是分配给实例。公共 IP 是您可以在公共 VPC 子网中启用或禁用的选项,而在私有 VPC 子网中,公共 IP 根本不是一个选项。对于没有公共 IP 的 EC2 实例,需要 NAT 网关(或 NAT 实例)才能访问 VPC 之外的任何内容。

您可能希望将数据库服务器之类的东西放在私有子网中,这样您的 VPC 之外的任何东西都无法访问它。但是,您可能希望数据库服务器能够访问 Internet 以下载补丁或其他东西,或者您可能希望它访问 AWS API 以便将备份复制到 S3 或其他东西,在这种情况下,您需要一个 NAT 网关来为服务器提供对 VPC 外部资源的访问权限。

【讨论】:

  • 这正是我所缺少的。我看到自动分配公共 IP 位于启动实例的第 3 步。再次查看文档,测试 Internet 连接部分对其进行了澄清。具有公有 IP 的实例位于公有子网中,而没有公有 IP 的实例位于私有子网中。公共/私有 IP 只能在启动实例时分配。我读过的教程似乎并没有说明这一点。谢谢@Mark-B!
  • 另外,关于你的第一个问题,我认为你把事情复杂化了。您绝对不需要为大多数配置添加第二个网络接口。我不确定您分配给第二个网络接口的“静态 IP”是什么,但这不是必需的。在 VPC 中,私有 IP 是静态的。要连接到 VPC 内的其他资源,您应该始终使用私有 IP,并且应该使用安全组 ID 而不是 IP 地址来打开安全组到其他 VPC 资源。
  • RE:“私有 IP 是您可以在公共 VPC 子网中启用或禁用的选项”此选项位于何处? VPC创建后可以更改吗?通过 VPC 向导,我知道我有一个没有私有子网的公共 VPC。
  • 抱歉,打错了。它应该是“公共IP是一种选择”。我已经更正了答案中的错字。私有 IP 不是一个选项,所有 VPC 资源都必须有一个私有 IP。
  • RE 我的第二个问题,我没有建立默认情况下所有新实例都与 VPC 关联的连接。在阅读 Instance IP Addressing 文档时,我选择了“对于在 EC2-Classic 中启动的实例,我们会在实例停止或终止时释放私有 IPv4 地址。如果您重新启动停止的实例,它会收到一个新的私有 IPv4 地址。”这意味着我需要提供另一个不会在重新启动后更改的 IP。但是,这并不适用,因为我现在知道我正在使用 VPC,并且使用 VPC 的实例在该实例被销毁之前保持相同的私有 IP。
猜你喜欢
  • 2020-09-16
  • 1970-01-01
  • 2016-12-06
  • 2018-12-29
  • 2021-07-10
  • 2020-11-20
  • 1970-01-01
  • 2021-10-04
  • 2012-01-12
相关资源
最近更新 更多