У меня есть VPC с несколькими экземплярами ec2. Каждый из них имеет общедоступный IP + может общаться друг с другом по локальной сети 10.0.0.0 + иметь доступ в Интернет через интернет-шлюз.
Мне нужно разместить только несколько из этих экземпляров за NAT-шлюзом с назначенным ему эластичным IP-адресом, чтобы при подключении к определенной внешней службе у них был один и тот же общедоступный IP-адрес.
Проблема в том, что я не могу найти способ разместить за этим шлюзом NAT только определенных участников VPC. Я могу отредактировать таблицу маршрутизации для VPC в целом и все.
Я не мог найти способ создать еще один VPC и включить в него только определенных членов первого VPC.
Итак, как лучше всего это сделать?
P.S. это шлюз NAT, а не экземпляр NAT.
Итак, я создал новую подсеть для VPC, создал новый сетевой интерфейс и подключил его к одному из экземпляров: экземпляр получил новый IP-адрес из этой подсети, и новый маршрут был создан автоматически:
# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default ip-10-0-1-1.ec2 0.0.0.0 UG 0 0 0 eth0
default ip-10-0-200-1.e 0.0.0.0 UG 10001 0 0 eth1
10.0.1.0 * 255.255.255.0 U 0 0 0 eth0
10.0.200.0 * 255.255.255.0 U 0 0 0 eth1
instance-data.e * 255.255.255.255 UH 0 0 0 eth0
Вам нужно будет создать вторую подсеть в вашем VPC. Затем вы развернете экземпляры EC2, которым требуется NAT, в этой подсети. Они получат частные IP-адреса из этой подсети. Затем создайте новую таблицу маршрутов и свяжите ее с новой подсетью. наконец, настройте новую таблицу маршрутов и добавьте маршрут по умолчанию 0.0.0.0/0, который использует ваш NAT-шлюз.
NAT-шлюз должен быть развернут в вашей существующей общедоступной подсети, чтобы он мог использовать преимущества Интернет-шлюза.
Надеюсь это поможет.
Майк.