NAT Gateway #
NAT Gateway — это такой аккуратный посредник между приватной сетью и внешним интернетом. У вас, скажем, есть пачка серверов в закрытой подсети, у них нет белых IP и они снаружи не видны. Но им нужно ходить за обновлениями, в чужие API, отправлять логи во внешний сервис. Вот в этот момент на сцену выходит NAT Gateway.
Его задача проста: он делает подмену адресов (Network Address Translation). Внутренние IP этих серверов с точки зрения интернета превращаются в один внешний адрес NAT-шлюза. Для внешних ресурсов всё выглядит так, будто с ними общается одно устройство. Когда приходят ответы, NAT знает, какому внутреннему серверу какой пакет вернуть — он ведёт соответствие исходящих соединений.
Зачем это вообще всё нужно #
- Безопасность. Ваши инстансы из приватной сети не торчат наружу. Они сами могут инициировать соединения, но прямые входящие запросы из интернета к ним не пройдут.
- Экономия адресов. Не нужно каждому серверу выдавать свой публичный IP. Один внешний адрес NAT Gateway закрывает потребности целой подсети.
- Рабочие задачи. Обновления пакетов, запросы к внешним API, отправка логов и метрик во внешние системы — всё это становится возможным без раскрытия внутренней инфраструктуры.
В облаках вроде AWS, Google Cloud или Azure NAT Gateway обычно привязывают к публичной подсети, дают ему выделенный внешний IP и прописывают маршруты так, чтобы весь выходящий в интернет трафик из приватных подсетей шёл через него. В результате внутренние инстансы могут «ходить в интернет», при этом сами по себе оставаясь недоступными напрямую.
Есть важный момент: NAT Gateway работает именно на исходящих соединениях — изнутри наружу. Если вам нужно, чтобы к серверу могли подключаться извне, придётся использовать другие механизмы — например, публичный Load Balancer, проброс портов и так далее.
В итоге NAT Gateway — удобный способ дать серверам доступ к внешнему миру, не переоткрывая всю инфраструктуру и не раздавая публичные адреса направо и налево.
