Projektowanie architektury VPC w AWS dla maksymalnej wydajności. Private networking cloud, best practices i optymalizacja sieci dla enterprise.
Wprowadzenie: Dlaczego architektura sieciowa decyduje o sukcesie projektu w AWS
Podczas jednej z migracji enterprise, z którą pracowałem, zespół deweloperski zmagał się z opóźnieniami rzędu 200-300 ms w komunikacji między usługami. Po trzech tygodniach profile'owania kodu i optymalizacji zapytań do baz danych, okazało się, że problem leżał w prostym błędzie projektowym: dwie instancje EC2 w różnych Availability Zones komunikowały się przez publiczny internet zamiast przez wewnętrzną sieć AWS. Koszt: dodatkowe 40% na rachunkach za ruch sieciowy i frustracja zespołu operacyjnego.
To nie jest odosobniony przypadek. Według raportu AWS Well-Architected Framework, nieprawidłowo zaprojektowana sieć VPC to przyczyna co trzeciego problemu z wydajnością w środowiskach enterprise. W Ciro Cloud widzimy to codziennie: firmy, które zaczęły od prostego "testowego" VPC z adresem 10.0.0.0/16, teraz próbują rozbudować tę architekturę o środowiska produkcyjne, środowiska izolowane dla compliance, i integracje z centrami danych on-premises — natrafiając na limity i konflikty adresacji.
W tym artykule przedstawiam sprawdzoną metodologię projektowania architektury sieciowej AWS, która skaluje się od startupów po korporacje z setkami usług i wieloma kontami AWS.
Podstawy architektury VPC: Struktura i komponenty
Amazon Virtual Private Cloud (VPC) to fundament cloud networking w AWS. To logicznie odizolowana sekcja chmury AWS, gdzie definiujesz własną przestrzeń adresową IP, subnety, tabele tras, i mechanizmy bezpieczeństwa.
Komponenty rdzeniowe VPC
Każda architektura VPC składa się z kilku kluczowych elementów:
- CIDR Block — zakres adresów IP przypisany do VPC (np. 10.0.0.0/8, 172.16.0.0/12, lub 192.168.0.0/16)
- Subnety — logiczne segmenty VPC, zazwyczaj mapowane na Availability Zones
- Internet Gateway (IGW) — punkt dostępu do publicznego internetu
- NAT Gateway/Instance — mechanizm umożliwiający instancjom w subnetach prywatnych dostęp do internetu
- VPC Router — wewnętrzny komponent zarządzający routingiem między subnetami i do/z IGW
- Route Tables — definiują trasy dla ruchu sieciowego
- Security Groups — stanowe firewalle na poziomie instancji
- Network ACLs (NACLs) — stateless firewalle na poziomie subnety
Typy subnetyów: Publiczne vs. Prywatne
Subnety publiczne to te, w których instancje mają bezpośrednią trasę do Internet Gateway. Tak wygląda typowy routing:
Destination: 0.0.0.0/0 → Target: igw-xxxxx (Internet Gateway)
Subnety prywatne nie mają trasy do IGW. Instancje w tych subnietach mogą komunikować się ze światem zewnętrznym tylko przez NAT Gateway lub NAT Instance.
Planowanie przestrzeni adresowej: Unikanie pułapek
Projektowanie CIDR to pierwsza strategiczna decyzja, która determinuje możliwości skalowania. Widziałem wiele organizacji, które wybrały zbyt małą przestrzeń adresową i teraz muszą przebudowywać całą architekturę.
Rekomendowane zakresy prywatne (RFC 1918)
| Zakres | Notacja CIDR | Liczba adresów | Zastosowanie |
|---|---|---|---|
| Duży | 10.0.0.0/8 | 16,777,216 | Enterprise z wieloma kontami |
| Średni | 172.16.0.0/12 | 1,048,576 | Średnie organizacje |
| Mały | 192.168.0.0/16 | 65,536 | Małe wdrożenia, izolowane środowiska |
Reguła "leave room to grow"
Zasada, której trzymam się w każdym projekcie: nigdy nie wybieraj mniejszej przestrzeni niż /16 dla głównego VPC. Jeśli planujesz architekturę wielokontową z AWS Organizations, rozważ /8 z predefiniowanymi blokami per konto:
- 10.0.0.0/8 (cała organizacja)
- 10.0.0.0/16 (konto produkcyjne)
- 10.1.0.0/16 (konto staging)
- 10.2.0.0/16 (konto deweloperskie)
- 10.3.0.0/16 (konto security/shared services)
- 10.100.0.0/16 (zakres na integracje on-premises VPN)
Unikanie konfliktów z sieciami on-premises
Przy projektowaniu private networking cloud z połączeniami hybrydowymi (Direct Connect lub VPN), absolutnie krytyczne jest mapowanie przestrzeni adresowej VPC przeciwko istniejącym sieciom firmowym. Typowy scenariusz:
- Corporate LAN: 192.168.0.0/16
- Data Center on-premises: 10.0.0.0/8
- AWS VPC: 172.16.0.0/12
Taka segmentacja eliminuje ryzyko nakładania się tras (overlapping routes), które uniemożliwiają prawidłowe działanie VPN lub Direct Connect.
Architektura subnetyów: Projektowanie dla wysokiej dostępności
Każdy subnet w VPC jest przypisany do jednej Availability Zone. To fundamentalne ograniczenie AWS — subnet nie może "rozciągać" się na wiele AZ. Projektując architekturę high-availability, musisz tworzyć zestawy subnetyów dla każdej strefy.
Trójwarstwowy model klasyczny
Sprawdzony wzorzec dla większości aplikacji:
Warstwa Web (Public Subnets):
- AZ us-east-1a: 10.0.1.0/24
- AZ us-east-1b: 10.0.2.0/24
- Zawiera: Load Balancery (ALB/NLB), Bastion Hosts, NAT Gateways
Warstwa Application (Private Subnets):
- AZ us-east-1a: 10.0.11.0/24
- AZ us-east-1b: 10.0.12.0/24
- Zawiera: Serwery aplikacji, kontenery ECS/EKS, funkcje Lambda w VPC
Warstwa Data (Private Subnets):
- AZ us-east-1a: 10.0.21.0/24
- AZ us-east-1b: 10.0.22.0/24
- Zawiera: RDS, ElastiCache, DocumentDB, wewnętrzne bazy danych
Alternatywne modele: Nadmiarowość vs. izolacja
Model "all private" — eliminuje subnety publiczne całkowicie, używając:- VPC Interface Endpoints (privatelink) dla dostępu do usług AWS
- AWS Client VPN lub AWS Site-to-Site VPN dla dostępu administracyjnego- Application Load Balancer w trybie wewnętrznym
Ten model jest preferowany w środowiskach z rygorystycznymi wymaganiami bezpieczeństwa (PCI-DSS, HIPAA) i rekomenduję go jako domyślny wybór dla nowych projektów.
NAT Gateway vs NAT Instance: Kiedy co wybrać?
To jedna z najczęstszych decyzji projektowych i źródło wielu nieporozumień.
NAT Gateway — Managed Service
Zalety:
- Automatyczna redundancja w ramach AZ (SLA 99.9%)
- Brak zarządzania infrastrukturą, patchowanie, monitoring
- Skalowalność do 45 Gbps przepustowości
- Integracja z AWS Shield Standard (DDoS protection)
Ograniczenia:
- Koszt: $0.045 per GB przetworzonych danych + $0.045 per godzinę (~$32/mo za sam gateway)
- Działa tylko w jednej AZ (dla high-availability wymaga NAT Gateway w każdej AZ)
- Brak obsługi protokołów innych niż TCP, UDP, ICMP
- Statyczny adres IP (ale można użyć Elastic IP)
Wydajność sieci AWS z NAT Gateway:- Przepustowość: do 100 Gbps dla dużych instancji (wymaga cluster placement group)- Opóźnienie: ~1-2 ms dodatkowe w porównaniu do bezpośredniego połączenia
NAT Instance — DIY Approach
Zalety:
- Pełna kontrola (mozna zainstalować dodatkowe oprogramowanie, np. firewall, proxy)
- Obsługa protokołów niestandardowych
- Potencjalnie niższy koszt przy dużym ruchu wychodzącym (opłata za GB zamiast per-gateway)
- Możliwość użycia w wielu AZ jednocześnie (hub NAT)
Wady:
- Wymaga zarządzania wysoką dostępnością (Auto Scaling, health checks)
- Limit przepustowości zależy od typu instancji (maksymalnie ~100 Gbps z c5n.18xlarge)
- Odpowiedzialność za patchowanie i bezpieczeństwo instancji
Moja rekomendacja
Dla 95% przypadków: NAT Gateway. Oszczędność czasu operacyjnego i przewidywalny koszt przy normalnym ruchu. NAT Instance wybieraj tylko wtedy, gdy:
- Potrzebujesz zaawansowanego filtrowania ruchu na warstwie 7
- Masz specyficzne wymagania compliance, które wymagają pełnej kontroli nad urządzeniem NAT
- Twoje obciążenie generuje ogromne ilości ruchu wychodzącego (>10 TB/miesiąc), gdzie koszt za GB staje się znaczący
VPC Endpoints: Prywatny dostęp do usług AWS
VPC Endpoints to kluczowy element architektury sieci VPC w kontekście private networking cloud. Umożliwiają komunikację między usługami AWS (S3, DynamoDB, SQS, SNS, Secrets Manager, Systems Manager) a instancjami w VPC bez opuszczania sieci AWS.
Gateway Endpoints (S3, DynamoDB)
Bezpłatne punkty końcowe, które dodajesz do route table. Cały ruch do S3/DynamoDB z twoich subnetyów automatycznie przechodzi przez wewnętrzną sieć AWS.
Route table entry:
Destination: pl-63a5400a (S3 prefix list) → Target: vpce-xxxxx
Impact na wydajność: Eliminacja ruchu przez NAT Gateway (oszczędność kosztów) + redukcja opóźnień o 5-15 ms w typowych scenariuszach.
Interface Endpoints (Privatelink)
Płatne punkty końcowe (~$0.01 per hour + opłaty za transfer danych) z prywatnym adresem IP z twojej sieci VPC. Obsługują dziesiątki usług AWS i usługi partnerskie.
Rekomendacja: Dla każdej usługi AWS używanej z instancji w prywatnych subnietach, deploy Interface Endpoint. Typical savings: $50-200/miesiąc na eliminacji ruchu przez NAT Gateway dla Secrets Manager, Systems Manager Session Manager, i ECR.
Transit Gateway: Architektura wielokontowa i hybrydowa
Gdy organizacja rośnie i pojawia się potrzeba połączenia wielu VPC (własnych lub w ramach AWS Organizations) oraz sieci on-premises, Transit Gateway (TGW) staje się centralnym punktem routingu.
Kiedy Transit Gateway jest niezbędny?
| Scenariusz | Rekomendacja |
|---|---|
| <5 VPC, proste połączenia | VPC Peering (niższy koszt) |
| 5-20 VPC, scentralizowany routing | Transit Gateway |
| >20 VPC, hub-and-spoke z izolacją | Transit Gateway + AWS RAM sharing |
| Hybrydowa architektura (DC + cloud) | Transit Gateway + Direct Connect/VPN |
Transit Gateway Attachment Types
- VPC — bezpośrednie połączenie z VPC
- VPN — Site-to-Site VPN do on-premises
- Direct Connect Gateway — integracja z AWS Direct Connect
- Peering — połączenia TGW-to-TGW (między regionami)
Koszty Transit Gateway
- $0.02 per AZ per hour (~$14.40/miesiąc per AZ)
- $0.02 per GB danych przetworzonych (między VPC)
- $0.05 per GB danych (przez VPN lub Direct Connect)
Praktyczny tip: Przy połączeniach między VPC w tym samym regionie, Transit Gateway jest często droższy niż VPC Peering (bezpłatny za ruch międzyregionowy, ale peerings nie skalują się dobrze powyżej ~10 połączeń).
Security Groups i NACLs: Bezpieczeństwo warstwowe
Security Groups (Stateful)
Działają na poziomie instancji ENI. Pamiętają stan połączeń — odpowiedź na dozwolony ruch przychodzący jest automatycznie dozwolona.
Best practices:
- Stosuj zasadę least privilege: dozwól tylko wymagany ruch
- Używajnamed security groups zamiast adresów IP (np. "sg-web-servers", "sg-database-servers")
- Unikaj reguł z source 0.0.0.0/0 dla SSH/RDP w produkcji
- Security Groups są stateful — odpowiedzi nie musisz jawnie definiować
Network ACLs (Stateless)
Działają na poziomie subnetyu. Każda reguła musi być jawnie zdefiniowana, włącznie z odpowiedziami.
Kiedy używać NACLs:
- Blokowanie całego ruchu z określonych zakresów IP (edge-level filtering)
- Wymuszanie ephemeral ports (1024-65535) dla ruchu wychodzącego
- Dodatkowa warstwa izolacji między subnetyami
Tip: Nie nadużywaj NACLs. Dla większości aplikacji, Security Groups + WAF (Web Application Firewall) wystarczą. Zbyt restrykcyjne NACLs to częsta przyczyna "mystery" problemów z łącznością.
Optymalizacja wydajności sieci AWS: Advanced techniques
Elastic Network Interfaces (ENI) i przepustowość
Przepustowość sieciowa instancji EC2 zależy od typu instancji:
| Typ instancji | Przepustowość | ENIs | IPs per ENI |
|---|---|---|---|
| t3.medium | Do 2.125 Gbps | 3 | 6 |
| c5.large | Do 10 Gbps | 3 | 10 |
| c5n.18xlarge | 100 Gbps | 15 | 50 |
| c6in.48xlarge | 400 Gbps | 15 | 50 |
Network I/O Credit: Dla instancji burst'owych (t3, t3a, t4g), przepustowość jest ograniczona do baseline'u po wyczerpaniu creditów. W środowisku produkcyjnym z wymaganiami wydajnościowymi, zawsze wybieraj instancje z gwarantowaną przepustowością (m5, c5, c6i i nowsze).
Placement Groups: Klastry, Partycje, Rozproszenie
Cluster Placement Group:
- Maksymalizuje przepustowość między instancjami (do 400 Gbps dla c6in.48xlarge)
- Użyj dla HPC, ML training, Redis clusters
- Wszystkie instancje w jednej AZ
Partition Placement Group:
- Izoluje instancje na poziomie racków
- Użyj dla HDFS, Kafka, Spark (odporność na awarię całego racku)
- Spread max 7 partitions per AZ
Spread Placement Group:
- Maksymalna izolacja (1 instancja per rack)
- Użyj dla critical control plane services
- Limit 7 instancji per AZ
Wydajność storage a networking
Często pomijany aspekt: przy projektowaniu architektury obsługującej intensywny I/O (bazy danych, data lakes), musisz balansować:
- Instance store — najwyższa przepustowość, ale efemeralna (dane tracone przy zatrzymaniu)
- EBS io2 Block Express — 64 TB max, 1,000 MB/s per TB, <1 ms latency
- EFS — file storage przez sieć, max ~3 GB/s aggregate throughput
- FSx for NetApp ONTAP — enterprise file storage z cachingiem
Monitoring i diagnostyka sieci VPC
Essential CloudWatch Metrics
Skonfiguruj monitoring następujących metryk:
- VPC Flow Logs — loguj cały ruch sieciowy do S3 lub CloudWatch Logs
- NAT Gateway metrics: ActiveConnections, PacketsInToDestination, PacketsOutFromSource
- Transit Gateway metrics: BytesIn, BytesOut, PacketDropCount
- VPN metrics: TunnelDataIn, TunnelDataOut, TunnelState
Tools diagnostyczne
- VPC Reachability Analyzer — automatycznie analizuje ścieżkę sieciową między dwoma endpointami
- AWS Network Manager — centralny widok całej globalnej sieci (Transit Gateway, Direct Connect, VPN)
- traceroute/mtr z instancji — klasyczne narzędzia diagnostyczne
- tcpdump/Wireshark — deep packet analysis (tylko w non-production)
Podsumowanie: Checklist projektowy
Przy projektowaniu architektury sieciowej AWS, przejdź przez te punkty:
Planowanie CIDR:
- Wybrałeś /16 lub większą przestrzeń?
- Zweryfikowałeś brak konfliktów z on-premises?
- Masz rezerwę na przyszły wzrost?
Struktura subnetyów:
- Co najmniej 2 AZ dla HA?
- Jasny podział public/private?
- Odpowiedni routing per warstwa?
Security:
- Security Groups z least privilege?
- VPC Endpoints dla usług AWS?
- Flow Logs włączone?
Wydajność:
- Właściwe typy instancji dla wymagań sieciowych?
- Placement Groups dla klastrów?
- Monitoring skonfigurowany?
Koszty:
- Kalkulacja NAT Gateway vs NAT Instance?
- VPC Endpoints zamiast NAT dla usług AWS?
- Transit Gateway vs VPC Peering analysis?
Dobrze zaprojektowana architektura sieciowa to fundament wydajnej, bezpiecznej i skalowalnej infrastruktury w AWS. Inwestycja czasu w fazę planowania zwraca się wielokrotnie w unikniętych problemach operacyjnych i optymalizacji kosztów. W Ciro Cloud pomagamy firmom projektować i implementować takie architektury — od analizy istniejących środowisk po pełne wdrożenie i transfer wiedzy do zespołów wewnętrznych.
Weekly cloud insights — free
Practical guides on cloud costs, security and strategy. No spam, ever.
Comments