GCP: Virtual Private Cloud (VPC)

Virtual Private Cloud (VPC) сеть — это виртуальная версия физической сети, которая работает внутри облака. С помощью сетей можно организовать общение между ресурсами в облаке или изолировать их друг от друга.

Общий вид проекта с одной сетью и двумя подсетями.

Составляющие компоненты VPC

  • Регионы
  • Зоны
  • Проекты
  • Сети
  • Подсети
  • IP адреса
  • Маршрутизаторы
  • Фаерволы

Региональные и зональные ресурсы

Я уже писал в предыдущей статье, что ресурсы в облаке разделяются по географии. К таким ресурсам относятся сети и их компоненты. Так к глобальным ресурсам относятся: VCP сети, firewall, маршрутизаторы. А к региональным статические внешние IP адреса и подсети.

Сети и подсети

Центральная единица в GCP — проект, объединяет набор ресурсов и сервисов в единую организационную единицу. Каждый проект содержат до 5 сетей, но это количество можно изменить, поменяв соответствующие квоты.

VPC сеть представляет из себя топологию с набором разных ресурсов, таких как подсети, роутеры, DNS и другие. Сами по себе сети не содержат никаких диапазонов IP адресов.

Сети разделяются на 3 типа: default, auto mode, custom.

Про диапазоны IP адресов можно почитать в Википедии.

Default сети
Они же auto mode сети, создаются автоматически при создании проекта. Каждая сеть содержит по одной подсети на каждый регион и имеет преднастроенный брандмауэр. Эти подсети по умолчанию содержат фиксированное количество адресов (/20) с возможностью расширения до /16.

Custom сети
Создаются вручную. По умолчанию не содержат подсетей, их нужно создавать самим, по мере необходимости. При этом у нас появляется полный контроль над IP адресами и диапазонами, главное чтобы они соответствовали RFC 1918 и не превышали размер /16. После создания подсети, количество адресов можно увеличить, но не уменьшить. Такие сети лучше всего подходят для продакшена.

Несколько VPC сетей могут взаимодействовать друг с другом с помощью внешних адресов или используя VPC Network Peering, который позволяет взаимодействовать с помощью приватных IP адресов, но работает только с custom сетями.

Двум виртуальным машинам нужно коммуницировать через внешний IP несмотря на то что они находятся в одном регионе.

Детальнее можно ознакомится в документации.

IP адреса

Каждая виртуальная машина в GCP может иметь два IP адреса: внутренний и внешний.

Внутренние IP используются для коммуникации между ресурсами в одной сети. Их устанавливает DHCP и они являются эфемерными. Кроме IP адреса мы можем использовать имя вииртуальной машины, GCP автоматически прописывает его в DNS.

Внешние IP адреса используются для коммуникации с интернетом или между сетями. По умолчанию внешние IP являются эфемерными, но мы можем зарезервировать статический адрес, правда это уже стоит денег.

Если же статический IP адрес не закреплён ни за каким ресурсов, его цена будет выше, чем адреса, которые используются.

Можно настроить диапазон IP адресов для конкретного экземпляра VM. Это удобно, когда на одной машине крутится несколько сервисов и мы хотим, чтобы каждый имел свой IP.

Firewall

Каждая сеть имеет фаервол, в нём можно настроить правила для входящего(ingress) и исходящего(egress) трафика. По умолчанию весь ingress трафик запрещён, а egress разрешён. Поэтому для входящего трафика мы можем создать только разрешающие правила.

Сами правила можно применять для конкретного IP адреса, множества или для тегов. Например, создать правило, которое разрешает HTTP трафик для экземпляров с тегом «allow-http».

Все эти правила работают не на одной железке или роутере, а применяется для каждого экземпляра и обрабатываются на их уровне.

Поделиться
Отправить
Запинить
Популярное