【问题标题】:Best way to connect AWS EC2 instances for avoid failed connection on ip change连接 AWS EC2 实例以避免 IP 更改连接失败的最佳方法
【发布时间】:2020-05-02 10:25:37
【问题描述】:

我有四个 EC2 实例,其中三个运行 api 服务,另一个运行用户界面 (UI)。 UI 实例通过对另一个实例的 api 调用获取数据。现在一切正常,因为我使用为每个 EC2 服务提供的公共 IP 进行 api 调用。但是,mi cocern 是关于如果服务的公共 ip 更改(出于任何原因)会发生什么?然后 miy 应用程序失败,因为 UI 无法从服务中获取数据。经过一番研究,我发现这似乎是一个解决方案:使用 vpc 通过私有 IP 连接 EC2 实例(因为是静态的)并将 UI 实例关联到弹性 IP(这里没问题)。母猪,我有一些问题:

1) 我做了一个测试,将所有实例放在同一个 vpc(和子网)中,但是当我从一个到另一个 ping 时,ping 失败了。我的方法对吗?还是我错过了什么?

2) 我阅读了其他几个选项,但我不确定什么是最好的:也许我必须使用 Api 网关?还是 NAT 网关?

3) 以私有方式通信 EC2 实例的标准做法是什么?

【问题讨论】:

    标签: amazon-web-services amazon-ec2 gateway vpc elastic-ip


    【解决方案1】:

    1) 我做了一个测试,将所有实例放在同一个 vpc(和子网)中,但是当我从一个到另一个 ping 时,ping 失败了。我的方法对吗?还是我错过了什么?

    出于安全原因,AWS 使用安全组阻止 ICMP 流量。请从您尝试连接的 Ip 的安全组中启用 Ping 流量 (ICMP),最好允许 VPC 的整个 CIDR 块用于所有流量,这会让您的生活变得轻松很多。请确保您仅在测试环境中执行此操作。

    2) 我阅读了其他几个选项,但我不确定什么是最好的:也许我必须使用 Api 网关?还是 NAT 网关?

    另外,正如您提到的,您担心实例的公共 IP 会发生变化(如果您的实例因任何原因停止/启动),但您为什么不对所有实例使用弹性 IP,这可能是解决方案之一,但使用这种方法,您的所有实例都将暴露在互联网上,因此使用私有 IP 是最佳选择。

    3) 以私有方式通信 EC2 实例的标准做法是什么?

    这取决于使用情况,如果您的实例在同一个 vpc 中,则无需额外配置,您只需确保安全组、网络访问控制列表和防火墙配置正确。 如果您的实例位于不同的 VPC 中,则可以使用 VPC 对等/中转网关。

    【讨论】:

      【解决方案2】:

      1.) 您需要更新具有 ICMP 流量权限的安全组。 转到您的 VPC -> 选择安全组 -> 选择相关安全组 -> 为所有具有实例子网 CIDR 的流量添加入站/出站规则。

      2.) 只要您的所有流量都在内部,内部网络是更好的方式。

      谢谢

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-03-09
        • 2017-06-21
        • 2021-12-18
        • 2012-01-23
        • 2018-01-03
        • 2016-08-24
        • 1970-01-01
        相关资源
        最近更新 更多