Сеть в AWS — это не «настройки где-то в консоли», а то, что определяет, кто до кого может достучаться. Неверная сеть либо дырявит безопасность (база смотрит в интернет), либо ломает связность (сервис не видит базу). Fundamentals дали обзор VPC; здесь — модель целиком, на уровне, который спрашивают и который нужен на практике.
VPC и подсети
VPC — изолированная виртуальная сеть с заданным диапазоном адресов (CIDR). Внутри VPC адреса делят на подсети, и каждая подсеть живёт в одной зоне доступности. Ключевое деление — на public и private:
- public-подсеть имеет маршрут в интернет (через Internet Gateway) — туда ставят то, что должно быть доступно снаружи (балансировщик);
- private-подсеть прямого выхода в интернет не имеет — туда ставят сервисы и базы.
Типовая схема: балансировщик в public-подсети, приложение и база — в private, и так в нескольких зонах доступности ради отказоустойчивости.
Маршрутизация
Куда уходит трафик подсети, решает таблица маршрутов (route table). Подсеть public — потому что её таблица содержит маршрут 0.0.0.0/0 на Internet Gateway. Private-подсеть такого маршрута не имеет.
Но private-сервису часто нужен исходящий доступ (скачать обновление, дёрнуть внешний API) — без входящего. Для этого — NAT Gateway: он стоит в public-подсети, и таблица маршрутов private-подсети указывает исходящий трафик на него. Так сервис ходит наружу, а снаружи до него не достучаться.
Security groups против NACL
Два уровня фильтрации трафика, и их постоянно путают:
- Security group — фаервол на уровне ресурса (инстанс, под, эндпоинт). Stateful: разрешил входящее — ответ уходит автоматически. Только разрешающие правила.
- Network ACL — фаервол на уровне подсети. Stateless: правила нужны и на вход, и на выход отдельно. Есть и запрещающие правила.
На практике основной инструмент — security groups (точечно, на ресурс), а NACL берут для грубой защиты на уровне подсети. Хороший приём — ссылаться security group на другую security group: «приложению можно к базе» выражается как «security group базы принимает трафик от security group приложения», без привязки к адресам.
Связь сетей
Сервисы редко живут в одной VPC. Способы связать:
- VPC peering — прямое соединение двух VPC (не транзитивное: A-B и B-C не дают A-C).
- Transit Gateway — хаб, связывающий много VPC (и локальную сеть) без россыпи peering-связей.
- PrivateLink / VPC endpoints — доступ к сервису (AWS-сервису или чужому) по приватной сети, без выхода в интернет. Так private-подсеть ходит, например, в S3 или Secrets Manager, не открывая интернет-маршрут.
VPC endpoints — частый правильный ответ на «как private-сервису достучаться до managed-сервиса AWS безопасно».
Где это в UCP
Сеть — фундамент изоляции: public/private-подсети разделяют то, что снаружи, и то, что внутри; маршруты и NAT дают контролируемый выход; security groups задают «кто до кого»; endpoints держат трафик к сервисам приватным. Это первый слой безопасности, поверх которого ложится IAM (кто что может) — вместе они дают модель «least privilege в сети и в доступе». Для backend-разработчика понимание этой модели — условие того, что код можно безопасно задеплоить, а не только написать.