我到处都找过了,并没有找到解决以下问题的好方法:
我想设置一个具有 2 个公共 IP 地址的 ec2 实例,其中 2 个 rails 服务器分别使用一个 IP 地址。它们将在各自的独立 IP 地址上接受传入请求,并且出站请求也将来自这些唯一地址。我将使用最新的 amazon linux AMI。
这可能吗?
谢谢!
答案1
您可以设置两个 ELB,每个应用程序一个,并且都与同一个实例相关联。
2 个 rails 服务器,每个服务器使用一个 IP 地址。它们将通过各自独立的 IP 地址接受传入请求,并且传出请求也将来自这些唯一地址。
让每个 rails 应用程序监听不同的端口(相同的 ip,不同的端口,只需要一个 ip)。一个 elb 指向一个端口,另一个 elb 指向另一个端口。在对客户端的响应中,源 IP 应该是每个应用程序/端口/rails 各自的 elb ip,并且每个 rails 应用程序都将具有相同的外部传入 elb dnsname/ip
答案2
关于配置弹性网络接口有很多信息这里,它似乎可以让您获得您想要的东西,或者让您了解什么是可能的(在 VPC 内的 EC2 实例上)。
摘抄:
弹性网络接口 (ENI)
弹性网络接口 (ENI) 是一种虚拟网络接口,您可以将其附加到 VPC 中的实例。ENI 可以包含以下属性:
- 主要私有 IP 地址
- 一个或多个辅助私有 IP 地址
- 每个私有 IP 地址一个弹性 IP 地址
- 一个公共 IP 地址,可以在启动实例时自动分配给 eth0 的网络接口,但前提是您必须为 eth0 创建网络接口,而不是使用现有的网络接口
- 一个或多个安全组
- MAC 地址
- 源/目标检查标志
- 说明
您可以创建网络接口,将其连接到实例,将其从实例中分离,并将其连接到另一个实例。网络接口的属性会随着网络接口连接到实例或从实例中分离并重新连接到另一个实例而变化。当您将网络接口从一个实例移动到另一个实例时,网络流量会重定向到新实例。
VPC 中的每个实例都有一个默认网络接口。默认网络接口在其 VPC 的 IP 地址范围内有一个主私有 IP 地址。您可以创建并附加其他网络接口。您可以使用的最大网络接口数量因实例类型而异。有关更多信息,请参阅每个 ENI 每种实例类型的私有 IP 地址。
当您想要执行以下操作时,将多个网络接口附加到实例很有用:
- 创建管理网络。
- 在您的 VPC 中使用网络和安全设备。
- 创建在不同子网上具有工作负载/角色的双宿主实例。
- 创建低预算、高可用性的解决方案。