0Pricing
AWS Solutions Architect · Урок

Архитектура VPC и блоки CIDR

Спроектируйте VPC с подходящим диапазоном CIDR и разделите её на общедоступные и частные подсети в разных зонах доступности.

«Архитектура VPC и блоки CIDR» — бесплатный урок AWS Solutions Architect на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения AWS Solutions Architect, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс AWS Solutions Architect содержит 4 уроков всего.

Что такое VPC

Amazon Virtual Private Cloud (VPC) — это логически изолированная частная сеть в Region AWS, которую Вы определяете и контролируете. Каждая учётная запись AWS содержит VPC по умолчанию с CIDR 172.31.0.0/16 в каждом Region, однако в архитектурах для рабочей среды всегда используются пользовательские VPCs. VPC охватывает все Availability Zones в своём Region и предоставляет полный контроль над IP-адресацией, подсетями, таблицами маршрутизации, интернет-шлюзами и безопасностью. Ресурсы внутри VPC изолированы от других VPCs и интернета, если Вы явно не настроите подключение.

# Create a custom VPC
aws ec2 create-vpc \
  --cidr-block 10.0.0.0/16 \
  --tag-specifications 'ResourceType=vpc,Tags=[{Key=Name,Value=production-vpc}]'

Блоки CIDR: диапазоны IP-адресов

Блок CIDR (Classless Inter-Domain Routing) определяет диапазон IP-адресов VPC или подсети в формате x.x.x.x/prefix. Длина префикса определяет количество IP-адресов в диапазоне: /16 = 65 536 адресов, /24 = 256 адресов, /28 = 16 адресов (минимальный размер подсети в AWS). Для VPC AWS разрешает блоки CIDR от /16 (самый большой) до /28 (самый маленький). Выбирайте CIDR VPC так, чтобы он: (1) не пересекался с локальными сетями (для будущего VPN/Direct Connect), (2) был достаточно большим для запланированных подсетей и (3) использовал частное адресное пространство RFC 1918 (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16).

# Common VPC CIDR choices:
# 10.0.0.0/16   -> 65,534 usable IPs (largest common choice)
# 10.0.0.0/20   -> 4,094 usable IPs
# 10.0.0.0/24   -> 254 usable IPs (too small for most VPCs)

# AWS reserves 5 IPs in each subnet:
# x.x.x.0   Network address
# x.x.x.1   VPC router
# x.x.x.2   DNS server
# x.x.x.3   Future use
# x.x.x.255  Broadcast

Подсети: разделение VPC

Подсеть — это сегмент диапазона IP-адресов VPC, расположенный в одной Availability Zone. Подсети делятся на общедоступные (имеют маршрут к интернет-шлюзу) и частные (не имеют прямого маршрута в интернет). Рекомендуемый подход для типичной трёхуровневой архитектуры: создать как минимум три уровня подсетей — public (балансировщики нагрузки, бастионные хосты), private-app (экземпляры EC2, задачи ECS) и private-data (RDS, ElastiCache) — и разместить каждый уровень как минимум в двух AZ для обеспечения высокой доступности.

# Create a public subnet in AZ-a
aws ec2 create-subnet \
  --vpc-id vpc-12345678 \
  --cidr-block 10.0.1.0/24 \
  --availability-zone us-east-1a \
  --tag-specifications 'ResourceType=subnet,Tags=[{Key=Name,Value=public-1a}]'

# Create a private subnet in AZ-a
aws ec2 create-subnet \
  --vpc-id vpc-12345678 \
  --cidr-block 10.0.10.0/24 \
  --availability-zone us-east-1a \
  --tag-specifications 'ResourceType=subnet,Tags=[{Key=Name,Value=private-app-1a}]'

Проектирование схемы CIDR VPC с несколькими AZ

Распространённая схема CIDR для VPC с CIDR 10.0.0.0/16, двумя AZ и тремя уровнями: Public AZ-a: 10.0.1.0/24; Public AZ-b: 10.0.2.0/24; Private-App AZ-a: 10.0.10.0/24; Private-App AZ-b: 10.0.11.0/24; Private-Data AZ-a: 10.0.20.0/24; Private-Data AZ-b: 10.0.21.0/24. Такая схема оставляет возможность добавить подсети AZ-c (10.0.3.0/24, 10.0.12.0/24, 10.0.22.0/24) без полного пересмотра схемы CIDR. Всегда проектируйте сеть с учётом будущего роста.

Зарезервированные IP-адреса в каждой подсети

AWS резервирует первые четыре и последний IP-адрес в каждой подсети. Для подсети 10.0.1.0/24: 10.0.1.0 (сеть), 10.0.1.1 (маршрутизатор VPC), 10.0.1.2 (DNS/DHCP), 10.0.1.3 (для будущего использования) и 10.0.1.255 (Broadcast). Подсеть /24 содержит 256 IP-адресов, из которых 5 зарезервированы, то есть доступен 251 адрес. Подсеть /28 (минимальная) содержит 16 IP-адресов, из которых доступны 11. Это важно учитывать при выборе размера подсетей с расчётом на количество ресурсов (экземпляров EC2, функций Lambda с VPC и т. д.), которые Вы планируете развернуть.

Дополнительные блоки CIDR VPC

В существующий VPC можно добавить до четырёх вторичных блоков CIDR, не создавая его заново. Это полезно, когда основной CIDR исчерпан (все subnets заполнены) или когда для конкретного сценария, например сетевого взаимодействия подов Kubernetes, требуется добавить адресное пространство из другого диапазона RFC 1918. На вторичные CIDR распространяются определённые ограничения: например, нельзя добавить перекрывающийся CIDR, а некоторые общедоступные диапазоны, не относящиеся к RFC 1918, использовать нельзя. Тщательно планируйте размер CIDR VPC заранее, чтобы свести потребность во вторичных CIDR к минимуму.

# Add a secondary CIDR to an existing VPC
aws ec2 associate-vpc-cidr-block \
  --vpc-id vpc-12345678 \
  --cidr-block 10.1.0.0/16

Пиринговое соединение VPC: подключение VPC

Пиринговое соединение VPC устанавливает частное сетевое соединение между двумя VPC, чтобы их ресурсы могли обмениваться данными, используя частные IP-адреса. Соединённые пирингом VPC могут находиться в одном аккаунте, в разных аккаунтах или даже в разных регионах (межрегиональный пиринг). Требование: CIDR двух VPC не должны перекрываться. Ограничение: пиринг не является транзитивным — если VPC-A соединён пирингом с VPC-B, а VPC-B — с VPC-C, VPC-A не сможет обмениваться данными с VPC-C через VPC-B. Для полносвязного соединения множества VPC используйте вместо этого AWS Transit Gateway.

AWS Transit Gateway

AWS Transit Gateway (TGW) выступает в роли центрального сетевого узла — облачного маршрутизатора, который соединяет несколько VPC, VPN и подключений Direct Connect. Вместо создания N*(N-1)/2 пиринговых соединений VPC для полносвязной сети из N VPC вы подключаете каждый VPC и каждое соединение к Transit Gateway, который маршрутизирует трафик между ними. TGW поддерживает таблицы маршрутизации, позволяющие управлять тем, какие подключения могут обмениваться данными друг с другом, и тем самым сегментировать сеть (например, изолировать рабочие VPC от VPC разработки в одном TGW).

Включение DNS в VPC

Разрешение имён в VPC контролируют две настройки DNS. enableDnsSupport: если задано значение true (по умолчанию), VPC использует предоставляемый AWS преобразователь DNS по адресу 169.254.169.253 или второй IP-адрес CIDR VPC (например, 10.0.0.2 для 10.0.0.0/16). enableDnsHostnames: если задано значение true (для пользовательских VPC параметр необходимо включить, а для VPC по умолчанию он включён), экземпляры EC2 в VPC получают имена хостов DNS, например ip-10-0-1-15.ec2.internal. Для работы частных размещённых зон Route 53 внутри VPC оба параметра должны быть включены.

# Enable DNS support and DNS hostnames in a VPC
aws ec2 modify-vpc-attribute \
  --vpc-id vpc-12345678 \
  --enable-dns-support '{"Value": true}'
aws ec2 modify-vpc-attribute \
  --vpc-id vpc-12345678 \
  --enable-dns-hostnames '{"Value": true}'

Журналы потоков VPC

Журналы потоков VPC записывают метаданные о сетевом трафике, проходящем через VPC: исходный и целевой IP-адреса, порт, протокол, объём переданных данных, а также сведения о том, был ли трафик разрешён или отклонён. Журналы потоков можно публиковать в журналы CloudWatch (для запросов с помощью Logs Insights) или в S3 (для анализа с помощью Athena). Они незаменимы при расследовании инцидентов безопасности (кто и к чему подключался), анализе трафика (для выявления потоков с высокой пропускной способностью) и устранении неполадок (почему соединение было отклонено?). Журналы потоков работают на уровне VPC, subnet или отдельного ENI.

# Enable flow logs for a VPC, deliver to CloudWatch
aws ec2 create-flow-logs \
  --resource-type VPC \
  --resource-ids vpc-12345678 \
  --traffic-type ALL \
  --log-destination-type cloud-watch-logs \
  --log-group-name /aws/vpc/flowlogs \
  --deliver-logs-permission-arn arn:aws:iam::123456789012:role/FlowLogsRole

Планирование подключений

Перед созданием VPC спланируйте все будущие потребности в подключениях: подключение к локальной сети (VPN или Direct Connect) — убедитесь, что CIDR VPC не перекрывается с subnets локальной сети; подключение между VPC (пиринг или Transit Gateway) — запланируйте неперекрывающиеся CIDR для всех VPC вашей организации; доступ к сервисам AWS (конечные точки VPC для S3, DynamoDB и SSM, чтобы трафик не проходил через интернет); и размер subnets — оставьте запас в каждой subnet для потребления IP-адресов подами EKS, функциями Lambda и эластичными сетевыми интерфейсами.

Быстрая проверка

Проверьте, насколько хорошо вы усвоили концепции AWS Solutions Architect (SAA-C03) из этого урока.

Итоги урока

В этом уроке вы узнали, что VPC — это логически изолированная сеть в регионе, определяемая блоком CIDR, который разделяется на общедоступные и частные subnets в разных зонах доступности; AWS резервирует 5 IP-адресов в каждой subnet, поэтому при расчёте размера subnets всегда учитывайте это уменьшение; а пиринг VPC и Transit Gateway обеспечивают частное соединение VPC, но диапазоны CIDR не должны перекрываться. Далее мы рассмотрим Internet Gateways и таблицы маршрутизации.

Часто задаваемые вопросы

Урок «Архитектура VPC и блоки CIDR» бесплатный?

Да — полный текст урока «Архитектура VPC и блоки CIDR» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс AWS Solutions Architect, подпишись на CoddyKit PRO. Курс AWS Solutions Architect содержит 4 уроков всего.

Чему я научусь в уроке «Архитектура VPC и блоки CIDR»?

Спроектируйте VPC с подходящим диапазоном CIDR и разделите её на общедоступные и частные подсети в разных зонах доступности. Ты практикуешь AWS Solutions Architect с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать AWS Solutions Architect?

Предыдущий опыт не требуется. AWS Solutions Architect на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Архитектура VPC и блоки CIDR»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке AWS Solutions Architect?

Да. Каждый урок AWS Solutions Architect включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Архитектура VPC и блоки CIDR
  2. Интернет-шлюз и таблицы маршрутизации
  3. Шлюз NAT и частные подсети
  4. Сетевые ACL и группы безопасности
← Назад к AWS Solutions Architect