AWS — Základy Amazon Web Services
Čo je AWS?
Amazon Web Services (AWS) je najväčšia cloudová platforma na svete. Spustená v roku 2006, dnes pokrýva 31 % globálneho cloud trhu (viac než Azure a GCP dokopy). AWS ponúka 200+ služieb — od virtuálnych serverov cez databázy až po strojové učenie.
Prečo je AWS #1?
- First mover — začal skôr než konkurencia, má najväčší ekosystém
- Najširšia ponuka služieb — pokrýva takmer každý use case
- Globálna infraštruktúra — 30+ regiónov, 100+ availability zones
- Komunita a dokumentácia — obrovské množstvo tutoriálov, certifikácií, partnerov
- Enterprise-ready — väčšina Fortune 500 beží na AWS
Hlavné služby — prehľad
| Služba | Kategória | Účel |
|---|---|---|
| EC2 | Compute | Virtuálne servery |
| Lambda | Compute | Serverless funkcie |
| ECS/EKS | Compute | Kontajnery (Docker/Kubernetes) |
| S3 | Storage | Objektové úložisko |
| EBS | Storage | Blokové úložisko pre EC2 |
| EFS | Storage | Zdieľaný súborový systém |
| RDS | Database | Managed relačné databázy |
| IAM | Security | Správa prístupov a identít |
| VPC | Networking | Virtuálna privátna sieť |
| CloudWatch | Monitoring | Logy, metriky, alarmy |
IAM — Security základ
Identity and Access Management je vstupná brána do celého AWS. Bez správneho IAM nastavenia je všetko ostatné zbytočné.
Kľúčové koncepty
AWS Account
├── Root User (nikdy nepoužívať na daily work!)
├── IAM Users (ľudia)
├── IAM Groups (zoskupenia users)
├── IAM Roles (pre služby, cross-account access)
└── IAM Policies (JSON dokumenty s permissions)
IAM Policy — príklad
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::my-bucket/*"
}
]
}
IAM best practices
- Root účet — zapnúť MFA, nikdy nepoužívať na bežnú prácu
- Least privilege — dávať len minimálne potrebné oprávnenia
- Skupiny namiesto individuálnych policies — ľahšia správa
- Roles pre služby — EC2, Lambda a pod. nikdy nehardcodovať credentials
- Pravidelný audit — AWS IAM Access Analyzer
Networking — VPC
Virtual Private Cloud je izolovaná sieť v rámci AWS, kde bežia tvoje zdroje.
Architektúra VPC
VPC (10.0.0.0/16)
├── Public Subnet (10.0.1.0/24)
│ ├── Internet Gateway
│ ├── NAT Gateway
│ └── EC2 (web server)
├── Private Subnet (10.0.2.0/24)
│ ├── EC2 (app server)
│ └── RDS (databáza)
└── Route Tables + Security Groups + NACLs
Security Groups vs NACLs
| Security Groups | NACLs | |
|---|---|---|
| Úroveň | Instance (ENI) | Subnet |
| Stav | Stateful | Stateless |
| Pravidlá | Len Allow | Allow + Deny |
| Poradie | Všetky sa vyhodnotia | Podľa čísla pravidla |
Subnety
- Public subnet — má route na Internet Gateway, inštancie majú public IP
- Private subnet — prístup von cez NAT Gateway, zvonka nedostupné
- Vždy rozdeľ aspoň na public/private v 2+ availability zones
Storage
S3 (Simple Storage Service)
Objektové úložisko — prakticky neobmedzená kapacita.
# Upload súboru
aws s3 cp file.txt s3://my-bucket/
# Sync adresára
aws s3 sync ./build s3://my-bucket/static/
# Listovanie
aws s3 ls s3://my-bucket/
Storage classes:
- S3 Standard — časté čítanie, nízka latencia
- S3 Infrequent Access — menej časté, lacnejšie
- S3 Glacier — archív, retrieval za minúty/hodiny
- S3 Intelligent-Tiering — automatické presúvanie medzi triedami
EBS (Elastic Block Store)
Blokové úložisko pripojené k EC2 — funguje ako disk.
- gp3 — general purpose SSD (default, najčastejší)
- io2 — high-performance pre databázy
- st1 — HDD pre sekvenčné workloady
- Snapshoty pre zálohy
EFS (Elastic File System)
Zdieľaný NFS súborový systém — viac EC2 inštancií môže čítať/zapisovať naraz.
Compute
EC2 (Elastic Compute Cloud)
Virtuálne servery — jadro AWS.
# Spustenie inštancie cez CLI
aws ec2 run-instances \
--image-id ami-0abcdef1234567890 \
--instance-type t3.micro \
--key-name my-key \
--security-group-ids sg-12345678 \
--subnet-id subnet-12345678
Typy inštancií:
- t3/t4g — burstable, general purpose (dev, malé appky)
- m6i/m7g — balanced (production workloady)
- c6i/c7g — compute-optimized (CPU-intensive)
- r6i/r7g — memory-optimized (databázy, cache)
- g5 — GPU (ML, rendering)
Lambda
Serverless — platíš len za čas behu funkcie.
def lambda_handler(event, context):
name = event.get("name", "World")
return {
"statusCode": 200,
"body": f"Hello, {name}!"
}
- Max 15 minút runtime
- Podporuje Python, Node.js, Java, Go, .NET, Ruby
- Trigger: API Gateway, S3 events, SQS, CloudWatch Events...
ECS / EKS
- ECS — AWS-natívny kontajnerový orchestrátor
- EKS — Managed Kubernetes
- Fargate — serverless compute pre ECS/EKS (žiadne EC2 manažovanie)
Cenový model
AWS používa pay-as-you-go model. Existujú ale spôsoby, ako ušetriť:
Pricing options pre EC2
| Model | Zľava | Záväzok | Use case |
|---|---|---|---|
| On-Demand | 0 % | Žiadny | Dev, testing, nepredvídateľné |
| Reserved | až 72 % | 1–3 roky | Stabilné production workloady |
| Spot | až 90 % | Žiadny (ale môže byť prerušené) | Batch processing, CI/CD runners |
| Savings Plans | až 72 % | 1–3 roky | Flexibilnejšie než Reserved |
Tipy na šetrenie
- AWS Free Tier — 750h t2.micro/mesiac (12 mesiacov), 5 GB S3, Lambda 1M requests
- Billing alerts — nastaviť v CloudWatch hneď na začiatku
- Cost Explorer — analyzovať, kde idú peniaze
- Taguj všetko —
Environment: dev/prod,Project: xyz - Vypínať dev prostredia cez Lambda scheduler
AWS CLI — základy
Inštalácia
# Linux
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
# macOS
brew install awscli
Konfigurácia
aws configure
# AWS Access Key ID: AKIA...
# AWS Secret Access Key: ****
# Default region: eu-central-1
# Output format: json
Užitočné príkazy
# Identita
aws sts get-caller-identity
# EC2 inštancie
aws ec2 describe-instances --query 'Reservations[].Instances[].{ID:InstanceId,State:State.Name,Type:InstanceType}'
# S3
aws s3 ls
aws s3 mb s3://new-bucket-name
# CloudWatch logy
aws logs describe-log-groups
aws logs tail /aws/lambda/my-function --follow
# SSM — pripojenie na EC2 bez SSH
aws ssm start-session --target i-1234567890abcdef0
Best practices pre začiatočníkov
1. Security first
- Zapni MFA na root aj IAM users
- Nikdy nedávaj credentials do kódu — použi IAM roles alebo Secrets Manager
- Zapni CloudTrail — loguje všetky API cally
2. Networking
- Vždy použi VPC s public/private subnetmi
- Security groups — default deny, povoľ len čo treba
- Použi VPC Flow Logs na debugging
3. High availability
- Deployuj do min. 2 availability zones
- Použi Auto Scaling Groups pre EC2
- Application Load Balancer pred web tier
4. Monitoring
- CloudWatch Alarms na CPU, memory, errors
- SNS notifikácie na email/Slack
- Centralizuj logy do CloudWatch Logs
5. Cost management
- Billing alerts od prvého dňa
- Taguj všetky resources
- Pravidelne kontroluj Cost Explorer
- Vymazávaj nepoužívané EBS volumes, Elastic IPs, staré snapshoty
6. Infrastructure as Code
- Nepoužívaj konzolu na produkciu — použi Terraform alebo CloudFormation
- Všetko v Gite, review cez PR
- State uložiť v S3 + DynamoDB (Terraform backend)
Zhrnutie
AWS je mocný nástroj, ale vyžaduje disciplínu. Začni s:
- IAM — bezpečný prístup
- VPC — správna sieťová architektúra
- EC2 alebo Lambda — compute podľa potreby
- S3 — storage pre všetko
- CloudWatch — monitoring od prvého dňa
Potom postupne pridávaj RDS, EKS, Terraform a ďalšie služby podľa potrieb projektu. AWS certifikácia (Cloud Practitioner → Solutions Architect Associate) je výborný spôsob, ako si znalosti systematizovať.