🟢 Beginner

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šetkoEnvironment: 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:

  1. IAM — bezpečný prístup
  2. VPC — správna sieťová architektúra
  3. EC2 alebo Lambda — compute podľa potreby
  4. S3 — storage pre všetko
  5. 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 PractitionerSolutions Architect Associate) je výborný spôsob, ako si znalosti systematizovať.