Amazon EC2
Amazon Elastic Compute Cloud
Wirtualne serwery w chmurze AWS. Uruchamiaj dowolne aplikacje na skalowalnych instancjach - od prostego bloga po klaster ML.
Amazon EC2 (Elastic Compute Cloud) to fundamentalny serwis AWS, który pozwala uruchamiać wirtualne serwery (instancje) w chmurze. Zamiast kupować fizyczny serwer za tysiące złotych, możesz w kilka minut uruchomić maszynę z dokładnie taką mocą obliczeniową, jaką potrzebujesz - i płacić tylko za czas, gdy jest włączona.
EC2 to jeden z pierwszych serwisów, które AWS udostępnił w 2006 roku i do dziś pozostaje jednym z najczęściej używanych. Jeśli uczysz się AWS - EC2 to absolutny must-know.
Amazon EC2 był jednym z pierwszych serwisów AWS, uruchomionym w sierpniu 2006 roku. Dziś obsługuje miliony aktywnych instancji na całym świecie. Największe instancje (u-24tb1.metal) mają 448 vCPU i aż 24 TB RAM - to więcej niż większość centrów danych w jednym serwerze!
Zawsze taguj swoje instancje (Name, Environment, Project, Owner). Bez tagów, przy 50+ instancjach, nie będziesz wiedzieć co do czego służy. Używaj Launch Templates zamiast ręcznego konfigurowania - oszczędzisz czas i unikniesz błędów.
Nie zostawiaj uruchomionych instancji EC2, których nie używasz! Nawet t3.micro kosztuje ~$7.50/miesiąc. Ustaw AWS Budget alarm na $10, żeby otrzymać powiadomienie zanim rachunek Cię zaskoczy. Zatrzymane instancje (stopped) nie naliczają opłat za compute, ale płacisz za dyski EBS.
Uruchomienie instancji EC2 to wieloetapowy proces, w ktorym kazdy krok wplywa na bezpieczenstwo, wydajnosc i koszty. Ponizej przedstawiamy caly cykl zycia instancji - od wyboru obrazu po polaczenie SSH.
Wybor AMI (Amazon Machine Image)
AMI to gotowy obraz systemu operacyjnego z preinstalowanym oprogramowaniem. Mozesz wybrac oficjalne AMI od AWS (Amazon Linux 2023, Ubuntu 22.04, Windows Server 2022), obrazy z AWS Marketplace lub stworzyc wlasne AMI z juz skonfigurowanej instancji. Wlasne AMI to klucz do szybkiego skalowania - zawieraja Twoj kod, konfiguracje i zalezbosci.
Wybor typu instancji
Typ instancji determinuje hardware: CPU, RAM, siec i dysk. Rodzina t3/t4g to instancje burstable - swietne do zmiennego obciazenia (np. strony www). Rodzina m5/m6i to general purpose dla stabilnych workloadow. Rodzina c5/c6i to compute-optimized dla CPU-intensive zadan. Rodzina r5/r6i to memory-optimized dla baz danych in-memory. Kazda generacja (np. 5 vs 6) przynosi ok. 10-15% wiecej wydajnosci za ta sama cene.
Konfiguracja sieci (VPC, Subnet)
Instancja musi byc uruchomiona w konkretnym VPC i subnecie. Subnet publiczny (z route do Internet Gateway) daje instancji dostep do internetu. Subnet prywatny wymaga NAT Gateway do ruchu wychodzacego. Wybor Availability Zone wplywa na latency i dostepnosc - dla produkcji zawsze rozpinaj instancje po min. 2 AZ.
Security Groups - firewall instancji
Security Groups dzialaja jako stateful firewall na poziomie instancji. Definiujesz reguly inbound (np. port 22 z Twojego IP, port 443 z ALB) i outbound (domyslnie wszystko otwarte). Reguly sa stateful - jezeli wpuscisz ruch na port 80, odpowiedz automatycznie wyjdzie. Mozesz referencowac inne Security Groups zamiast adresow IP - to best practice w AWS.
Uruchomienie instancji (Launch)
Przy launchu konfigurujesz: Key Pair (do SSH), IAM Instance Profile (uprawnienia AWS), User Data (skrypt startowy wykonywany przy pierwszym boocie), EBS volumes (dyski), tagi (do organizacji i kosztow). Instancja przechodzi stany: pending, running, stopping, stopped, terminated. Po terminacji danych z instance store nie da sie odzyskac.
Polaczenie i zarzadzanie
Laczysz sie przez SSH (Linux) lub RDP (Windows) uzywajac Key Pair. Lepsze podejscie to AWS Systems Manager Session Manager - nie wymaga otwartego portu 22, loguje wszystkie sesje i dziala przez IAM zamiast kluczy SSH. Do zarzadzania flota instancji uzywaj SSM Run Command zamiast recznego laczenia sie do kazdej maszyny.
Praktyczne wskazowki, ktore wyniesiemy z doswiadczenia produkcyjnego z EC2 - od skryptow startowych po optymalizacje kosztow.
User Data - automatyzuj konfiguracje od startu
Skrypt User Data (bash na Linuxie) wykonuje sie jako root przy pierwszym uruchomieniu instancji. Uzywaj go do: instalacji pakietow, konfiguracji agentow (CloudWatch, SSM), sciagania kodu z S3 lub CodeCommit. Pamietaj: User Data wykonuje sie tylko raz (chyba ze ustawisz mime multi-part z cloud-init). Loguj User Data do /var/log/cloud-init-output.log aby debugowac problemy.
PoczatkujacyIMDSv2 - zabezpiecz metadata instancji
Instance Metadata Service (IMDS) udostepnia dane o instancji pod adresem 169.254.169.254. IMDSv1 jest podatny na ataki SSRF - atakujacy moze wyciagnac tymczasowe credentiale IAM. Zawsze wymuszaj IMDSv2 (token-based) ustawiajac HttpTokens=required. Od 2024 AWS domyslnie wlacza IMDSv2 dla nowych instancji, ale starsze moga nadal uzywac v1.
ZaawansowanyPlacement Groups - kontroluj fizyczne rozmieszczenie
Cluster Placement Group umieszcza instancje w jednym racku - daje latency ponizej 1ms i do 25 Gbps miedzy instancjami (kluczowe dla HPC). Spread Placement Group rozrzuca instancje na rozne racki (max 7 na AZ) - izoluje awarie hardware. Partition Placement Group to kompromis - dzieli instancje na logiczne partycje na roznych rackach, idealny dla Hadoop/Kafka.
ZaawansowanyBurstable credits (T3/T4g) - rozum swoj baseline
Instancje T3 maja baseline CPU (np. t3.micro = 10%, t3.small = 20%). Gdy zuzycie jest ponizej baseline, zbierasz kredyty. Gdy powyzej - zuzywa kredyty. Po wyczerpaniu kredytow w trybie unlimited platisz za dodatkowy burst (ok. $0.05/vCPU-godzine). W trybie standard instancja jest throttlowana. Monitoruj metryki CPUCreditBalance i CPUSurplusCreditBalance w CloudWatch.
PoczatkujacyEBS-Optimized i typy dyskow
Wszystkie instancje nowej generacji (m5, c5, r5 i nowsze) sa domyslnie EBS-Optimized - maja dedykowane pasmo do EBS. Wybor typu EBS: gp3 (baseline 3000 IOPS, 125 MB/s - mozesz zwiekszyc niezaleznie) to domyslny wybor. io2 Block Express daje do 256,000 IOPS dla baz danych. st1 to tani throughput dla logowania. Nigdy nie uzywaj gp2 w nowych projektach - gp3 jest tanszy i szybszy.
PoczatkujacyTermination Protection i lifecycle hooks
Wlacz DisableApiTermination dla instancji produkcyjnych - zapobiega przypadkowemu terminowaniu przez konsole lub API. Dla Auto Scaling Group skonfiguruj lifecycle hooks - daja czas na draining polaczen z ALB i graceful shutdown aplikacji przed terminacja. Ustaw DeleteOnTermination=false na waznych woluminach EBS, zeby nie stracic danych przy terminacji instancji.
ZaawansowanyScreenshoty z AWS Console
Wkrotce pojawia sie tu zrzuty ekranu pokazujace jak korzystac z Amazon EC2 bezposrednio w konsoli AWS.
Do czego sluzy Amazon EC2?
Hosting aplikacji webowych
Uruchom WordPress, Laravel, Django czy Node.js na instancji EC2 z pełną kontrolą nad serwerem.
Środowiska deweloperskie
Twórz tymczasowe instancje do testowania kodu. Nie płacisz, gdy nie pracujesz.
Przetwarzanie danych i ML
Instancje z GPU (np. P4d) do trenowania modeli machine learning i przetwarzania big data.
High Performance Computing
Symulacje naukowe, renderowanie 3D, obliczenia finansowe na instancjach z dziesiątkami rdzeni.
Co musisz wiedziec?
Instancja
Wirtualny serwer uruchomiony na infrastrukturze AWS. Ma przydzielony CPU, RAM, dysk i adres IP.
AMI (Amazon Machine Image)
Obraz systemu operacyjnego z preinstalowanym softwarem. Jak "szablon" do tworzenia instancji.
Typ instancji
Określa hardware: CPU, RAM, sieć, dysk. Np. t3.micro (2 vCPU, 1 GB RAM) czy m5.xlarge (4 vCPU, 16 GB RAM).
Security Group
Firewall dla instancji. Kontroluje jaki ruch sieciowy (porty, protokoły, IP) może wchodzić i wychodzić.
Key Pair
Para kluczy SSH do bezpiecznego łączenia się z instancją. Klucz prywatny zostajesz u siebie, publiczny trafia na instancję.
Elastic IP
Stały publiczny adres IP, który możesz przypisać do instancji. Nie zmienia się po restarcie.
Jaki typ wybrac?
Strony www, małe aplikacje, dev/test
t3.micro: 2 vCPU, 1 GB RAM - Free Tier!
Aplikacje produkcyjne, backend, API
m5.large: 2 vCPU, 8 GB RAM
Przetwarzanie danych, gaming, nauka
c5.2xlarge: 8 vCPU, 16 GB RAM
Bazy danych in-memory, cache
r5.xlarge: 4 vCPU, 32 GB RAM
Machine learning, AI, rendering
p4d.24xlarge: 96 vCPU, 8x A100 GPU
Architektura: Wysoko dostepna aplikacja webowa na EC2
Typowa architektura produkcyjna z EC2 w multi-AZ setup z load balancerem, auto scalingiem i baza danych. Ten wzorzec obsluguje wiekszosc aplikacji webowych - od startupu po enterprise.
Porównanie modeli zakupu EC2
| Model | Oszczędności | Zobowiązanie | Najlepszy dla |
|---|---|---|---|
| On-Demand | 0% (cena bazowa) | Brak | Testy, dev, krótkie zadania |
| Reserved (1 rok) | Do 40% | 1 rok | Stabilne workloady produkcyjne |
| Reserved (3 lata) | Do 72% | 3 lata | Długoterminowe serwery |
| Spot | Do 90% | Brak (ale mogą zabrać) | Batch processing, CI/CD, ML training |
| Savings Plans | Do 72% | 1-3 lata ($/godz.) | Elastyczne workloady, multi-region |
Ile kosztuje Amazon EC2?
On-Demand
Płacisz za godzinę/sekundę. Bez zobowiązań. Idealny na start i testy.
t3.micro: ~$0.0104/godz. (~$7.50/mies.)
Reserved Instances
Rezerwujesz na 1-3 lata. Do 72% taniej niż On-Demand.
t3.micro RI 1 rok: ~$4.50/mies.
Spot Instances
Używasz wolnych mocy AWS. Do 90% taniej, ale AWS może odebrać instancję.
t3.micro Spot: ~$0.003/godz.
Free Tier
750 godzin t2.micro/t3.micro MIESIĘCZNIE przez 12 miesięcy - tylko dla kont sprzed 15.07.2025. Nowe konta dostają Free Plan z kredytami do $200 na 6 miesięcy.
Wystarczy na 1 instancję 24/7
Przyklady AWS CLI
Uruchom instancję EC2
Tworzy nową instancję t3.micro z Amazon Linux 2023
aws ec2 run-instances \
--image-id ami-0c55b159cbfafe1f0 \
--instance-type t3.micro \
--key-name moj-klucz \
--security-group-ids sg-0123456789abcdef0 \
--tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value=MojSerwer}]'
Sprawdź status instancji
Lista Twoich instancji z ich stanem
aws ec2 describe-instances \
--query 'Reservations[].Instances[].{ID:InstanceId,State:State.Name,Type:InstanceType,IP:PublicIpAddress}' \
--output table
Zatrzymaj instancję
Zatrzymuje instancję (nie płacisz za compute, płacisz za dysk)
aws ec2 stop-instances --instance-ids i-0123456789abcdef0
Połącz się przez SSH
Logowanie na instancję (Amazon Linux)
ssh -i "moj-klucz.pem" [email protected]
Quiz: Amazon EC2
Sprawdz czy dobrze rozumiesz podstawy. Kliknij odpowiedz — feedback pojawi sie od razu.
1. Co to jest AMI?
2. Który typ instancji jest dostępny w Free Tier?
3. Czym jest Security Group?
4. Spot Instance może być do ___% tańsza od On-Demand.
Czesto uzywane razem z Amazon EC2
Czytaj więcej o Amazon EC2
Chcesz poznac Amazon EC2 w praktyce?
Darmowy kurs "AWS od podstaw" pokazuje jak uzywac Amazon EC2 krok po kroku. Teoria + praktyka od zera.