Ответ
Оба шлюза работают с VPC, но решают разные задачи, связанные с доступом в интернет.
Internet Gateway (IGW) — это горизонтально масштабируемый и отказоустойчивый компонент AWS, который обеспечивает двустороннюю связь между ресурсами в вашей VPC и публичным интернетом.
- Назначение: Сделать подсеть или ресурс (например, EC2-инстанс) публично доступным.
- Как работает: Прикрепляется к VPC. Чтобы ресурс в публичной подсети получил выход в интернет, ему нужно:
- Иметь публичный IP-адрес (или Elastic IP).
- Иметь маршрут в таблице маршрутизации (Route Table) своей подсети, направляющий трафик
0.0.0.0/0наigw-....
- Трафик: И входящий, и исходящий.
NAT Gateway — это управляемый сервис AWS, который позволяет ресурсам в приватных подсетях инициировать исходящие соединения с интернетом (например, для скачивания обновлений), но блокирует любые входящие соединения из интернета.
- Назначение: Обеспечить безопасный исходящий доступ для ресурсов, которые не должны быть доступны извне (например, инстансы БД, бэкенд-сервисы).
- Как работает: Размещается в публичной подсете (чтобы сам имел выход через IGW). Для приватной подсети в ее таблице маршрутизации создается правило, направляющее трафик
0.0.0.0/0наnat-.... - Трафик: Только исходящий, инициированный изнутри VPC.
Практический пример архитектуры:
Публичная подсета: Приватная подсета:
[ EC2 (веб-сервер) ] [ EC2 (база данных) ]
| |
v v
[ Internet Gateway ] <------ [ NAT Gateway ]
^ |
|_____________________________ |
(Только ответы на запросы из приватной подсети)
Таблица маршрутизации для приватной подсети:
Destination Target
10.0.0.0/16 local # Локальный трафик внутри VPC
0.0.0.0/0 nat-0abcd1234 # Весь остальной трафик -> NAT Gateway
Ключевое отличие: IGW — для публичного доступа (двусторонний), NAT Gateway — для безопасного исходящего доступа из приватных ресурсов (односторонний).