AWS Solutions Architect · Lekcja

Architektura VPC i bloki CIDR

Zaprojektują VPC z odpowiednim zakresem CIDR i podzielą ją na publiczne oraz prywatne podsieci w różnych Strefach dostępności.

Lekcja 1 z 413 kroki

Architektura VPC i bloki CIDR to bezpłatna lekcja AWS Solutions Architect na CoddyKit. To lekcja 1 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 AWS Solutions Architect, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs AWS Solutions Architect zawiera 4 lekcji w sumie.

Czym jest VPC?

Amazon Virtual Private Cloud (VPC) to logicznie odizolowana sieć prywatna w Region AWS, którą można samodzielnie definiować i kontrolować. Każde konto AWS ma domyślny VPC (CIDR 172.31.0.0/16) w każdym Region, ale architektury produkcyjne zawsze korzystają z niestandardowych VPC. VPC obejmuje wszystkie Availability Zones w swoim Region i zapewnia pełną kontrolę nad adresacją IP, podsieciami, tabelami routingu, internet gateways i zabezpieczeniami. Zasoby wewnątrz VPC są odizolowane od innych VPC oraz od internetu, chyba że jawnie skonfigurują Państwo połączenie.

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

Bloki CIDR: zakresy adresów IP

Blok CIDR (Classless Inter-Domain Routing) definiuje zakres adresów IP VPC lub podsieci za pomocą formatu x.x.x.x/prefix. Długość prefiksu określa liczbę adresów IP w zakresie: /16 = 65 536 adresów, /24 = 256 adresów, /28 = 16 adresów (minimalny rozmiar podsieci w AWS). W przypadku VPC AWS dopuszcza bloki CIDR od /16 (największy) do /28 (najmniejszy). Należy wybrać blok CIDR VPC, który: (1) nie nakłada się na sieci lokalne (na potrzeby przyszłych połączeń VPN/Direct Connect), (2) jest wystarczająco duży dla planowanych podsieci oraz (3) korzysta z prywatnej przestrzeni adresowej 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

Podsieci: dzielenie VPC

Podsieć to segment zakresu adresów IP VPC znajdujący się w jednej Availability Zone. Podsieci dzielą się na publiczne (mają trasę do internet gateway) i prywatne (nie mają bezpośredniej trasy do internetu). Zalecana praktyka dla typowej architektury trójwarstwowej to utworzenie co najmniej trzech warstw podsieci — public (load balancers, bastion hosts), private-app (instancje EC2, zadania ECS) oraz private-data (RDS, ElastiCache) — i replikowanie każdej warstwy w co najmniej dwóch AZ na potrzeby wysokiej dostępności.

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

Projektowanie układu CIDR VPC w wielu AZ

Typowy projekt CIDR dla VPC z CIDR 10.0.0.0/16, obejmującego dwie AZ i trzy warstwy, może wyglądać następująco: 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. Taki układ pozostawia miejsce na dodanie podsieci AZ-c (10.0.3.0/24, 10.0.12.0/24, 10.0.22.0/24) bez konieczności ponownego planowania całego schematu CIDR. Projektując, zawsze należy uwzględniać możliwość rozwoju.

Zarezerwowane adresy IP w każdej podsieci

AWS rezerwuje pierwsze cztery i ostatni adres IP w każdej podsieci. W przypadku podsieci 10.0.1.0/24 są to: 10.0.1.0 (sieć), 10.0.1.1 (router VPC), 10.0.1.2 (DNS/DHCP), 10.0.1.3 (przyszłe zastosowanie) oraz 10.0.1.255 (broadcast). Podsieć /24 ma łącznie 256 adresów IP, z czego 5 jest zarezerwowanych, więc pozostaje 251 użytecznych. Podsieć /28 (minimalna) ma 16 adresów IP, z czego 5 jest zarezerwowanych, więc pozostaje 11 użytecznych. Ma to znaczenie podczas określania rozmiaru podsieci na podstawie liczby zasobów (instancji EC2, funkcji Lambda z VPC itd.), które planują Państwo wdrożyć.

Dodatkowe bloki CIDR VPC

Do istniejącej VPC można dodać maksymalnie cztery dodatkowe bloki CIDR bez jej ponownego tworzenia. Jest to przydatne, gdy podstawowy CIDR został wyczerpany (wszystkie podsieci są pełne) lub gdy trzeba dodać przestrzeń adresową z innego zakresu RFC 1918 na potrzeby konkretnego zastosowania, takiego jak sieć podów Kubernetes. Dodatkowe zakresy CIDR podlegają określonym ograniczeniom — na przykład nie można dodać nakładającego się zakresu CIDR, a niektórych publicznych zakresów spoza RFC 1918 nie można używać. Rozmiar CIDR VPC należy dokładnie zaplanować z wyprzedzeniem, aby zminimalizować potrzebę korzystania z dodatkowych zakresów 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

Peering VPC: łączenie VPC

Peering VPC ustanawia prywatne połączenie sieciowe między dwiema VPC, dzięki czemu ich zasoby mogą komunikować się za pomocą prywatnych adresów IP. Połączone za pomocą peeringu VPC mogą znajdować się na tym samym koncie, na różnych kontach, a nawet w różnych regionach (peering międzyregionowy). Wymagania: zakresy CIDR obu VPC nie mogą się nakładać. Ograniczenia: peering jest nietranzytywny — jeśli VPC-A ma peering z VPC-B, a VPC-B z VPC-C, VPC-A nie może komunikować się z VPC-C za pośrednictwem VPC-B. Aby zapewnić pełną łączność typu mesh między wieloma VPC, należy zamiast tego użyć AWS Transit Gateway.

AWS Transit Gateway

AWS Transit Gateway (TGW) działa jako centralny hub sieciowy — router w chmurze — który łączy wiele VPC, sieci VPN i połączeń Direct Connect. Zamiast tworzyć N*(N-1)/2 połączeń peeringu VPC dla pełnej siatki N VPC, dołączasz każdą VPC i każde połączenie do Transit Gateway, który kieruje między nimi ruch. TGW obsługuje tablice routingu pozwalające kontrolować, które dołączone zasoby mogą się ze sobą komunikować, co umożliwia segmentację sieci (np. odizolowanie produkcyjnych VPC od deweloperskich VPC w ramach tego samego TGW).

Włączanie DNS w VPC

Dwa ustawienia DNS kontrolują rozpoznawanie nazw w VPC. enableDnsSupport: gdy ma wartość true (domyślnie), VPC korzysta z dostarczanego przez AWS resolvera DNS pod adresem 169.254.169.253 lub drugim adresem IP zakresu CIDR VPC (np. 10.0.0.2 dla 10.0.0.0/16). enableDnsHostnames: gdy ma wartość true (musi być włączone dla niestandardowych VPC, a w domyślnej VPC jest domyślnie włączone), instancje EC2 w VPC otrzymują nazwy hostów DNS, takie jak ip-10-0-1-15.ec2.internal. Oba ustawienia muszą być włączone, aby prywatne hostowane strefy Route 53 działały w 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}'

Dzienniki przepływu VPC

Dzienniki przepływu VPC rejestrują metadane dotyczące ruchu sieciowego przepływającego przez VPC — źródłowy i docelowy adres IP, port, protokół, liczbę przesłanych bajtów oraz informację, czy ruch został zaakceptowany, czy odrzucony. Dzienniki przepływu można publikować w CloudWatch Logs (do wykonywania zapytań za pomocą Logs Insights) lub w S3 (do analizy za pomocą Athena). Są niezwykle cenne podczas analizy incydentów bezpieczeństwa (kto połączył się z czym), analizy ruchu (identyfikowanie przepływów o dużej przepustowości) i rozwiązywania problemów (dlaczego połączenie zostało odrzucone?). Dzienniki przepływu działają na poziomie VPC, podsieci lub pojedynczego 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

Planowanie łączności

Przed utworzeniem VPC należy zaplanować wszystkie przyszłe potrzeby związane z łącznością: łączność z infrastrukturą lokalną (VPN lub Direct Connect) — upewnij się, że CIDR VPC nie nakłada się na podsieci lokalne; łączność między VPC (peering lub Transit Gateway) — zaplanuj niepokrywające się zakresy CIDR we wszystkich VPC w organizacji; dostęp do usług AWS (punkty końcowe VPC dla S3, DynamoDB i SSM, aby uniknąć kierowania ruchu przez internet); oraz rozmiar podsieci — pozostaw zapas w każdej podsieci na zużycie adresów IP przez pody EKS, funkcje Lambda i interfejsy Elastic Network Interface.

Szybki test

Sprawdź swoją wiedzę na temat zagadnień AWS Solutions Architect (SAA-C03) omówionych w tej lekcji.

Podsumowanie lekcji

W tej lekcji poznano następujące zagadnienia: VPC to logicznie odizolowana sieć w regionie, zdefiniowana przez blok CIDR dzielony na publiczne i prywatne podsieci w różnych AZ, AWS rezerwuje 5 adresów IP w każdej podsieci, dlatego przy określaniu jej rozmiaru należy zawsze uwzględnić to pomniejszenie oraz peering VPC i Transit Gateway zapewniają prywatne połączenia między VPC, ale zakresy CIDR nie mogą się nakładać. W następnej części omówimy Internet Gateways i tablice routingu.

Bezpłatny start

Ucz się AWS Solutions Architect dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
30
Lekcje
120

Często zadawane pytania

Czy lekcja „Architektura VPC i bloki CIDR” jest bezpłatna?

Tak — pełny tekst „Architektura VPC i bloki CIDR” 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 AWS Solutions Architect, przejdź na CoddyKit PRO. Kurs AWS Solutions Architect zawiera 4 lekcji w sumie.

Co nauczysz się w „Architektura VPC i bloki CIDR”?

Zaprojektują VPC z odpowiednim zakresem CIDR i podzielą ją na publiczne oraz prywatne podsieci w różnych Strefach dostępności. Ćwiczysz AWS Solutions Architect 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ąć AWS Solutions Architect?

Nie wymagamy żadnego doświadczenia. AWS Solutions Architect 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 1 z 4.

Ile czasu zajmuje lekcja „Architektura VPC i bloki CIDR”?

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 AWS Solutions Architect?

Tak. Każda lekcja AWS Solutions Architect 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. Architektura VPC i bloki CIDR
  2. Brama internetowa i tabele routingu
  3. Brama NAT i prywatne podsieci
  4. Listy ACL sieci a grupy zabezpieczeń
← Powrót do AWS Solutions Architect