advanced
VPC / сеть
Проектируйте приватные сети: subnets, route tables, security groups, NAT, load balancers, DNS и границы peering.
VPC — ваше private network в облаке: subnets, route tables, security groups или firewall rules, NAT gateways, load balancers и DNS. Для Node.js API обычно кладут app servers в private subnets, открывают HTTPS через load balancer в public subnets и ограничивают доступ к БД только app tier.
Internet → ALB (public subnet) → ECS tasks (private)
↓
RDS (private, SG locked)
| Компонент | Роль | |-----------|------| | Public subnet | Load balancer, bastion (если есть) | | Private subnet | App containers, workers | | Security group | Stateful allow/deny per ENI | | NAT gateway | Исходящий internet из private subnets |
Peering и VPN связывают VPC с офисом или другими облаками. DNS (Route 53, Cloud DNS) мапит имена на load balancers. Проектируйте с минимумом открытых портов — без SSH с `0.0.0.0/0` в production.
На интервью: public vs private subnets, стоимость и необходимость NAT, security groups vs NACLs, internal service discovery и misconfigured SG («локально работает, в облаке нет»).
Типовые ошибки: БД с public IP; flat `0.0.0.0/0` ingress на app ports; забытый return path через NAT; hard-coded private IP вместо service DNS.
Компромисс — изоляция сети и defense in depth против стоимости NAT/LB и операционной сложности для маленьких команд.
Чеклист:
- Data stores только в private subnets.
- Ingress — LB и известные CIDR.
- Service DNS, не хрупкие IP.
- Документируйте egress для npm, API и webhooks.