55+ AWS Pytania Rekrutacyjne 2026: EC2, S3, Lambda i VPC
AWS dominuje na rynku cloud z ~32% udziałem. Na rozmowach DevOps, SRE i Cloud Engineer znajomość AWS jest praktycznie wymagana. Nawet jeśli firma używa Azure czy GCP, zrozumienie koncepcji AWS przenosi się na inne chmury.
Ten przewodnik zawiera 55+ pytań rekrutacyjnych z odpowiedziami - od podstawowych usług po zaawansowane tematy jak VPC, IAM i Infrastructure as Code.
Spis treści
- Podstawy AWS Pytania
- EC2 Compute Pytania
- S3 Storage Pytania
- VPC Networking Pytania
- IAM Security Pytania
- RDS i Bazy Danych Pytania
- Lambda i Serverless Pytania
- EKS i Kontenery Pytania
- Infrastructure as Code Pytania
- Monitoring i Logging Pytania
- Powiązane Artykuły
Podstawy AWS Pytania
Czym jest AWS i jakie są główne kategorie usług?
Odpowiedź w 30 sekund: AWS (Amazon Web Services) to platforma cloud computing oferująca 200+ usług. Główne kategorie: Compute (EC2, Lambda), Storage (S3, EBS), Database (RDS, DynamoDB), Networking (VPC, Route 53), Security (IAM, KMS).
Odpowiedź w 2 minuty:
AWS organizuje swoje usługi w logiczne kategorie, co ułatwia znalezienie odpowiedniego narzędzia do konkretnego zadania:
| Kategoria | Usługi | Zastosowanie |
|---|---|---|
| Compute | EC2, Lambda, ECS, EKS | Uruchamianie aplikacji |
| Storage | S3, EBS, EFS, Glacier | Przechowywanie danych |
| Database | RDS, DynamoDB, ElastiCache | Bazy danych |
| Networking | VPC, Route 53, CloudFront, ELB | Sieć i DNS |
| Security | IAM, KMS, Secrets Manager | Bezpieczeństwo |
| Monitoring | CloudWatch, CloudTrail, X-Ray | Obserwabilność |
| Developer Tools | CodePipeline, CodeBuild, CodeDeploy | CI/CD |
Regiony i Availability Zones:
Region (np. eu-west-1)
├── AZ-a (eu-west-1a) - osobne data center
├── AZ-b (eu-west-1b) - osobne data center
└── AZ-c (eu-west-1c) - osobne data center
- Region - geograficzna lokalizacja (np. eu-west-1 = Irlandia)
- Availability Zone (AZ) - izolowane data center w regionie
- Multi-AZ - deployment w wielu AZ dla high availability
Czym różni się IaaS, PaaS i SaaS?
Odpowiedź w 30 sekund: IaaS (EC2) - dostajesz VM, zarządzasz wszystkim od OS w górę. PaaS (Elastic Beanstalk) - dostajesz platformę, wrzucasz kod. SaaS (Gmail) - gotowa aplikacja. Im wyżej, tym mniej zarządzasz.
Odpowiedź w 2 minuty:
Modele cloud computing różnią się poziomem odpowiedzialności za zarządzanie infrastrukturą:
| Model | Co zarządzasz | Co AWS zarządza | Przykłady AWS |
|---|---|---|---|
| IaaS | OS, Runtime, App | Hardware, Virtualization | EC2, VPC, EBS |
| PaaS | App, Data | OS, Runtime, Hardware | Elastic Beanstalk, App Runner |
| SaaS | Tylko konfiguracja | Wszystko | WorkMail, Chime |
| FaaS | Kod (funkcje) | Wszystko inne | Lambda |
┌─────────────────────────────────────────────────────────┐
│ ODPOWIEDZIALNOŚĆ │
├──────────────┬──────────────┬──────────────┬───────────┤
│ On-Premise │ IaaS │ PaaS │ SaaS │
├──────────────┼──────────────┼──────────────┼───────────┤
│ Applications │ Applications │ Applications │ ✓ │
│ Data │ Data │ Data │ ✓ │
│ Runtime │ Runtime │ ✓ │ ✓ │
│ OS │ OS │ ✓ │ ✓ │
│ Virtualization│ ✓ │ ✓ │ ✓ │
│ Hardware │ ✓ │ ✓ │ ✓ │
└──────────────┴──────────────┴──────────────┴───────────┘
Ty zarządzasz AWS zarządza (✓)
EC2 Compute Pytania
Czym jest EC2 i jakie są typy instancji?
Odpowiedź w 30 sekund: EC2 (Elastic Compute Cloud) to wirtualne maszyny w AWS. Typy instancji: t3 (general purpose, burstable), m5 (general purpose), c5 (compute optimized), r5 (memory optimized), g4 (GPU). Wybór zależy od workloadu.
Odpowiedź w 2 minuty:
Typy instancji EC2 są podzielone na rodziny zoptymalizowane pod różne workloady:
| Rodzina | Prefix | Optymalizacja | Użycie |
|---|---|---|---|
| General Purpose | t3, m5, m6i | Balanced | Web servers, dev |
| Compute Optimized | c5, c6i | CPU | Batch processing, gaming |
| Memory Optimized | r5, x2idn | RAM | Databases, caching |
| Storage Optimized | i3, d2 | I/O | Data warehousing |
| GPU | p4, g4dn | GPU | ML, rendering |
Naming convention:
m5.xlarge
│ │ └── Size (nano, micro, small, medium, large, xlarge, 2xlarge...)
│ └──── Generation (newer = better)
└────── Family (m = general purpose)
Purchase options:
| Opcja | Oszczędności | Commitment |
|---|---|---|
| On-Demand | 0% | Brak |
| Reserved (1yr) | ~40% | 1 rok |
| Reserved (3yr) | ~60% | 3 lata |
| Spot | do 90% | Może być przerwany |
| Savings Plans | do 72% | $/hr commitment |
Co to jest AMI i jak działa?
Odpowiedź w 30 sekund: AMI (Amazon Machine Image) to szablon do uruchamiania EC2 - zawiera OS, oprogramowanie, konfigurację. Możesz używać gotowych AMI (Amazon Linux, Ubuntu) lub tworzyć własne. AMI jest region-specific, ale można kopiować między regionami.
Odpowiedź w 2 minuty:
AMI działa jak szablon zawierający wszystkie komponenty potrzebne do uruchomienia instancji. Oto przykład tworzenia własnego AMI:
# AMI zawiera:
# - Root volume (OS)
# - Launch permissions
# - Block device mapping (dodatkowe dyski)
# Tworzenie własnego AMI
aws ec2 create-image \
--instance-id i-1234567890abcdef0 \
--name "my-app-v1.0" \
--description "My application with all dependencies"
# Kopiowanie AMI do innego regionu
aws ec2 copy-image \
--source-image-id ami-123456 \
--source-region us-east-1 \
--region eu-west-1 \
--name "my-app-eu"
Golden AMI pattern:
- Uruchom bazowy EC2
- Zainstaluj wszystkie dependencies
- Hardening security
- Utwórz AMI
- Używaj AMI w Auto Scaling Group
Czym jest Security Group?
Odpowiedź w 30 sekund: Security Group to wirtualny firewall dla EC2. Kontroluje inbound i outbound traffic. Domyślnie: deny all inbound, allow all outbound. Stateful - jeśli wpuścisz ruch, odpowiedź jest automatycznie dozwolona.
Odpowiedź w 2 minuty:
Security Group działa jako wirtualny firewall z regułami kontrolującymi ruch sieciowy. Przykład konfiguracji przez AWS CLI:
# Security Group rules
# Inbound (kto może się połączyć)
aws ec2 authorize-security-group-ingress \
--group-id sg-123456 \
--protocol tcp \
--port 443 \
--cidr 0.0.0.0/0
# Outbound (gdzie instancja może się połączyć)
aws ec2 authorize-security-group-egress \
--group-id sg-123456 \
--protocol tcp \
--port 5432 \
--source-group sg-789012 # Do innego SG
Security Group vs NACL:
| Cecha | Security Group | NACL |
|---|---|---|
| Poziom | Instance | Subnet |
| State | Stateful | Stateless |
| Rules | Allow only | Allow & Deny |
| Evaluation | All rules | Order matters |
| Default | Deny all inbound | Allow all |
Best practices:
- Principle of least privilege
- Używaj Security Groups zamiast IP gdzie możliwe
- Oddzielne SG dla różnych tier (web, app, db)
- Nie używaj 0.0.0.0/0 dla SSH/RDP
Co to jest Auto Scaling Group?
Odpowiedź w 30 sekund: Auto Scaling Group (ASG) automatycznie skaluje liczbę EC2 instancji. Definiujesz min/max/desired capacity. Skalowanie na podstawie metryk (CPU, custom metrics) lub schedule. Zapewnia high availability przez rozpięcie na wiele AZ.
Odpowiedź w 2 minuty:
Auto Scaling Group składa się z Launch Template (definicja instancji) oraz konfiguracji skalowania. Przykład kompletnej konfiguracji:
# Launch Template (co uruchomić)
LaunchTemplate:
LaunchTemplateName: my-app-template
LaunchTemplateData:
ImageId: ami-123456
InstanceType: t3.medium
SecurityGroupIds:
- sg-123456
UserData: |
#!/bin/bash
yum update -y
systemctl start myapp
# Auto Scaling Group
AutoScalingGroup:
AutoScalingGroupName: my-app-asg
LaunchTemplate:
LaunchTemplateId: !Ref LaunchTemplate
MinSize: 2
MaxSize: 10
DesiredCapacity: 2
VPCZoneIdentifier:
- subnet-1a # AZ-a
- subnet-1b # AZ-b
TargetGroupARNs:
- !Ref ALBTargetGroup
Scaling Policies:
| Policy Type | Trigger | Użycie |
|---|---|---|
| Target Tracking | Utrzymuj CPU na 70% | Najprostsza |
| Step Scaling | Różne akcje przy różnych progach | Zaawansowana |
| Scheduled | O określonej godzinie | Przewidywalny ruch |
| Predictive | ML-based prediction | Traffic patterns |
# Przykład Target Tracking
aws autoscaling put-scaling-policy \
--auto-scaling-group-name my-asg \
--policy-name cpu-target-tracking \
--policy-type TargetTrackingScaling \
--target-tracking-configuration '{
"TargetValue": 70.0,
"PredefinedMetricSpecification": {
"PredefinedMetricType": "ASGAverageCPUUtilization"
}
}'
S3 Storage Pytania
Czym jest S3 i jakie są klasy storage?
Odpowiedź w 30 sekund: S3 (Simple Storage Service) to object storage - przechowuje pliki jako obiekty w bucketach. Klasy: Standard (hot), Intelligent-Tiering (auto), Glacier (cold archive). 11 nines durability (99.999999999%). Płacisz za storage, requests i transfer.
Odpowiedź w 2 minuty:
S3 oferuje różne klasy storage zoptymalizowane pod kątem kosztów i częstotliwości dostępu do danych:
| Klasa | Dostępność | Retrieval | Użycie |
|---|---|---|---|
| Standard | 99.99% | Instant | Aktywne dane |
| Intelligent-Tiering | 99.9% | Instant | Zmienny access pattern |
| Standard-IA | 99.9% | Instant | Rzadki dostęp (30+ dni) |
| One Zone-IA | 99.5% | Instant | Rzadki, reproductible |
| Glacier Instant | 99.9% | Milisekundy | Archiwum z szybkim dostępem |
| Glacier Flexible | 99.99% | 1-12 godzin | Archiwum |
| Glacier Deep Archive | 99.99% | 12-48 godzin | Long-term archive |
# Lifecycle policy - automatyczna migracja
aws s3api put-bucket-lifecycle-configuration \
--bucket my-bucket \
--lifecycle-configuration '{
"Rules": [{
"ID": "Archive old logs",
"Status": "Enabled",
"Filter": {"Prefix": "logs/"},
"Transitions": [
{"Days": 30, "StorageClass": "STANDARD_IA"},
{"Days": 90, "StorageClass": "GLACIER"}
],
"Expiration": {"Days": 365}
}]
}'
Jak zabezpieczyć bucket S3?
Odpowiedź w 30 sekund: Domyślnie bucket jest prywatny. Block Public Access na poziomie account i bucket. Bucket Policy dla resource-based permissions. ACL (legacy). Encryption: SSE-S3 (default), SSE-KMS, SSE-C. Versioning dla ochrony przed usunięciem.
Odpowiedź w 2 minuty:
Zabezpieczenie S3 wymaga wielowarstwowego podejścia. Przykład Bucket Policy ograniczającej dostęp tylko z VPC:
// Bucket Policy - tylko z VPC
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Deny",
"Principal": "*",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::my-bucket",
"arn:aws:s3:::my-bucket/*"
],
"Condition": {
"StringNotEquals": {
"aws:sourceVpc": "vpc-123456"
}
}
}]
}
Security checklist:
- ✅ Block Public Access enabled
- ✅ Bucket Policy restrykcyjna
- ✅ Encryption enabled (SSE-S3 minimum)
- ✅ Versioning enabled
- ✅ MFA Delete dla critical buckets
- ✅ Access logging enabled
- ✅ VPC Endpoint dla private access
# Block Public Access
aws s3api put-public-access-block \
--bucket my-bucket \
--public-access-block-configuration \
BlockPublicAcls=true,\
IgnorePublicAcls=true,\
BlockPublicPolicy=true,\
RestrictPublicBuckets=true
VPC Networking Pytania
Co to jest VPC i jak go skonfigurować?
Odpowiedź w 30 sekund: VPC (Virtual Private Cloud) to izolowana sieć w AWS. Definiujesz CIDR block (np. 10.0.0.0/16), tworzysz subnety (public/private), konfigurujesz routing, Internet Gateway dla public access, NAT Gateway dla private subnets.
Odpowiedź w 2 minuty:
VPC tworzy izolowaną przestrzeń sieciową z publicznymi i prywatnymi podsieciami rozproszonymi w wielu AZ. Przykładowa architektura:
VPC (10.0.0.0/16)
├── Public Subnet (10.0.1.0/24) - AZ-a
│ ├── Route: 0.0.0.0/0 → Internet Gateway
│ └── Resources: ALB, Bastion
├── Private Subnet (10.0.2.0/24) - AZ-a
│ ├── Route: 0.0.0.0/0 → NAT Gateway
│ └── Resources: EC2, Containers
├── Public Subnet (10.0.3.0/24) - AZ-b
│ └── Route: 0.0.0.0/0 → Internet Gateway
└── Private Subnet (10.0.4.0/24) - AZ-b
└── Route: 0.0.0.0/0 → NAT Gateway
# Terraform example
resource "aws_vpc" "main" {
cidr_block = "10.0.0.0/16"
enable_dns_hostnames = true
enable_dns_support = true
}
resource "aws_subnet" "public" {
vpc_id = aws_vpc.main.id
cidr_block = "10.0.1.0/24"
availability_zone = "eu-west-1a"
map_public_ip_on_launch = true
}
resource "aws_internet_gateway" "main" {
vpc_id = aws_vpc.main.id
}
resource "aws_nat_gateway" "main" {
allocation_id = aws_eip.nat.id
subnet_id = aws_subnet.public.id
}
Czym różni się Internet Gateway od NAT Gateway?
Odpowiedź w 30 sekund: Internet Gateway pozwala zasobom z public IP komunikować się z internetem (inbound + outbound). NAT Gateway pozwala zasobom w private subnet wychodzić do internetu bez przyjmowania ruchu przychodzącego - bezpieczniejsze dla backendów.
Odpowiedź w 2 minuty:
Główna różnica polega na kierunku komunikacji i wymaganiach dotyczących publicznych adresów IP:
| Cecha | Internet Gateway | NAT Gateway |
|---|---|---|
| Kierunek | Bi-directional | Outbound only |
| Public IP | Wymagany na instancji | Nie wymagany |
| High Availability | Automatic | Per-AZ (trzeba tworzyć w każdym AZ) |
| Koszt | Free | ~$0.045/hr + transfer |
| Użycie | Public subnets | Private subnets |
Internet
│
▼
┌────────────────────────────────────────────────┐
│ Internet Gateway │
└────────────────────────────────────────────────┘
│ │
▼ ▼
┌──────────────────┐ ┌──────────────────┐
│ Public Subnet │ │ Public Subnet │
│ (ALB, NAT) │ │ (ALB, NAT) │
│ 10.0.1.0/24 │ │ 10.0.3.0/24 │
└────────┬─────────┘ └────────┬─────────┘
│ │
NAT Gateway NAT Gateway
│ │
▼ ▼
┌──────────────────┐ ┌──────────────────┐
│ Private Subnet │ │ Private Subnet │
│ (EC2, RDS) │ │ (EC2, RDS) │
│ 10.0.2.0/24 │ │ 10.0.4.0/24 │
└──────────────────┘ └──────────────────┘
Co to jest VPC Peering i Transit Gateway?
Odpowiedź w 30 sekund: VPC Peering łączy dwa VPC - ruch idzie prywatnie przez AWS backbone. Ograniczenie: nie przechodnie (A-B, B-C nie daje A-C). Transit Gateway to hub - łączy wiele VPC i on-premise, routing przechodni, centralne zarządzanie.
Odpowiedź w 2 minuty:
Obie technologie służą do łączenia VPC, ale różnią się skalowalnością i możliwościami routingu:
VPC Peering:
VPC-A ←──── Peering ────→ VPC-B
│ │
└──── Peering ─────────────┘
│
VPC-C
# NIE ma połączenia A-C przez B!
# Trzeba osobny peering A-C
Transit Gateway:
┌─────────────────────┐
│ Transit Gateway │
└─────────┬───────────┘
┌────────────────┼────────────────┐
│ │ │
VPC-A VPC-B VPC-C
│
On-Premise
(VPN/DX)
| Cecha | VPC Peering | Transit Gateway |
|---|---|---|
| Topologia | Point-to-point | Hub-and-spoke |
| Transitive | Nie | Tak |
| Skalowalność | Do ~125 peerings | Tysiące attachments |
| Koszt | Tylko data transfer | Per attachment + data |
| Complexity | Prosta (1:1) | Centralne zarządzanie |
IAM Security Pytania
Jak działa IAM w AWS?
Odpowiedź w 30 sekund: IAM kontroluje kto (Users, Roles) może co (Policies - Allow/Deny actions) na czym (Resources). Users dla ludzi z credentials. Roles dla usług (EC2, Lambda) - temporary credentials. Zasada least privilege - minimalne wymagane uprawnienia.
Odpowiedź w 2 minuty:
IAM Policy definiuje uprawnienia za pomocą JSON opisującego efekt, akcje, zasoby i warunki. Przykład struktury:
// IAM Policy structure
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow", // lub "Deny"
"Action": [ // Co można robić
"s3:GetObject",
"s3:PutObject"
],
"Resource": [ // Na czym
"arn:aws:s3:::my-bucket/*"
],
"Condition": { // Kiedy (opcjonalne)
"IpAddress": {
"aws:SourceIp": "10.0.0.0/8"
}
}
}
]
}
IAM Entities:
| Entity | Użycie | Credentials |
|---|---|---|
| User | Ludzie, CI/CD | Long-term (access key) |
| Group | Grupowanie Users | - |
| Role | Usługi, Federation | Temporary (STS) |
| Policy | Uprawnienia | - |
# Assume Role (np. EC2 instance profile)
# EC2 automatycznie dostaje temporary credentials
# Cross-account access
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Principal": {"AWS": "arn:aws:iam::123456789012:root"},
"Action": "sts:AssumeRole"
}]
}
Czym różni się Identity-based od Resource-based policy?
Odpowiedź w 30 sekund: Identity-based policy jest attached do User/Role - mówi "ta tożsamość może X". Resource-based policy jest attached do zasobu (S3, SQS) - mówi "ten zasób może być accessed przez Y". Resource-based umożliwia cross-account access.
Odpowiedź w 2 minuty:
Identity-based policies są przypisane do tożsamości, podczas gdy resource-based policies są częścią samego zasobu:
| Cecha | Identity-based | Resource-based |
|---|---|---|
| Attached do | User, Group, Role | Resource (S3, SQS, Lambda) |
| Principal | Implicit (attached identity) | Explicit w policy |
| Cross-account | Wymaga assume role | Bezpośrednio w policy |
| Przykład | IAM Policy | S3 Bucket Policy |
// Identity-based (attached do Role)
{
"Effect": "Allow",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::bucket/*"
}
// Resource-based (attached do S3 bucket)
{
"Effect": "Allow",
"Principal": {"AWS": "arn:aws:iam::OTHER-ACCOUNT:role/MyRole"},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::bucket/*"
}
Policy Evaluation Logic:
- Explicit Deny → DENY
- Organization SCPs → jeśli Allow, kontynuuj
- Resource-based policy → jeśli Allow dla same-account, ALLOW
- Identity-based policy → jeśli Allow, ALLOW
- Permissions boundary → jeśli Allow, ALLOW
- Session policies → jeśli Allow, ALLOW
- Default → DENY
RDS i Bazy Danych Pytania
Czym jest RDS i kiedy go używać?
Odpowiedź w 30 sekund: RDS (Relational Database Service) to managed SQL databases - MySQL, PostgreSQL, MariaDB, Oracle, SQL Server, Aurora. AWS zarządza backups, patching, replication. Używaj dla standardowych relacyjnych workloadów. Aurora dla najlepszej wydajności.
Odpowiedź w 2 minuty:
RDS wspiera wiele silników baz danych, każdy z własnymi zaletami i zastosowaniami:
| Engine | Użycie | Cechy szczególne |
|---|---|---|
| Aurora | Production, high-performance | 5x faster than MySQL, auto-scaling storage |
| PostgreSQL | Complex queries, extensions | JSON, GIS |
| MySQL | Web apps, WordPress | Najpopularniejszy |
| MariaDB | MySQL fork, open-source | Community-driven |
| Oracle | Enterprise, legacy | Licensing |
| SQL Server | .NET apps | Windows ecosystem |
RDS vs Aurora vs DynamoDB:
| Cecha | RDS | Aurora | DynamoDB |
|---|---|---|---|
| Typ | SQL | SQL | NoSQL |
| Skalowanie | Vertical | Auto (storage), Read Replicas | Horizontal (infinite) |
| Latency | ms | ms | Single-digit ms |
| Schema | Fixed | Fixed | Flexible |
| Cost | Per-instance | Per-instance | Per-request/capacity |
# Multi-AZ deployment (HA)
aws rds create-db-instance \
--db-instance-identifier mydb \
--db-instance-class db.t3.medium \
--engine postgres \
--master-username admin \
--master-user-password secret \
--multi-az # Automatic failover
# Read Replica (scaling reads)
aws rds create-db-instance-read-replica \
--db-instance-identifier mydb-replica \
--source-db-instance-identifier mydb
Jak zapewnić High Availability dla RDS?
Odpowiedź w 30 sekund: Multi-AZ deployment - synchronous standby replica w innym AZ, automatic failover (60-120s). Read Replicas dla skalowania read traffic (async, można promować). Aurora ma wbudowany Multi-AZ z szybszym failover (<30s).
Odpowiedź w 2 minuty:
Multi-AZ zapewnia wysoką dostępność przez synchroniczną replikację, podczas gdy Read Replicas służą do skalowania odczytów. Porównanie architektur:
Multi-AZ (HA) Read Replicas (Scaling)
┌─────────────┐ ┌─────────────┐
│ Primary │ │ Primary │
│ (AZ-a) │ │ (AZ-a) │
└──────┬──────┘ └──────┬──────┘
│ Synchronous │ Asynchronous
│ Replication │ Replication
▼ ┌──────┼──────┐
┌─────────────┐ ▼ ▼ ▼
│ Standby │ Read Read Read
│ (AZ-b) │ Rep-1 Rep-2 Rep-3
└─────────────┘ (AZ-a) (AZ-b) (AZ-c)
Comparison:
| Cecha | Multi-AZ | Read Replica |
|---|---|---|
| Cel | High Availability | Read scaling |
| Replication | Synchronous | Asynchronous |
| Failover | Automatic | Manual (promote) |
| Można czytać? | Nie (standby) | Tak |
| Cross-region | Nie | Tak |
Aurora HA:
- 6 kopii danych w 3 AZ
- Storage auto-scaling do 128 TB
- Failover < 30 sekund
- Global Database dla cross-region
Lambda i Serverless Pytania
Czym jest Lambda i kiedy jej używać?
Odpowiedź w 30 sekund: Lambda to serverless compute - uruchamiasz funkcje bez zarządzania serwerami. Płacisz za wykonanie (ms) i pamięć. Max 15 minut execution time, 10 GB RAM. Dla event-driven workloads, APIs, data processing. Nie dla long-running tasks.
Odpowiedź w 2 minuty:
Lambda uruchamia kod w odpowiedzi na triggery bez potrzeby zarządzania serwerami. Przykład prostej funkcji Lambda:
# Lambda function
import json
def handler(event, context):
name = event.get('name', 'World')
return {
'statusCode': 200,
'body': json.dumps(f'Hello, {name}!')
}
Triggery Lambda:
| Trigger | Użycie |
|---|---|
| API Gateway | REST/HTTP APIs |
| S3 | File processing |
| SQS | Queue processing |
| EventBridge | Scheduled, events |
| DynamoDB Streams | DB changes |
| Kinesis | Real-time streaming |
| SNS | Notifications |
Lambda vs EC2:
| Cecha | Lambda | EC2 |
|---|---|---|
| Max duration | 15 min | Unlimited |
| Scaling | Automatic (1000 concurrent) | Manual/ASG |
| Cold start | ~100ms-seconds | N/A |
| Pricing | Per request + duration | Per hour |
| Management | Zero | OS, patching |
# Deploy with AWS CLI
aws lambda create-function \
--function-name my-function \
--runtime python3.11 \
--handler index.handler \
--role arn:aws:iam::123456:role/lambda-role \
--zip-file fileb://function.zip
# Invoke
aws lambda invoke \
--function-name my-function \
--payload '{"name": "Jan"}' \
response.json
Co to jest cold start i jak go zminimalizować?
Odpowiedź w 30 sekund: Cold start to czas inicjalizacji Lambda gdy nie ma "ciepłej" instancji - może trwać 100ms do kilku sekund (szczególnie VPC, Java). Minimalizacja: Provisioned Concurrency, mniejsze pakiety, lżejsze runtime (Python, Node vs Java), keep Lambda warm.
Odpowiedź w 2 minuty:
Cold start występuje gdy Lambda musi zainicjalizować nowy kontener wykonawczy. Proces składa się z kilku etapów:
Cold Start:
1. Download code
2. Start container
3. Initialize runtime
4. Run init code (outside handler)
5. Execute handler
Warm Start:
1. Execute handler (kontener już gotowy)
Optymalizacja:
| Technika | Efekt | Koszt |
|---|---|---|
| Provisioned Concurrency | Eliminuje cold starts | $$$ |
| Smaller package | Szybszy download | Free |
| Python/Node vs Java | Szybszy runtime init | Free |
| Init code optimization | Szybszy init | Free |
| SnapStart (Java) | Checkpoint/restore | Free |
# Provisioned Concurrency
ProvisionedConcurrencyConfig:
FunctionName: my-function
Qualifier: prod
ProvisionedConcurrentExecutions: 10
# Lub auto-scaling provisioned
ApplicationAutoScaling:
ScalableDimension: lambda:function:ProvisionedConcurrency
MinCapacity: 5
MaxCapacity: 100
# Optymalizacja - init poza handlerem
import boto3
# To wykonuje się RAZ (cold start)
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('my-table')
def handler(event, context):
# To wykonuje się przy każdym wywołaniu
return table.get_item(Key={'id': event['id']})
EKS i Kontenery Pytania
Czym różni się ECS od EKS?
Odpowiedź w 30 sekund: ECS (Elastic Container Service) to własny orchestrator AWS - prostszy, głęboka integracja z AWS. EKS (Elastic Kubernetes Service) to managed Kubernetes - dla teamów znających K8s, portability, bogaty ekosystem. Oba mogą używać Fargate (serverless) lub EC2.
Odpowiedź w 2 minuty:
ECS i EKS różnią się podejściem do orkiestracji kontenerów - pierwszy to własne rozwiązanie AWS, drugi to managed Kubernetes:
| Cecha | ECS | EKS |
|---|---|---|
| Orchestrator | Własny AWS | Kubernetes |
| Learning curve | Łatwiejszy | Stroma (K8s knowledge) |
| Portability | AWS only | Multi-cloud |
| Ekosystem | AWS native | K8s ecosystem (Helm, etc.) |
| Pricing | Free (płacisz za compute) | $0.10/hr per cluster + compute |
| IAM integration | Native | IRSA (IAM Roles for Service Accounts) |
ECS Architecture:
┌─────────────────────────────────────┐
│ ECS Cluster │
├─────────────────────────────────────┤
│ ┌─────────────┐ ┌─────────────┐ │
│ │ Service │ │ Service │ │
│ │ (3 tasks) │ │ (2 tasks) │ │
│ └─────────────┘ └─────────────┘ │
├─────────────────────────────────────┤
│ Fargate │ EC2 │
│ (serverless)│ (self-managed) │
└─────────────────────────────────────┘
EKS Architecture:
┌─────────────────────────────────────┐
│ EKS Control Plane │
│ (managed by AWS - $0.10/hr) │
├─────────────────────────────────────┤
│ ┌─────────────┐ ┌─────────────┐ │
│ │ Deployment │ │ Deployment │ │
│ │ (3 pods) │ │ (2 pods) │ │
│ └─────────────┘ └─────────────┘ │
├─────────────────────────────────────┤
│ Fargate Nodes │ EC2 Node Group │
└─────────────────────────────────────┘
Kiedy co:
- ECS - prostsze deployments, AWS-only, mniejszy team
- EKS - K8s expertise, multi-cloud strategy, complex workloads
Infrastructure as Code Pytania
Czym jest Terraform i jak go używać z AWS?
Odpowiedź w 30 sekund: Terraform to IaC tool od HashiCorp - definiujesz infrastrukturę w HCL, Terraform tworzy/aktualizuje zasoby. State file śledzi co istnieje. Multi-cloud (AWS, Azure, GCP). CloudFormation to AWS-native alternative.
Odpowiedź w 2 minuty:
Terraform używa deklaratywnego języka HCL do definiowania infrastruktury. Przykład kompletnej konfiguracji z providerem AWS:
# provider.tf
terraform {
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 5.0"
}
}
backend "s3" {
bucket = "my-terraform-state"
key = "prod/terraform.tfstate"
region = "eu-west-1"
}
}
provider "aws" {
region = "eu-west-1"
}
# main.tf
resource "aws_instance" "web" {
ami = "ami-123456"
instance_type = "t3.medium"
subnet_id = aws_subnet.public.id
tags = {
Name = "web-server"
}
}
resource "aws_security_group" "web" {
vpc_id = aws_vpc.main.id
ingress {
from_port = 443
to_port = 443
protocol = "tcp"
cidr_blocks = ["0.0.0.0/0"]
}
}
# outputs.tf
output "instance_ip" {
value = aws_instance.web.public_ip
}
# Terraform workflow
terraform init # Download providers, init backend
terraform plan # Preview changes
terraform apply # Apply changes
terraform destroy # Remove everything
# State management
terraform state list
terraform state show aws_instance.web
terraform import aws_instance.web i-1234567890
Terraform vs CloudFormation
Odpowiedź w 30 sekund: Terraform: multi-cloud, HCL syntax, state management, rich ecosystem. CloudFormation: AWS-native, YAML/JSON, no state file (AWS manages), deep AWS integration (StackSets, drift detection). Terraform bardziej popularny, CloudFormation jeśli AWS-only.
Odpowiedź w 2 minuty:
Terraform i CloudFormation to dwa najpopularniejsze narzędzia IaC dla AWS, różniące się zakresem wsparcia i filozofią działania:
| Cecha | Terraform | CloudFormation |
|---|---|---|
| Provider | Multi-cloud | AWS only |
| Language | HCL | YAML/JSON |
| State | Local/Remote (S3) | AWS managed |
| Modules | Terraform Registry | Nested Stacks, Modules |
| Drift detection | terraform plan | CloudFormation Drift |
| Rollback | Manual | Automatic |
| Learning curve | Moderate | Moderate |
# CloudFormation equivalent
AWSTemplateFormatVersion: '2010-09-09'
Resources:
WebServer:
Type: AWS::EC2::Instance
Properties:
ImageId: ami-123456
InstanceType: t3.medium
SubnetId: !Ref PublicSubnet
Tags:
- Key: Name
Value: web-server
Outputs:
InstanceIP:
Value: !GetAtt WebServer.PublicIp
Kiedy co:
- Terraform - multi-cloud, existing Terraform expertise
- CloudFormation - AWS-only, native integrations, CDK
Monitoring i Logging Pytania
Jak działa CloudWatch?
Odpowiedź w 30 sekund: CloudWatch to monitoring platform AWS - Metrics (CPU, Network), Logs (app logs), Alarms (notifications), Dashboards (visualization). Zbiera metryki z AWS services automatycznie. Custom metrics przez API. Alarms integrują z SNS, Lambda, Auto Scaling.
Odpowiedź w 2 minuty:
CloudWatch zbiera metryki, logi i konfiguruje alarmy dla wszystkich usług AWS. Przykłady użycia przez AWS CLI:
# Custom metric
aws cloudwatch put-metric-data \
--namespace "MyApp" \
--metric-name "RequestCount" \
--value 1 \
--dimensions Environment=prod,Service=api
# Alarm
aws cloudwatch put-metric-alarm \
--alarm-name "High-CPU" \
--metric-name CPUUtilization \
--namespace AWS/EC2 \
--statistic Average \
--period 300 \
--threshold 80 \
--comparison-operator GreaterThanThreshold \
--evaluation-periods 2 \
--alarm-actions arn:aws:sns:eu-west-1:123456:alerts
# Log group with retention
aws logs create-log-group --log-group-name /my-app/prod
aws logs put-retention-policy \
--log-group-name /my-app/prod \
--retention-in-days 30
CloudWatch components:
| Component | Funkcja | Przykład |
|---|---|---|
| Metrics | Dane numeryczne | CPUUtilization, RequestCount |
| Logs | Log data | Application logs, VPC Flow Logs |
| Alarms | Alerting | High CPU → SNS → PagerDuty |
| Dashboards | Visualization | Custom dashboards |
| Events/EventBridge | Event routing | Scheduled tasks, event patterns |
| Insights | Log analysis | Query logs with SQL-like syntax |
-- CloudWatch Logs Insights
fields @timestamp, @message
| filter @message like /ERROR/
| sort @timestamp desc
| limit 20
Powiązane Artykuły
- Kompletny Przewodnik - Rozmowa DevOps Engineer - pełny przewodnik przygotowania do rozmowy DevOps
- Docker - Pytania Rekrutacyjne - 42 pytania o konteneryzację
- Kubernetes - Pytania Rekrutacyjne - 60+ pytań o K8s
- Linux - Pytania Rekrutacyjne - 50+ pytań o komendy i bash
Ten artykuł jest częścią serii przygotowującej do rozmów rekrutacyjnych na stanowisko DevOps Engineer i Cloud Engineer. Opanuj AWS i inne technologie cloud z naszymi fiszkami do nauki.
Chcesz więcej pytań rekrutacyjnych?
To tylko jeden temat z naszego kompletnego przewodnika po rozmowach rekrutacyjnych. Uzyskaj dostęp do 800+ pytań z 13 technologii.
