0Pricing
DevOps Bootcamp · Урок

Настройка VPC и сети

Создайте с помощью Terraform AWS Virtual Private Cloud, подсети и группы безопасности, чтобы обеспечить инфраструктуре безопасную изолированную сетевую основу.

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

Зачем нужна пользовательская VPC

Каждый аккаунт AWS поставляется с VPC по умолчанию, но для рабочей инфраструктуры лучше использовать сеть, спроектированную самостоятельно. VPC (Virtual Private Cloud, виртуальное частное облако) — это изолированный раздел облака AWS, в котором Вы управляете диапазонами IP, подсетями, маршрутизацией и межсетевыми экранами.

С помощью Terraform Вы описываете всю сеть как код, поэтому её можно воспроизводимо создавать в разных регионах и аккаунтах.

Объявление ресурса VPC

Ресурс aws_vpc является корнем Вашей сети. Блок CIDR определяет диапазон частных IP-адресов. Блок /16 предоставляет примерно 65 000 адресов, которые можно разделить на подсети.

resource "aws_vpc" "main" {
  cidr_block           = "10.0.0.0/16"
  enable_dns_support   = true
  enable_dns_hostnames = true

  tags = {
    Name = "main-vpc"
  }
}

Общедоступные и частные подсети

Подсети разделяют диапазон VPC на меньшие блоки, связанные с зоной доступности.

  • Общедоступная подсеть — имеет маршрут к интернет-шлюзу и используется для балансировщиков нагрузки и узлов-бастионов.
  • Частная подсеть — не имеет прямого маршрута в интернет и подходит для баз данных и серверов приложений.

Создание общедоступной подсети

Каждой подсети нужны собственные CIDR (часть диапазона VPC) и зона доступности. Если установить map_public_ip_on_launch в значение true, экземплярам, запускаемым здесь, автоматически назначаются общедоступные IP-адреса.

resource "aws_subnet" "public" {
  vpc_id                  = aws_vpc.main.id
  cidr_block              = "10.0.1.0/24"
  availability_zone       = "us-east-1a"
  map_public_ip_on_launch = true

  tags = {
    Name = "public-subnet"
  }
}

Интернет-шлюз

Интернет-шлюз (IGW) позволяет ресурсам в общедоступной подсети выходить в интернет. Вы подключаете его непосредственно к VPC.

resource "aws_internet_gateway" "gw" {
  vpc_id = aws_vpc.main.id

  tags = {
    Name = "main-igw"
  }
}

Таблицы маршрутов

Подсеть становится действительно общедоступной только после того, как таблица маршрутов направит трафик 0.0.0.0/0 к интернет-шлюзу. Таблицы маршрутов сопоставляют целевые CIDR с целями.

resource "aws_route_table" "public" {
  vpc_id = aws_vpc.main.id

  route {
    cidr_block = "0.0.0.0/0"
    gateway_id = aws_internet_gateway.gw.id
  }
}

Связывание маршрутов с подсетями

Таблицы маршрутов ничего не делают, пока не связаны с подсетью. Ресурс aws_route_table_association связывает их.

resource "aws_route_table_association" "public" {
  subnet_id      = aws_subnet.public.id
  route_table_id = aws_route_table.public.id
}

Группы безопасности как межсетевые экраны

Группа безопасности — это межсетевой экран с отслеживанием состояния вокруг экземпляра. Это означает, что ответный трафик на разрешённый входящий запрос разрешается автоматически, поэтому обычно достаточно указать только нужные входящие правила.

Определение группы безопасности веб-сервера

Ниже мы разрешаем входящий HTTP-трафик откуда угодно и весь исходящий трафик. В реальных развёртываниях максимально сужайте исходный CIDR.

resource "aws_security_group" "web" {
  name   = "web-sg"
  vpc_id = aws_vpc.main.id

  ingress {
    from_port   = 80
    to_port     = 80
    protocol    = "tcp"
    cidr_blocks = ["0.0.0.0/0"]
  }

  egress {
    from_port   = 0
    to_port     = 0
    protocol    = "-1"
    cidr_blocks = ["0.0.0.0/0"]
  }
}

Подключение экземпляра к сети

Подключите подсеть и группу безопасности к экземпляру EC2 с помощью subnet_id и vpc_security_group_ids. Это поместит сервер в Вашу пользовательскую сеть.

resource "aws_instance" "app" {
  ami                    = "ami-0abcd1234"
  instance_type          = "t3.micro"
  subnet_id              = aws_subnet.public.id
  vpc_security_group_ids = [aws_security_group.web.id]
}

Вывод идентификаторов сети

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

output "vpc_id" {
  value = aws_vpc.main.id
}

output "public_subnet_id" {
  value = aws_subnet.public.id
}

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

Проверьте, насколько хорошо Вы понимаете маршрутизацию VPC.

Итоги: основа Вашей сети

Вы создали полноценную сеть в Terraform:

  • aws_vpc с диапазоном CIDR.
  • Подсети в разных зонах доступности — публичные или приватные.
  • Шлюз Интернета и таблицы маршрутов для публичного доступа.
  • Группы безопасности как брандмауэры с отслеживанием состояния.

Эта сеть — основа, к которой подключается любой другой ресурс AWS.

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

Урок «Настройка VPC и сети» бесплатный?

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

Чему я научусь в уроке «Настройка VPC и сети»?

Создайте с помощью Terraform AWS Virtual Private Cloud, подсети и группы безопасности, чтобы обеспечить инфраструктуре безопасную изолированную сетевую основу. Ты практикуешь DevOps Bootcamp с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать DevOps Bootcamp?

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

Сколько времени занимает урок «Настройка VPC и сети»?

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

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

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

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

  1. Настройка поставщика AWS
  2. Подготовка экземпляров EC2
  3. Управление корзинами S3 и IAM
  4. Настройка VPC и сети
← Назад к DevOps Bootcamp