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.
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:
- Izolacja - możesz kontrolować, które zasoby mają dostęp do internetu, a które nie
- 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:
| Cecha | Public Subnet | Private Subnet |
|---|---|---|
| Dostęp do internetu | Tak (przez Internet Gateway) | Nie bezpośrednio |
| Publiczny adres IP | Instancje mogą mieć publiczne IP | Instancje mają tylko prywatne IP |
| Route Table | Ma trasę do Internet Gateway | Brak trasy do Internet Gateway |
| Typowe zasoby | Load Balancery, Bastion Host, NAT Gateway | Bazy danych, serwery aplikacji, backend |
| Bezpieczeństwo | Bardziej wyeksponowane | Lepiej 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
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ą
- 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)
Co sprawia, że subnet jest „publiczny" w AWS?
Ile adresów IP rezerwuje AWS w każdym subnecie VPC?
Jaka jest relacja między VPC a Internet Gateway?