AWS (Amazon Web Services) to platforma chmurowa oferowana przez Amazon, zapewniająca infrastrukturę obliczeniową, magazynową i sieciową jako usługę.
Trzy główne modele to: IaaS (Infrastructure as a Service) — użytkownik zarządza maszyną wirtualną i wyżej, np. EC2; PaaS (Platform as a Service) — użytkownik zarządza tylko kodem, np. Elastic Beanstalk; SaaS (Software as a Service) — gotowe oprogramowanie, np. Amazon WorkMail.
Region to geograficzny obszar świata zawierający co najmniej dwa izolowane data center. Przykłady: eu-west-1 (Irlandia), us-east-1 (Wirginia Północna).
Availability Zone (AZ) to jedno lub więcej fizycznie oddzielonych data center w obrębie Regionu, połączonych niskolatencyjną siecią. Wdrożenie aplikacji w wielu AZ zapewnia wysoką dostępność (HA).
IAM (Identity and Access Management) to globalny serwis AWS służący do zarządzania tożsamościami i dostępem do zasobów.
Główne komponenty: Users — konkretni użytkownicy; Groups — logiczne zbiory użytkowników; Roles — tożsamości zakładane przez serwisy lub użytkowników; Policies — dokumenty JSON definiujące uprawnienia (Allow/Deny) do działań na zasobach.
IAM User to stała tożsamość z trwałymi poświadczeniami (access key, hasło). Przypisywana do konkretnej osoby lub aplikacji zewnętrznej.
IAM Role to tymczasowa tożsamość bez trwałych poświadczeń. Jest zakładana (assumed) przez serwisy AWS (np. EC2, Lambda), użytkowników lub zewnętrzne aplikacje via STS. To preferowane podejście dla zasobów AWS — nie wymaga osadzania kluczy w kodzie.
Zasada Least Privilege (najmniejszych uprawnień) mówi, że każda tożsamość (użytkownik, rola, serwis) powinna mieć przyznane wyłącznie uprawnienia niezbędne do wykonania swojego zadania — nic więcej.
W praktyce oznacza to unikanie polityk z * (wildcard), regularne audyty uprawnień via IAM Access Analyzer oraz stosowanie Permission Boundaries dla delegowanych administratorów.
STS (Security Token Service) to serwis wydający tymczasowe poświadczenia bezpieczeństwa (Access Key ID, Secret Access Key, Session Token) z określonym czasem wygaśnięcia.
Używany przy: zakładaniu roli (AssumeRole), federacji tożsamości (SAML 2.0, Web Identity via Cognito) oraz cross-account access. Tymczasowe poświadczenia są bezpieczniejsze od długoterminowych kluczy IAM.
Model Shared Responsibility (wspólnej odpowiedzialności) dzieli obowiązki bezpieczeństwa między AWS a klienta.
AWS odpowiada za bezpieczeństwo chmury: fizyczną infrastrukturę, sprzęt, sieć globalną, hypervisor.
Klient odpowiada za bezpieczeństwo w chmurze: system operacyjny, konfigurację sieciową (Security Groups, NACLs), szyfrowanie danych, zarządzanie dostępem (IAM), aktualizacje oprogramowania na EC2.
AWS Organizations to serwis do centralnego zarządzania wieloma kontami AWS w ramach jednej organizacji. Pozwala grupować konta w OU (Organizational Units).
Kluczowe możliwości: SCP (Service Control Policies) — centralne ograniczenia uprawnień dla całych OU; konsolidowane rozliczenia (jeden rachunek dla wszystkich kont); automatyczne tworzenie kont. SCP nie nadają uprawnień — jedynie ograniczają maksymalne uprawnienia IAM.
CloudTrail rejestruje historię wywołań API AWS — kto, kiedy i z jakiego IP wykonał jaką operację na jakim zasobie. Służy do audytu i compliance. Domyślnie przechowuje logi 90 dni; można je wysyłać do S3 lub CloudWatch Logs.
CloudWatch to serwis monitorowania metryk i logów aplikacji — CPU, pamięć, latencja, logi z EC2/Lambda. Służy do obserwowania kondycji systemu i tworzenia alarmów. Oba serwisy uzupełniają się: CloudTrail = audyt API, CloudWatch = metryki i performance.
EC2 oferuje kilka rodzin instancji dopasowanych do różnych obciążeń:
On-Demand — płacisz za sekundy/godziny działania bez zobowiązań. Najdroższy, ale elastyczny. Idealny dla krótkoterminowych lub nieprzewidywalnych obciążeń.
Reserved Instances — zobowiązanie na 1 lub 3 lata; oszczędności do 75% vs On-Demand. Dla stabilnych, przewidywalnych workloadów (np. serwer produkcyjny).
Spot Instances — nieużywana pojemność AWS; oszczędności do 90%, ale instancja może zostać odebrana z 2-minutowym ostrzeżeniem. Dla zadań tolerujących przerwy: batch processing, ML training.
AMI (Amazon Machine Image) to szablon zawierający konfigurację systemu operacyjnego, oprogramowania i danych potrzebnych do uruchomienia instancji EC2.
AMI zawiera: root volume (EBS snapshot lub instancja store), uprawnienia dostępu (publiczne, prywatne, konta AWS) oraz mapowanie block device. Można tworzyć własne AMI z działających instancji (golden image) i kopiować je między Regionami. AMI jest regionalna.
ASG (Auto Scaling Group) automatycznie dodaje i usuwa instancje EC2 na podstawie zdefiniowanych reguł. Utrzymuje podaną liczbę instancji (min/desired/max).
Typy skalowania: Dynamic Scaling (np. na podstawie CPU via CloudWatch Alarm), Scheduled Scaling (o określonej godzinie), Predictive Scaling (ML przewiduje zapotrzebowanie). ASG działa z Load Balancerem — automatycznie rejestruje/wyrejestrowuje instancje.
Lambda to serverless compute — uruchamia kod w odpowiedzi na zdarzenia bez konieczności zarządzania serwerami. Płacisz tylko za czas wykonania (zaokrąglony do 1 ms).
Kluczowe ograniczenia: maksymalny czas wykonania 15 minut, pamięć 128 MB – 10 GB, rozmiar pakietu deployment 50 MB (zip) / 250 MB (unzip), rozmiar payloadu zdarzenia 6 MB (sync) / 256 KB (async), maksymalna współbieżność domyślnie 1000 per Region.
Cold start to opóźnienie inicjalizacyjne przy pierwszym wywołaniu Lambdy (lub po długim czasie bezczynności) — AWS musi pobrać kod, uruchomić runtime i wykonać init handler.
Sposoby minimalizacji: Provisioned Concurrency (utrzymuje ciepłe instancje Lambdy), zmniejszenie rozmiaru pakietu deployment, użycie lżejszego runtime (np. Node.js szybciej startuje niż Java), inicjalizacja połączeń poza handlerem (reuse między wywołaniami), Lambda SnapStart dla Javy (snapshot po init).
ELB (Elastic Load Balancer) dystrybuuje ruch przychodzący między wiele celów (EC2, kontenery, IP, Lambda) w jednej lub wielu AZ.
Trzy typy: ALB (Application Load Balancer) — warstwa 7, HTTP/HTTPS, routing URL-based, idealny dla mikroserwisów; NLB (Network Load Balancer) — warstwa 4, TCP/UDP, ultra-niska latencja i miliony RPS; GLB (Gateway Load Balancer) — warstwa 3, routing do wirtualnych urządzeń sieciowych (firewalle, IDS/IPS).
ECS (Elastic Container Service) to natywny dla AWS orkiestrator kontenerów Docker. Prostszy w konfiguracji, głęboka integracja z IAM, ALB, CloudWatch. Dostępny na EC2 lub Fargate (serverless).
EKS (Elastic Kubernetes Service) to zarządzane Kubernetes. Większa złożoność konfiguracji, ale pełna kompatybilność z ekosystemem K8s — przenośność między chmurami i on-prem. Wybór zależy od doświadczenia zespołu i wymagań przenośności.
Fargate to serverless compute engine dla kontenerów (ECS i EKS). Eliminuje potrzebę zarządzania flotą instancji EC2 — AWS automatycznie provisionuje, skaluje i zarządza infrastrukturą.
Płacisz za vCPU i GB pamięci per task/pod. Idealne dla: małych i średnich obciążeń, gdy zespół nie chce zarządzać nodami K8s/EC2, burst traffic. Ograniczenia: brak dostępu do hosta, wyższy koszt vs własne EC2 przy stałym wysokim obciążeniu.
S3 (Simple Storage Service) to obiektowy magazyn danych o nieograniczonej pojemności. Obiekty (pliki) przechowywane są w buckach (kontenerach logicznych). Trwałość 11 dziewiątek (99.999999999%).
Klasy przechowywania: Standard — częsty dostęp; Standard-IA — rzadki dostęp, niższy koszt storage; One Zone-IA — jedna AZ, tańszy; Glacier Instant/Flexible/Deep Archive — archiwizacja (minuty do 48h retrieval); Intelligent-Tiering — automatyczne przenoszenie między tierami na podstawie wzorców dostępu.
EBS (Elastic Block Store) to dysk blokowy podłączany do konkretnej instancji EC2 (jak dysk twardy). Jeden EBS montowany do jednej instancji EC2 naraz (z wyjątkiem multi-attach). Wysoka wydajność (IOPS), dane trwałe po zatrzymaniu instancji.
S3 to obiektowy storage dostępny przez API HTTP(S) z dowolnego miejsca. Nieograniczona skalowalność, tańszy, idealny dla statycznych plików, backupów, danych ML, logów, mediów.
Prosta zasada: EBS = dysk systemowy/aplikacyjny; S3 = repozytorium plików/obiektów.
RDS (Relational Database Service) to zarządzana usługa relacyjnych baz danych. AWS zajmuje się provisioningiem, patching, backupami i failover — użytkownik zarządza tylko danymi i schematem.
Obsługiwane silniki: MySQL, PostgreSQL, MariaDB, Oracle, Microsoft SQL Server oraz Amazon Aurora (kompatybilny z MySQL i PostgreSQL, ale wydajność do 5× lepsza). RDS obsługuje Multi-AZ deployment (synchroniczna replika standby) dla wysokiej dostępności i Read Replicas dla skalowalności odczytu.
DynamoDB to w pełni zarządzana, serverless baza NoSQL (klucz-wartość i dokumenty). Automatycznie skaluje się do dowolnej ilości danych i ruchu, oferując latencję w milisekundach w dowolnej skali.
Używaj DynamoDB gdy: schemat jest elastyczny lub nieznany, potrzebujesz przewidywalnej latencji przy milionach RPS, dane są dobrze modelowane pod klucz dostępu (PK + SK). Używaj RDS gdy: potrzebujesz złożonych JOIN-ów, transakcji ACID na wielu tabelach lub schemat jest stabilny i relacyjny.
S3 Versioning przechowuje wszystkie wersje każdego obiektu w buckecie. Chroni przed przypadkowym nadpisaniem i usunięciem — usunięty obiekt dostaje Delete Marker, stare wersje są dostępne. Można przywrócić dowolną wersję.
S3 Lifecycle Policy to reguły automatyzujące przejścia między klasami storage i usuwanie obiektów. Przykład: po 30 dniach przenieś do Standard-IA, po 90 dniach do Glacier, po 365 dniach usuń. Działa na podstawie wieku obiektów lub tagów.
ElastiCache to zarządzany in-memory cache, służący do zmniejszenia latencji i obciążenia baz danych poprzez cachowanie wyników zapytań i danych sesji.
Obsługiwane enginy: Redis — zaawansowane struktury danych (sorted sets, pub/sub, streams), trwałość danych, Multi-AZ z automatycznym failover, obsługa klastrów; Memcached — prostszy, wielowątkowy, brak trwałości, skalowanie horyzontalne przez sharding. Redis jest częściej wybierany ze względu na bogatszy feature set.
RDS Multi-AZ tworzy synchroniczną, pasywną replikę standby w drugiej AZ. Służy wyłącznie do high availability — przy awarii primary automatyczny failover w ciągu 1-2 minut. Replika standby nie obsługuje ruchu odczytowego.
Read Replica to asynchroniczna kopia bazy dla skalowalności odczytu. Obsługuje zapytania SELECT, odciążając primary. Można mieć do 15 replik (Aurora), mogą być w innym Regionie (cross-region). Nie zapewnia automatycznego failover.
SQS (Simple Queue Service) to w pełni zarządzana kolejka wiadomości, umożliwiająca decoupling komponentów aplikacji. Producent wysyła wiadomości, konsument je pobiera i przetwarza.
Standard Queue — nieograniczona przepustowość, at-least-once delivery, kolejność best-effort (może być inna niż nadana). FIFO Queue — gwarantowana kolejność FIFO, exactly-once processing, maksymalnie 3000 wiadomości/sek (z batching). Ważne pojęcia: Visibility Timeout, Dead Letter Queue (DLQ), Long Polling.
SNS (Simple Notification Service) to pub/sub messaging — jeden temat (topic) może dostarczyć wiadomość do wielu subskrybentów jednocześnie (fan-out): Lambda, SQS, HTTP/S, e-mail, SMS, mobile push.
Kluczowa różnica: SQS = pull (konsument sam pobiera wiadomości z kolejki, wiadomości są persistowane), SNS = push (AWS dostarcza wiadomości do wielu subskrybentów natychmiast, brak długoterminowego przechowywania). Często stosuje się wzorzec SNS → SQS (fan-out + persistence).
VPC (Virtual Private Cloud) to wirtualna sieć prywatna izolowana logicznie w chmurze AWS. Daje pełną kontrolę nad przestrzenią adresową, routingiem i bezpieczeństwem sieci.
Kluczowe komponenty: Subnets (publiczne i prywatne, w konkretnych AZ), Internet Gateway (połączenie z internetem dla public subnets), NAT Gateway (wychodzący internet dla private subnets), Route Tables, Security Groups (stanowy firewall na poziomie instancji), Network ACLs (bezstanowy firewall na poziomie subnet).
Security Group (SG) — stanowy (stateful) firewall działający na poziomie instancji EC2/interfejsu ENI. Jeśli pozwolisz na ruch przychodzący, odpowiedź wychodzi automatycznie. Domyślnie blokuje wszystko przychodzące, zezwala na wszystko wychodzące. Operuje na zasadzie Allow-only (brak reguł Deny).
Network ACL (NACL) — bezstanowy (stateless) firewall na poziomie subnetu. Reguły wchodzące i wychodzące oceniane niezależnie. Obsługuje zarówno Allow jak i Deny. Reguły oceniane w kolejności numerycznej. NACL jest dodatkową warstwą obrony — security in depth.
VPC Peering to bezpośrednie połączenie między dwoma VPC (w tym samym lub różnych kontach/Regionach). Ruch nie przechodzi przez internet. Ograniczenie: brak tranzytywności — jeśli VPC A jest peered z B i B z C, A nie komunikuje się automatycznie z C.
Transit Gateway to centralny hub routingowy dla wielu VPC i sieci on-premise. Rozwiązuje problem skalowalności — zamiast n*(n-1)/2 peer connections wystarczy jedno podłączenie każdego VPC do TGW. Idealne dla >5 VPC.
Route 53 to zarządzana usługa DNS AWS. Obsługuje rejestrację domen, resolver DNS i health checks.
Polityki routingu: Simple — jeden rekord; Weighted — podział ruchu procentowo (np. canary deploy); Latency-Based — kieruje do Regionu z najniższą latencją dla użytkownika; Failover — active/passive z health check; Geolocation — na podstawie lokalizacji geograficznej klienta; Geoproximity — na podstawie odległości z możliwością bias; Multi-Value Answer — do 8 zdrowych rekordów.
AWS WAF (Web Application Firewall) filtruje ruch HTTP/HTTPS na warstwie 7 według zdefiniowanych reguł: blokuje SQL Injection, XSS, konkretne IP, geo-blokady, rate limiting. Działa z ALB, CloudFront, API Gateway.
AWS Shield chroni przed atakami DDoS. Shield Standard — darmowy, automatyczna ochrona dla EC2, ELB, CloudFront, Route 53. Shield Advanced — płatny, rozszerzona ochrona, 24/7 DDoS Response Team, ochrona kosztów podczas ataku, szczegółowe metryki.
CloudFront to globalna sieć CDN (Content Delivery Network) AWS z ponad 400 lokalizacjami brzegowymi (Edge Locations). Cachuje i dostarcza treści (statyczne i dynamiczne) z lokalizacji najbliższej użytkownikowi.
Działanie: pierwsze żądanie trafia do Origin (S3, ALB, EC2), odpowiedź jest cachowana na Edge. Kolejne żądania z tego regionu obsługiwane są z Edge — zero latency do origin. Integruje się z WAF, Shield, ACM (SSL/TLS). Obsługuje Lambda@Edge dla personalizacji na Edge.
KMS (Key Management Service) to zarządzany serwis kluczy kryptograficznych. Tworzy, rotuje i zarządza kluczami CMK (Customer Managed Keys). Obsługuje szyfrowanie envelope: dane szyfrowane kluczem DEK, DEK szyfrowany CMK w KMS.
Integruje się z: S3, EBS, RDS, DynamoDB, Secrets Manager, Lambda. Klucze AWS Managed (automatycznie rotowane co rok) vs Customer Managed (pełna kontrola). Wszystkie operacje na kluczach logowane w CloudTrail. Dla szczególnie wrażliwych danych: CloudHSM (dedykowany sprzęt HSM).
API Gateway to zarządzana brama API, obsługująca uwierzytelnianie (Cognito, IAM, Lambda Authorizer), throttling, caching, transformację żądań i integrację z backendem (Lambda, HTTP, inne serwisy AWS).
Typy: REST API — pełne zarządzanie API, edge-optimized lub regional; HTTP API — prostszy, tańszy (ok. 70%), niższa latencja, ideał dla Lambda proxy; WebSocket API — trwałe połączenia dwukierunkowe dla real-time (chat, gaming). REST API ma więcej funkcji (usage plans, cache), HTTP API jest szybszy i tańszy.
Secrets Manager przechowuje i automatycznie rotuje sekrety (hasła DB, klucze API). Natywna integracja z RDS/Redshift/DocumentDB. Rotacja wykonywana przez Lambda. Płatny — ok. $0.40/sekret/miesiąc.
SSM Parameter Store przechowuje konfigurację i sekrety. Standard tier darmowy, Advanced tier płatny. Nie ma wbudowanej automatycznej rotacji. Używaj Secrets Manager dla sekretów wymagających rotacji; Parameter Store dla nierotujących konfiguracji i parametrów aplikacji.
AWS Well-Architected Framework definiuje 6 filarów dobrego projektu architektury chmurowej:
CloudFormation to natywny dla AWS serwis IaC (Infrastructure as Code). Opisujesz infrastrukturę w szablonach YAML/JSON (Stack), a CloudFormation automatycznie provisionuje i zarządza zasobami AWS.
Korzyści: powtarzalność środowisk (dev/staging/prod), kontrola wersji infrastruktury w Git, rollback przy błędach, drift detection. Alternatywy: AWS CDK (definiowanie infrastruktury kodem TypeScript/Python, generuje CF), Terraform (multi-cloud IaC). CDK jest preferowany przez deweloperów .NET/Java.
EventBridge to serverless event bus umożliwiający budowę loosely coupled, event-driven aplikacji. Przyjmuje zdarzenia ze źródeł (serwisy AWS, SaaS via partneri, własne aplikacje) i routuje je do targets (Lambda, SQS, Step Functions, API Gateway).
Kluczowe cechy: filtrowanie zdarzeń (Event Pattern Matching), Event Archive i replay (odtworzenie historycznych zdarzeń), Schema Registry (automatyczne wykrywanie schematu zdarzeń), Scheduler (cron jobs bez EC2). Zastępuje cron-like CloudWatch Events i rozszerza go o integracje zewnętrzne.
Step Functions to serverless orchestrator przepływów pracy (workflows) oparty na State Machine. Wizualnie definiujesz kolejne kroki (stany), obsługę błędów, równoległe gałęzie, warunki i pętle.
Typy: Standard — dokładnie raz, do 1 roku, audyt każdego kroku, wyższy koszt; Express — co najmniej raz, do 5 minut, niski koszt, wysoka przepustowość. Idealny dla: wieloetapowych procesów biznesowych, koordinowania Lambda/ECS/Glue, long-running workflows, saga pattern w mikroserwisach.
AWS oferuje natywny zestaw narzędzi DevOps: CodeCommit (Git repo), CodeBuild (build i testy), CodeDeploy (deployment na EC2/Lambda/ECS), CodePipeline (orchestracja całego pipeline CI/CD).
Typowy pipeline: CodeCommit → CodeBuild (build + unit tests) → staging deploy (CodeDeploy) → integration tests → production deploy. Strategie deploymentu: Rolling, Blue/Green (CodeDeploy + ALB, zero downtime), Canary (stopniowy ruch). Można zastąpić CodeCommit Githubem, Bitbucketem itd.
Kinesis to platforma do przetwarzania strumieniowego danych w czasie rzeczywistym. Składa się z: Data Streams (surowe strumienie, niskie latencje, retencja do 365 dni), Data Firehose (dostarczanie do S3/Redshift/Elasticsearch bez kodowania), Data Analytics (SQL na strumieniach).
Kiedy Kinesis vs SQS: Kinesis = streaming, wielu konsumentów czyta ten sam strumień, analityka real-time, duże wolumeny (MB/s), kolejność w shardzie. SQS = decoupling, jeden konsument per wiadomość (lub fan-out via SNS), zarządzanie zadaniami, prostsze operacyjnie.
AWS oferuje 4 strategie Disaster Recovery w kolejności od najtańszej do najdroższej (i od najdłuższego do najkrótszego RTO/RPO):
Cognito to zarządzany serwis autentykacji i autoryzacji dla aplikacji webowych i mobilnych.
User Pools — katalog użytkowników z pełnym przepływem autentykacji (rejestracja, logowanie, MFA, reset hasła). Wydaje tokeny JWT (ID, Access, Refresh). Obsługuje federację z IdP (Google, Facebook, SAML, OIDC). Identity Pools (Federated Identities) — wymiana tokenów na tymczasowe poświadczenia AWS (via STS) dające dostęp do zasobów AWS. Oba mogą działać razem: User Pool uwierzytelnia, Identity Pool autoryzuje do AWS.
Cost Explorer to narzędzie wizualizacji i analizy wydatków AWS. Pokazuje koszty per serwis, tag, konto, Region. Oferuje rekomendacje Reserved Instances i Savings Plans.
Strategie optymalizacji kosztów: Right-sizing (dopasowanie rozmiaru instancji do rzeczywistego zużycia — AWS Compute Optimizer), Reserved Instances/Savings Plans (zobowiązanie na 1-3 lata), Spot Instances dla batch workloads, S3 Lifecycle (przenoszenie do tańszych klas), tagging strategy (alokacja kosztów do projektów/teamów), wyłączanie nieużywanych zasobów, S3 + CloudFront zamiast EC2 dla statycznych treści.