Назначьте несколько экземпляров EC2 одному эластичному IP-адресу

У меня есть 2 экземпляра EC2, и они отправляют запросы на внешний сервер. Для этого сервера требуется статический IP-адрес, поэтому я использовал Elastic IP для подключения к нему одного из EC2.

Проблема в том, что мне разрешено иметь только один статический IP-адрес, связанный с моей учетной записью на этом сервере. Есть ли способ разместить 2 EC2 за одним и тем же EIP, используя сетевой интерфейс или ELB? Я пытался читать об этом, но документация AWS немного перегружена.


person Shakedk    schedule 18.02.2019    source источник


Ответы (1)


Самый простой способ:

  • Создайте шлюз NAT в общедоступной подсети.
  • Поместите свои инстансы EC2 в частную подсеть
  • Настройте маршрутизацию для частной подсети для отправки интернет-трафика на шлюз NAT.

Таким образом, весь трафик будет исходить от шлюза NAT, который может иметь один эластичный IP-адрес.

Альтернативным методом может быть использование одного из экземпляров (экземпляр-A) в качестве экземпляра NAT, который использует настройку маскарада в iptables для пересылки трафика. Затем настройте второй экземпляр (экземпляр-B) для отправки интернет-трафика в экземпляр-A. Экземпляр-А будет перенаправлять трафик на внешний сервер и передавать ответ обратно на Экземпляр-Б.

Это обычный сценарий для настройки экземпляра 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
person John Rotenstein    schedule 18.02.2019