Amazon EC2
Compute Cloud Practitioner Solutions Architect Associate SysOps Administrator

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.

Czy wiesz, ze...

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!

Pro Tip

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.

Uwaga

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.

1

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.

2

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.

3

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.

4

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.

5

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.

6

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.

Poczatkujacy

IMDSv2 - 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.

Zaawansowany

Placement 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.

Zaawansowany

Burstable 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.

Poczatkujacy

EBS-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.

Poczatkujacy

Termination 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.

Zaawansowany

Screenshoty z AWS Console

Wkrotce pojawia sie tu zrzuty ekranu pokazujace jak korzystac z Amazon EC2 bezposrednio w konsoli AWS.

Do czego sluzy Amazon EC2?

01

Hosting aplikacji webowych

Uruchom WordPress, Laravel, Django czy Node.js na instancji EC2 z pełną kontrolą nad serwerem.

02

Środowiska deweloperskie

Twórz tymczasowe instancje do testowania kodu. Nie płacisz, gdy nie pracujesz.

03

Przetwarzanie danych i ML

Instancje z GPU (np. P4d) do trenowania modeli machine learning i przetwarzania big data.

04

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?

t3 General Purpose (Burstable)

Strony www, małe aplikacje, dev/test

t3.micro: 2 vCPU, 1 GB RAM - Free Tier!
m5 General Purpose

Aplikacje produkcyjne, backend, API

m5.large: 2 vCPU, 8 GB RAM
c5 Compute Optimized

Przetwarzanie danych, gaming, nauka

c5.2xlarge: 8 vCPU, 16 GB RAM
r5 Memory Optimized

Bazy danych in-memory, cache

r5.xlarge: 4 vCPU, 32 GB RAM
p4d Accelerated (GPU)

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.

Uzytkownik Ruch HTTPS z przegladarki
DNS query
Route 53
Route 53 DNS z health checks i failover routing
HTTPS :443
Application Load Balancer
Application Load Balancer Rozdziela ruch miedzy instancje w 2+ AZ, SSL termination
HTTP :8080
EC2 (Auto Scaling Group)
EC2 (Auto Scaling Group) Instancje aplikacji w prywatnych subnetach, min 2 AZ, skalowanie na podstawie CPU/request count
TCP :5432
Amazon RDS (Multi-AZ)
Amazon RDS (Multi-AZ) PostgreSQL/MySQL z automatycznym failoverem, backupy i read replicas
TCP :6379
ElastiCache (Redis)
ElastiCache (Redis) Cache sesji i czesto uzywanych danych, zmniejsza obciazenie bazy
Auto Scaling Group powinien uzywac Launch Template (nie Launch Configuration) z mixed instances policy - mieszaj On-Demand i Spot dla oszczednosci do 70%.
ALB powinien miec Cross-Zone Load Balancing wlaczone (domyslnie aktywne) i connection draining ustawiony na 30-60 sekund.
Instancje EC2 w prywatnych subnetach potrzebuja NAT Gateway do pobierania aktualizacji - rozwaaz VPC Endpoints dla S3 i DynamoDB, aby zredukowac koszty NAT.

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.

Twoj wynik: 0 / 4

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.

Chcesz poznac Amazon EC2 w praktyce?

Darmowy kurs "AWS od podstaw" pokazuje jak uzywac Amazon EC2 krok po kroku. Teoria + praktyka od zera.

Zacznij darmowy kurs Wszystkie serwisy