AWS - отправка трафика для Интернета через шлюз NAT и для частного трафика в другой VPC

Я нахожусь в ситуации, когда мне нужно подключить общедоступный API, используя 1 IP (проблема с белым списком), через различные докеры, следовательно, используя шлюз NAT. В то же время Docker также необходимо подключиться к RDS (из другого VPC) и выполнить чтение / запись.

Как этого добиться? Возможно ли организовать общедоступный маршрут трафика через шлюз NAT, а частный трафик через пиринг VPC - к другому VPC?

Заранее спасибо.

1 ответ

Я потратил два дня на то, чтобы найти этот ответ, поэтому разместил его для людей с похожим вариантом использования.

Реализация:

  1. Создан "Новый VPC" для докеров, на котором будет размещаться дополнительный доход.
  2. Создал "Новый Интернет-шлюз" и подключил его к "Новому VPC"
  3. Создан "Nat Gateway" и связан эластичный IP-адрес, который внесен в белый список "External API".
  4. Создано "пиринговое соединение VPC", запрошенное "новым VPC" и принятое "VPC по умолчанию"
  5. Созданы 2 подсети в "Новом VPC", 1 для частной и 1 для общедоступной (на данный момент общедоступная, чтобы я мог подключиться для тестирования, для автоматических докеров будет достаточно частного)
  6. Для "Общедоступной подсети" изменен маршрут с точки 0.0.0.0/0 на "Новый интернет-шлюз" и 172.xx.0.0/16 для указания на "Пиринговое соединение VPC".
  7. Для "частной подсети" изменен маршрут с точки 0.0.0.0/0 на "шлюз NAT", чтобы весь трафик проходил через определенный IP.

Тестирование:

  • Я получил доступ к "Внешнему API" из экземпляра, созданного на "NewVPC"->"Частная подсеть",
  • Я netcat "Порт RDS - 3306", размещенный на "VPC по умолчанию"

Результат:

  • В журнале "Внешний API" отображается IP, связанный с "Nat Gateway".
  • "Порт RDS - 3306", размещенный в "VPC по умолчанию", преобразуется в экземпляр в "Новом VPC"
Другие вопросы по тегам