Projektowanie pod koszty
Chmura daje niesamowitą elastyczność, ale jeśli nie pilnujesz kosztów, rachunek może Cię zaskoczyć. Optymalizacja kosztów to nie "oszczędzanie na wszystkim". To wydawanie pieniędzy mądrze: płacenie za to, czego naprawdę potrzebujesz, w najkorzystniejszym modelu cenowym. W tej lekcji nauczysz się projektować architektury, które są zarówno wydajne, jak i ekonomiczne.
Right-Sizing: płać za to, czego potrzebujesz
Right-sizing to dopasowanie typu instancji do rzeczywistego obciążenia. To jeden z najprostszych sposobów na redukcję kosztów, a jednocześnie najczęściej ignorowany.
Typowy scenariusz: programista uruchamia instancję m5.xlarge (4 vCPU, 16 GB RAM), bo "kiedyś może będziemy potrzebować". W rzeczywistości aplikacja zużywa 10% CPU i 2 GB RAM. Przepłacasz 5x.
Jak robić right-sizing?
- Monitoruj wykorzystanie zasobów (CloudWatch: CPU, pamięć, sieć, dysk)
- Szukaj instancji z niskim wykorzystaniem (poniżej 40% CPU przez dłuższy czas)
- Zmniejsz typ instancji lub zmień family (np. z m5 na t3 dla workloadów z burstable traffic)
- Użyj AWS Compute Optimizer, który analizuje metryki i rekomenduje optymalny typ instancji
Modele cenowe EC2
AWS oferuje kilka modeli cenowych. Wybór właściwego modelu to największa dźwignia kosztowa.
On-Demand
Płacisz za godzinę (lub sekundę). Brak zobowiązań, pełna elastyczność. Najdroższy model, ale idealny dla:
- Krótkotrwałych, nieprzewidywalnych workloadów
- Developmentu i testowania
- Aplikacji, które dopiero uruchamiasz (nie znasz jeszcze wzorców ruchu)
Reserved Instances (RI)
Zobowiązujesz się na 1 lub 3 lata, w zamian dostajesz rabat do 72%. Trzy opcje płatności:
- All Upfront: płacisz całość z góry (największy rabat)
- Partial Upfront: część z góry, reszta miesięcznie
- No Upfront: płacisz miesięcznie (najmniejszy rabat, ale bez dużej inwestycji z góry)
Idealne dla stabilnych, przewidywalnych workloadów (bazy danych, serwery aplikacji działające 24/7).
Savings Plans
Nowsza i bardziej elastyczna alternatywa dla Reserved Instances. Zobowiązujesz się do określonej kwoty wydatków na godzinę (np. $10/h przez 1 lub 3 lata), w zamian dostajesz rabat do 72%.
Dwa typy:
- Compute Savings Plans: najbardziej elastyczne. Rabat dotyczy EC2, Lambda i Fargate. Możesz zmieniać typ instancji, region, OS
- EC2 Instance Savings Plans: większy rabat, ale przywiązany do konkretnej rodziny instancji w konkretnym regionie
Spot Instances
Kupujesz nieużywaną capacity AWS z rabatem do 90%! Ale jest haczyk: AWS może zabrać Twoją instancję z 2-minutowym ostrzeżeniem, gdy potrzebuje capacity.
Idealne dla:
- Batch processing (przetwarzanie danych)
- CI/CD pipelines (build, test)
- Big data analytics
- Workloady, które mogą tolerować przerwania
| Model | Rabat | Zobowiązanie | Najlepsze dla |
|---|---|---|---|
| On-Demand | 0% (cena bazowa) | Brak | Krótkoterminowe, nieprzewidywalne |
| Reserved Instances | Do 72% | 1 lub 3 lata | Stabilne, przewidywalne 24/7 |
| Savings Plans | Do 72% | 1 lub 3 lata ($$/h) | Elastyczne zobowiązanie, zmiana instancji OK |
| Spot Instances | Do 90% | Brak (ale mogą być zabrane) | Batch, CI/CD, analytics, fault-tolerant |
Firma ma trzy typy workloadów:
- Baza danych produkcyjna: działa 24/7, stabilne obciążenie. Wybór: Reserved Instance (All Upfront, 3 lata) = do 72% rabatu
- Serwery aplikacji: działają 24/7, ale firma planuje migrację do kontenerów za rok. Wybór: Compute Savings Plan (1 rok) = rabat + elastyczność zmiany na Fargate
- Pipeline przetwarzania danych: uruchamiany raz dziennie, może być przerwany i wznowiony. Wybór: Spot Instances = do 90% rabatu
Łącząc te trzy strategie, firma oszczędza 50-70% w porównaniu z płaceniem za wszystko On-Demand.
S3 Lifecycle Policies
Dane mają swój cykl życia. Świeże dane potrzebujesz szybko, ale po miesiącu zaglądasz do nich rzadko, a po roku prawie nigdy. S3 oferuje różne klasy storage o różnych kosztach:
- S3 Standard: najdroższy, ale najszybszy dostęp. Dla aktywnie używanych danych
- S3 Standard-IA: tańsze przechowywanie, ale opłata za dostęp. Dla danych rzadko odczytywanych
- S3 One Zone-IA: jak Standard-IA, ale w jednej AZ (tańsze, mniej durable)
- S3 Glacier Instant Retrieval: bardzo tanie przechowywanie, dostęp w milisekundach
- S3 Glacier Flexible Retrieval: jeszcze tańsze, dostęp w minutach do godzin
- S3 Glacier Deep Archive: najtańsze, dostęp w godzinach (12-48h). Dla archiwum
Lifecycle Policy automatycznie przesuwa obiekty między klasami na podstawie ich wieku:
Przykład: po 30 dniach przenieś z Standard do Standard-IA. Po 90 dniach do Glacier. Po 365 dniach do Glacier Deep Archive. Po 7 latach usuń.
Nie wiesz, jak często dane będą odczytywane? S3 Intelligent-Tiering automatycznie przenosi obiekty między warstwami na podstawie wzorców dostępu:
- Frequent Access (domyślna)
- Infrequent Access (po 30 dniach bez dostępu)
- Archive Instant Access (po 90 dniach)
- Archive Access (opcjonalnie, po 90+ dniach)
- Deep Archive Access (opcjonalnie, po 180+ dniach)
Koszt: niewielka opłata za monitoring i automatyzację, ale nie płacisz za retrieval (w przeciwieństwie do IA/Glacier). Idealny, gdy nie wiesz z góry, jakie będą wzorce dostępu do danych.
Koszty Data Transfer
To ukryty "zabójca" budżetu, o którym wielu zapomina. AWS ma specyficzny model kosztów transferu danych:
- Data IN (do AWS): darmowy! Upload danych do AWS nic nie kosztuje
- Data OUT (z AWS do internetu): płatny, cena maleje przy większych wolumenach
- Między regionami: płatny (w obie strony)
- Między AZ (w tym samym regionie): niewielka opłata
- W ramach tej samej AZ: darmowy (przy użyciu prywatnych IP)
Wzorce architektoniczne pod koszty
Kilka wzorców, które mogą znacząco obniżyć rachunki:
1. Serverless (Lambda + API Gateway + DynamoDB): płacisz tylko za faktyczne wywołania. Przy niskim i zmiennym ruchu serverless jest znacznie tańszy niż utrzymywanie EC2 24/7.
2. Mixed Instance Strategy z Auto Scaling: ASG może używać mieszanki instancji On-Demand i Spot. Na przykład: 2 instancje On-Demand jako baseline + do 8 Spot instances dla obsługi peak. Jeśli Spot zostanie zabrane, ASG automatycznie uruchomi On-Demand jako fallback.
3. Scheduled scaling: wyłączaj środowiska dev/test poza godzinami pracy. Jeśli Twój zespół pracuje 8-18, to 14 godzin na dobę serwery dev stoją bezczynnie. Scheduled scaling = oszczędność ~60%.
4. VPC Endpoints zamiast NAT Gateway: NAT Gateway kosztuje ~$0.045/GB za transfer danych. Jeśli Twoje EC2 w prywatnym subnecie komunikują się z S3 lub DynamoDB, VPC Endpoint (Gateway type) jest darmowy i szybszy.
Startup wydaje $5,000/miesiąc na AWS. Po audycie kosztów:
- Right-sizing: zmniejszenie instancji dev z m5.xlarge na t3.medium. Oszczędność: $800/mies.
- Savings Plans: Compute Savings Plan na produkcyjne serwery. Oszczędność: $1,200/mies.
- Spot Instances: pipeline CI/CD na Spot. Oszczędność: $400/mies.
- S3 Lifecycle: stare logi z Standard do Glacier. Oszczędność: $300/mies.
- Scheduled scaling: wyłączanie środowisk dev/staging na noc i weekendy. Oszczędność: $600/mies.
Suma oszczędności: $3,300/mies. (66% redukcja). Nowy rachunek: $1,700/mies.
Narzędzia AWS do zarządzania kosztami
- AWS Cost Explorer: wizualizacja i analiza kosztów, prognozy, rekomendacje RI/Savings Plans
- AWS Budgets: alerty gdy koszty przekroczą próg (np. email gdy przekroczysz $1,000/mies.)
- AWS Compute Optimizer: rekomendacje right-sizing dla EC2, EBS, Lambda
- AWS Cost Anomaly Detection: ML wykrywający nietypowe wzrosty kosztów
- AWS Pricing Calculator: szacowanie kosztów przed uruchomieniem infrastruktury
- Right-sizing to dopasowanie typu instancji do rzeczywistego obciążenia. AWS Compute Optimizer pomaga zidentyfikować oszczędności
- Reserved Instances i Savings Plans dają rabaty do 72% za zobowiązanie 1-3 lata. Savings Plans są bardziej elastyczne
- Spot Instances dają do 90% rabatu, ale mogą być przerwane. Idealne dla batch i CI/CD
- S3 Lifecycle Policies automatycznie przesuwają dane do tańszych klas storage z czasem
- Data transfer OUT z AWS jest płatny. CloudFront i VPC Endpoints pomagają zredukować koszty transferu
- Serverless (Lambda) i scheduled scaling mogą drastycznie obniżyć koszty przy zmiennym ruchu
- AWS Budgets, Cost Explorer i Cost Anomaly Detection to kluczowe narzędzia do kontroli kosztów
Firma ma bazę danych produkcyjną działającą 24/7 przez cały rok. Który model cenowy da największą oszczędność?
Która usługa AWS automatycznie analizuje wykorzystanie zasobów i rekomenduje optymalne typy instancji?
Firma chce automatycznie przenosić stare logi z S3 Standard do tańszego storage po 30 dniach. Jakiego mechanizmu użyje?