0Pricing
DevOps Bootcamp · Lekcja

Konfigurowanie VPC i sieci

Udostępnij za pomocą Terraform usługę AWS Virtual Private Cloud, podsieci i grupy zabezpieczeń, tworząc bezpieczne, odizolowane podstawy sieciowe infrastruktury.

Konfigurowanie VPC i sieci to bezpłatna lekcja DevOps Bootcamp na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej DevOps Bootcamp, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs DevOps Bootcamp zawiera 4 lekcji w sumie.

Po co niestandardowa VPC?

Każde konto AWS zawiera domyślną VPC, ale infrastruktura produkcyjna zasługuje na sieć zaprojektowaną samodzielnie. VPC (Virtual Private Cloud) to odizolowana część chmury AWS, w której można kontrolować zakresy adresów IP, podsieci, routing i zapory sieciowe.

Za pomocą Terraform można opisać całą sieć jako kod, dzięki czemu da się ją odtwarzać w różnych regionach i na różnych kontach.

Deklarowanie zasobu VPC

Zasób aws_vpc jest podstawą sieci. Blok CIDR definiuje zakres prywatnych adresów IP. Blok /16 zapewnia około 65 000 adresów, które można podzielić na podsieci.

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

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

Podsieci publiczne a prywatne

Podsieci dzielą zakres VPC na mniejsze bloki przypisane do strefy dostępności.

  • Podsieć publiczna — ma trasę do bramy internetowej i służy do obsługi modułów równoważenia obciążenia oraz hostów bastionowych.
  • Podsieć prywatna — nie ma bezpośredniej trasy do Internetu i doskonale nadaje się dla baz danych oraz serwerów aplikacji.

Tworzenie podsieci publicznej

Każda podsieć potrzebuje własnego CIDR-u (fragmentu zakresu VPC) oraz strefy dostępności. Ustawienie map_public_ip_on_launch na true powoduje automatyczne przypisywanie publicznych adresów IP instancjom uruchamianym w tej podsieci.

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"
  }
}

Brama internetowa

Brama internetowa (IGW) umożliwia zasobom w publicznej podsieci dostęp do Internetu. Dołącza się ją bezpośrednio do VPC.

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

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

Tabele routingu

Podsieć staje się naprawdę publiczna dopiero wtedy, gdy tabela routingu kieruje ruch 0.0.0.0/0 do bramy internetowej. Tabele routingu mapują docelowe adresy CIDR na cele.

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
  }
}

Powiązywanie tras z podsieciami

Tabele routingu nie działają, dopóki nie zostaną powiązane z podsiecią. Zasób aws_route_table_association łączy je ze sobą.

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

Grupy zabezpieczeń jako zapory

Grupa zabezpieczeń to stanowa wirtualna zapora sieciowa otaczająca instancję. Stanowość oznacza, że ruch zwrotny dla dozwolonego żądania przychodzącego jest automatycznie dozwolony, więc zwykle trzeba określić tylko interesujące nas reguły ruchu przychodzącego.

Definiowanie grupy zabezpieczeń sieci Web

Poniżej zezwalamy na przychodzący ruch HTTP z dowolnego miejsca oraz na cały ruch wychodzący. W rzeczywistych wdrożeniach należy maksymalnie zawężać źródłowy 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"]
  }
}

Podłączanie instancji do sieci

Dołącz podsieć i grupę zabezpieczeń do instancji EC2 za pomocą subnet_id i vpc_security_group_ids. Dzięki temu serwer znajdzie się w niestandardowej sieci.

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]
}

Wyprowadzanie identyfikatorów sieci

Udostępnij kluczowe identyfikatory jako outputs, aby inne moduły lub członkowie zespołu mogli się do nich odwoływać po wykonaniu apply.

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

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

Szybki test

Sprawdź swoją wiedzę na temat routingu VPC.

Podsumowanie: fundamenty sieci

Zbudowano kompletną sieć w Terraform:

  • aws_vpc z zakresem CIDR.
  • Podsieci w wielu Availability Zones, publiczne lub prywatne.
  • Brama internetowa oraz tablice routingu zapewniające dostęp publiczny.
  • Grupy zabezpieczeń pełniące funkcję zapór stanowych.

Ta sieć jest podstawą, do której podłączane są wszystkie pozostałe zasoby AWS.

Często zadawane pytania

Czy lekcja „Konfigurowanie VPC i sieci” jest bezpłatna?

Tak — pełny tekst „Konfigurowanie VPC i sieci” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu DevOps Bootcamp, przejdź na CoddyKit PRO. Kurs DevOps Bootcamp zawiera 4 lekcji w sumie.

Co nauczysz się w „Konfigurowanie VPC i sieci”?

Udostępnij za pomocą Terraform usługę AWS Virtual Private Cloud, podsieci i grupy zabezpieczeń, tworząc bezpieczne, odizolowane podstawy sieciowe infrastruktury. Ćwiczysz DevOps Bootcamp z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć DevOps Bootcamp?

Nie wymagamy żadnego doświadczenia. DevOps Bootcamp w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.

Ile czasu zajmuje lekcja „Konfigurowanie VPC i sieci”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji DevOps Bootcamp?

Tak. Każda lekcja DevOps Bootcamp zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Konfiguracja dostawcy AWS
  2. Udostępnianie instancji EC2
  3. Zarządzanie zasobnikami S3 i IAM
  4. Konfigurowanie VPC i sieci
← Powrót do DevOps Bootcamp