VPC, czyli Twoja prywatna sieć w chmurze

Kiedy tworzysz zasoby w AWS (EC2, RDS, Lambda), muszą one gdzieś „żyć" w sensie sieciowym. Nie wiszą sobie w próżni. Każdy zasób potrzebuje adresu IP, musi wiedzieć, z kim może się komunikować, a kto nie powinien mieć do niego dostępu. Właśnie do tego służy VPC (Virtual Private Cloud).

VPC to Twoja prywatna, izolowana sieć wirtualna wewnątrz AWS. Możesz ją sobie wyobrazić jako własne biuro z serwerownią, tylko że zamiast fizycznych kabli i routerów masz ich wirtualne odpowiedniki. Ty decydujesz o adresacji IP, podziałach sieci, regułach firewall i połączeniach ze światem zewnętrznym.

💡 Dobra wiadomość
Każde konto AWS ma już utworzone Default VPC w każdym regionie. Dlatego możesz uruchomić EC2 bez ręcznego tworzenia VPC. Ale w produkcji zawsze tworzysz własne, customowe VPC z przemyślaną architekturą sieciową.

CIDR, czyli adresacja IP w VPC

Tworząc VPC, musisz podać zakres adresów IP w notacji CIDR (Classless Inter-Domain Routing). Brzmi groźnie, ale to po prostu sposób zapisu „od jakiego do jakiego adresu IP sięga Twoja sieć".

Przykład: 10.0.0.0/16 oznacza, że Twoje VPC ma do dyspozycji adresy od 10.0.0.0 do 10.0.255.255, czyli ponad 65 000 adresów IP. Liczba po ukośniku (/16) mówi, ile bitów jest „zamrożonych" jako prefiks sieci. Im mniejsza liczba, tym więcej adresów.

Adres IP v4 składa się z 32 bitów. Notacja CIDR mówi, ile z tych bitów to stały prefiks sieci:

  • /16 = 16 bitów sieci, 16 bitów na hosty = 2^16 = 65 536 adresów
  • /24 = 24 bity sieci, 8 bitów na hosty = 2^8 = 256 adresów
  • /28 = 28 bitów sieci, 4 bity na hosty = 2^4 = 16 adresów

AWS pozwala na VPC od /16 (największe) do /28 (najmniejsze). Najpopularniejszy wybór to /16, bo daje dużo przestrzeni na subnety.

Uwaga: AWS rezerwuje 5 adresów IP w każdym subnecie (cztery pierwsze i ostatni), więc subnet /24 ma efektywnie 251 dostępnych adresów, a nie 256.

Subnety, czyli podział VPC na strefy

VPC to cały budynek. Subnety to pokoje w tym budynku. Każdy subnet to fragment Twojego zakresu CIDR, który „żyje" w jednej konkretnej Availability Zone (AZ).

Dlaczego dzielimy VPC na subnety? Z dwóch powodów:

  1. Izolacja - możesz kontrolować, które zasoby mają dostęp do internetu, a które nie
  2. High Availability - rozmieszczając subnety w różnych AZ, chronisz się przed awarią jednego data center

Public Subnet vs Private Subnet

To jedno z najważniejszych pojęć w VPC. Różnica jest prosta, ale kluczowa:

⚖️ Public Subnet vs Private Subnet
CechaPublic SubnetPrivate Subnet
Dostęp do internetuTak (przez Internet Gateway)Nie bezpośrednio
Publiczny adres IPInstancje mogą mieć publiczne IPInstancje mają tylko prywatne IP
Route TableMa trasę do Internet GatewayBrak trasy do Internet Gateway
Typowe zasobyLoad Balancery, Bastion Host, NAT GatewayBazy danych, serwery aplikacji, backend
BezpieczeństwoBardziej wyeksponowaneLepiej chronione

Zapamiętaj: subnet jest „publiczny" nie dlatego, że tak go nazwiesz, ale dlatego, że jego Route Table zawiera trasę kierującą ruch 0.0.0.0/0 do Internet Gateway.

Internet Gateway (IGW)

Internet Gateway to „brama do internetu" dla Twojego VPC. Jest to zarządzany komponent AWS, który umożliwia komunikację między zasobami w VPC a publicznym internetem. Kluczowe cechy:

  • Jest horizontally scaled, redundant i highly available (AWS się tym zajmuje)
  • Jedno VPC = jeden Internet Gateway (relacja 1:1)
  • Sam Internet Gateway nie wystarczy. Subnet musi mieć trasę w Route Table wskazującą na IGW
  • Instancja musi mieć publiczny IP (lub Elastic IP), żeby ruch wrócił z internetu
⚠️ EXAM ALERT
Na egzaminie mogą pytać: „Co jest potrzebne, żeby instancja EC2 w VPC miała dostęp do internetu?" Odpowiedź to trzy elementy: (1) Internet Gateway podłączony do VPC, (2) Route Table subnetu z trasą 0.0.0.0/0 → IGW, (3) instancja z publicznym lub Elastic IP. Brak któregokolwiek = brak internetu!
🏢 Scenariusz: Typowa architektura VPC

Firma „TechStart" buduje aplikację webową w AWS. Architekt projektuje VPC 10.0.0.0/16 w regionie eu-central-1 z następującym podziałem:

  • Public Subnet AZ-a (10.0.1.0/24) - Application Load Balancer
  • Public Subnet AZ-b (10.0.2.0/24) - Application Load Balancer (redundancja)
  • Private Subnet AZ-a (10.0.10.0/24) - serwery aplikacji EC2
  • Private Subnet AZ-b (10.0.20.0/24) - serwery aplikacji EC2 (redundancja)
  • Private Subnet AZ-a (10.0.100.0/24) - baza danych RDS (primary)
  • Private Subnet AZ-b (10.0.200.0/24) - baza danych RDS (standby)

Load Balancer w public subnecie przyjmuje ruch z internetu i przekazuje go do serwerów w private subnecie. Baza danych jest jeszcze głębiej, w osobnym prywatnym subnecie. To klasyczny wzorzec 3-tier architecture.

Default VPC vs Custom VPC

AWS automatycznie tworzy Default VPC w każdym regionie. Jest wygodne do nauki i testów, ale ma swoje ograniczenia:

  • Default VPC ma CIDR 172.31.0.0/16
  • Wszystkie subnety w Default VPC są publiczne (mają trasę do IGW)
  • Instancje uruchomione w Default VPC automatycznie dostają publiczne IP
  • W produkcji zawsze tworzysz Custom VPC z przemyślaną architekturą
🚨 Ważne
Jeśli przypadkowo usuniesz Default VPC, możesz je odtworzyć przez konsolę AWS lub CLI. Ale lepiej go nie ruszaj i twórz osobne VPC do swoich projektów.
✅ Elementy VPC, które musisz znać
VPC = izolowana sieć wirtualna z określonym zakresem CIDR
Subnety dzielą VPC na segmenty w konkretnych AZ
Public Subnet = subnet z trasą do Internet Gateway
Private Subnet = subnet bez trasy do Internet Gateway
Internet Gateway = brama VPC do publicznego internetu (1:1 z VPC)
CIDR określa pulę adresów IP dostępnych w VPC/subnecie
AWS rezerwuje 5 adresów IP w każdym subnecie
🧠 Podsumowanie
  • VPC to Twoja prywatna sieć w AWS z pełną kontrolą nad adresacją IP i routingiem
  • CIDR notation definiuje zakres adresów IP (np. 10.0.0.0/16 = ~65K adresów)
  • Subnety dzielą VPC na mniejsze segmenty, każdy w jednej AZ
  • Public Subnet ma trasę do Internet Gateway, Private Subnet nie ma
  • Internet Gateway jest wymagany do komunikacji VPC z internetem
  • Default VPC istnieje w każdym regionie, ale w produkcji twórz Custom VPC
  • Typowa architektura to 3-tier: public (LB) → private (app) → private (DB)
🧪 Sprawdź się

Co sprawia, że subnet jest „publiczny" w AWS?

A Ma w nazwie słowo „public"
B Instancje w nim mają publiczne adresy IP
C Jego Route Table zawiera trasę do Internet Gateway
Sam publiczny IP nie wystarczy. Subnet jest publiczny, bo jego Route Table ma trasę 0.0.0.0/0 kierującą ruch do Internet Gateway. Bez tej trasy ruch nie ma jak dotrzeć do internetu, nawet jeśli instancja ma publiczny IP.

Ile adresów IP rezerwuje AWS w każdym subnecie VPC?

A 2
B 5
C 10
AWS rezerwuje 5 adresów w każdym subnecie: adres sieci, router VPC (.1), serwer DNS (.2), zarezerwowany na przyszłość (.3) i adres broadcast. Dlatego subnet /24 ma 251 dostępnych adresów, a nie 256.

Jaka jest relacja między VPC a Internet Gateway?

A 1 VPC = maksymalnie 1 Internet Gateway
B 1 VPC może mieć wiele Internet Gateway
C 1 Internet Gateway obsługuje wiele VPC
Relacja VPC do Internet Gateway to 1:1. Jedno VPC może mieć maksymalnie jeden Internet Gateway, a jeden Internet Gateway jest przypisany do jednego VPC. Jest to zarządzany komponent AWS, więc nie musisz się martwić o jego skalowalność.