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.