Короткий ответ
VPC — логически изолированный сегмент облачной сети с собственным диапазоном IP-адресов, подсетями и правилами маршрутизации, который провайдер выделяет аккаунту/проекту; он нужен, чтобы контролировать, какие ресурсы видны друг другу и интернету, и изолировать нагрузки разных сред и команд.
Как это работает подробнее
VPC определяет диапазон адресов (CIDR), делится на подсети, для которых настраиваются таблицы маршрутизации и правила доступа к интернету; ресурсы внутри VPC по умолчанию не видны из других VPC, пока не настроено соединение (peering, VPN, transit gateway).
Пример кода
example.txt
VPC CIDR: 10.0.0.0/16
Subnet public-a: 10.0.1.0/24 (eu-west-1a)
Subnet private-a: 10.0.2.0/24 (eu-west-1a)Что использовать на практике
- Рекомендация. как минимум разделяют подсети на публичные (с выходом в интернет) и приватные (без прямого входящего доступа) и используют отдельные VPC или проекты для prod и non-prod сред.
- Проверка. инстанс в private-a не должен иметь публичный IP и не должен быть напрямую доступен из интернета, что можно проверить попыткой SSH снаружи.
Подводные камни
- Риск. размещать все ресурсы в одной плоской сети без сегментации
- Риск. использовать пересекающиеся диапазоны CIDR между VPC, что потом мешает их соединить через peering
- Риск. открывать VPC «по умолчанию» без ревизии правил.