将多个 EC2 实例分配给一个弹性 IP
Assign Multiple EC2 instances to one Elastic IP
我有 2 个 EC2 实例,它们向外部服务器发送请求。该服务器需要一个静态 IP,因此我使用弹性 IP 将其中一个 EC2 连接到它。
问题是我在该服务器上只允许有一个与我的帐户相关联的静态 IP。有没有办法使用网络接口或 ELB 将 2 个 EC2 放在同一个 EIP 后面?我试图阅读它,但 AWS 文档有点让人不知所措。
最简单的方法是:
- 在 public 子网
中创建 NAT 网关
- 将您的 EC2 实例放在私有子网中
- 为私有子网配置路由以将 Internet 绑定的流量发送到 NAT 网关
这样一来,所有流量似乎都来自 NAT 网关,它可以有一个弹性 IP 地址。
另一种方法是使用其中一个实例(实例-A)作为 NAT 实例,它使用 iptables
中的伪装设置来转发流量.然后,配置第二个实例 (Instance-B) 以将 Internet 绑定的流量发送到 Instance-A。实例 A 将流量转发到外部服务器并将响应传回实例 B。
这是将 EC2 实例配置为 NAT 实例的普通脚本:
#!/bin/sh
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 0 > /proc/sys/net/ipv4/conf/eth0/send_redirects
/sbin/iptables -t nat -A POSTROUTING -o eth0 -s 0.0.0.0/0 -j MASQUERADE
/sbin/iptables-save > /etc/sysconfig/iptables
mkdir -p /etc/sysctl.d/
cat <<EOF > /etc/sysctl.d/nat.conf
net.ipv4.ip_forward = 1
net.ipv4.conf.eth0.send_redirects = 0
EOF
我有 2 个 EC2 实例,它们向外部服务器发送请求。该服务器需要一个静态 IP,因此我使用弹性 IP 将其中一个 EC2 连接到它。
问题是我在该服务器上只允许有一个与我的帐户相关联的静态 IP。有没有办法使用网络接口或 ELB 将 2 个 EC2 放在同一个 EIP 后面?我试图阅读它,但 AWS 文档有点让人不知所措。
最简单的方法是:
- 在 public 子网 中创建 NAT 网关
- 将您的 EC2 实例放在私有子网中
- 为私有子网配置路由以将 Internet 绑定的流量发送到 NAT 网关
这样一来,所有流量似乎都来自 NAT 网关,它可以有一个弹性 IP 地址。
另一种方法是使用其中一个实例(实例-A)作为 NAT 实例,它使用 iptables
中的伪装设置来转发流量.然后,配置第二个实例 (Instance-B) 以将 Internet 绑定的流量发送到 Instance-A。实例 A 将流量转发到外部服务器并将响应传回实例 B。
这是将 EC2 实例配置为 NAT 实例的普通脚本:
#!/bin/sh
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 0 > /proc/sys/net/ipv4/conf/eth0/send_redirects
/sbin/iptables -t nat -A POSTROUTING -o eth0 -s 0.0.0.0/0 -j MASQUERADE
/sbin/iptables-save > /etc/sysconfig/iptables
mkdir -p /etc/sysctl.d/
cat <<EOF > /etc/sysctl.d/nat.conf
net.ipv4.ip_forward = 1
net.ipv4.conf.eth0.send_redirects = 0
EOF