Модуль 07 — Cloud (AWS) ⭐⭐⭐
AWS = ~30% мирового рынка облака, самый широкий стек, самый плотный спрос. Знай AWS глубоко — и переход на Azure/GCP займёт 1-2 месяца.
Одно облако глубоко >> три поверхностно. Освой AWS до уровня уверенного Solutions Architect Associate, потом учи Azure/GCP по сравнениям.
1. Аккаунт и IAM ⭐⭐
Multi-account strategy с самого начала
Не «один аккаунт — все environments». Используй AWS Organizations:
- Management account (только billing, organizations)
- Production account
- Staging account
- Development account
- (опц.) Logging account, Security account
Service Control Policies (SCPs) — ограничения на уровне OU/аккаунта.
IAM — твой главный инструмент security
- Users — для людей (или для удалённых сервисов через access keys, но access keys — антипаттерн)
- Groups — собирай users в группы по ролям
- Roles — для AWS-сервисов и cross-account доступа. Используй везде где можно вместо access keys.
- Policies — JSON документы с разрешениями
IAM Identity Center (бывший SSO) — современный стандарт
Один identity provider (Google Workspace, Azure AD, Okta) → доступ во все AWS аккаунты с временными credentials. Никаких access keys в скриптах.
Принципы
- Least privilege — давай минимум разрешений
- MFA на root — обязательно. Root не используй вообще, кроме первой настройки
- Условия в policy —
aws:SourceIp,aws:MultiFactorAuthPresent,aws:RequestedRegion - Никаких access keys в коде — IAM Roles или GitHub OIDC
- IAM Access Analyzer — автомат поиск публично доступных ресурсов
Пример IAM policy
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "ReadOnlyS3SpecificBucket",
"Effect": "Allow",
"Action": ["s3:GetObject", "s3:ListBucket"],
"Resource": [
"arn:aws:s3:::my-bucket",
"arn:aws:s3:::my-bucket/*"
],
"Condition": {
"Bool": {"aws:MultiFactorAuthPresent": "true"}
}
}
]
}
2. Compute
EC2 — виртуальные машины
- Семейства инстансов: T (burstable, дешёвые), M (general), C (compute), R (memory), G/P (GPU)
- Generations: всегда выбирай новейшее (M7g лучше M5)
- ARM (Graviton) — 20-40% дешевле x86 при той же производительности. Используй где можно.
- AMI — образы. Создавай свои через Packer.
- Security Groups (stateful) vs NACLs (stateless на subnet level)
- EBS: gp3 (default, дешевле gp2 при той же производительности), io2 (high IOPS), st1 (HDD throughput)
- IMDSv2 — обязательно (защита от SSRF)
Стратегии цены
- On-Demand — стандарт, гибкость
- Spot ⭐ — до 90% скидка, но может быть прерван за 2 минуты. Для batch, CI runners, K8s workers с tolerations
- Savings Plans — обязательство по compute на 1-3 года, скидка ~40-70%
- Reserved Instances — старая модель, заменяется Savings Plans
Auto Scaling
EC2 Auto Scaling Group + Launch Template. Масштабирование по метрикам CloudWatch или по расписанию.
Lambda — serverless
- Runtimes: Python, Node.js, Go, Java, .NET, Ruby, Custom (через container images)
- Лимиты: 15 минут, 10GB RAM, 250MB пакета (10GB через container)
- Триггеры: API Gateway, S3, SQS, EventBridge, DynamoDB Streams, Kinesis
- Cold start — главный нюанс. Provisioned Concurrency убирает.
- Lambda Layers — общие зависимости
ECS / Fargate
- ECS — управляемая оркестрация контейнеров. Проще K8s.
- Fargate — serverless контейнеры (без управления EC2). Стандарт сейчас.
- Когда ECS, когда EKS: ECS — простота и AWS-only. EKS — стандарт K8s, мульти-облачная переносимость.
EKS (Elastic Kubernetes Service)
Подробно — в модуле 10. Кратко: managed K8s control plane + ноды (managed node groups, Fargate, или Karpenter).
3. Networking ⭐⭐⭐
VPC — твой private cloud
Best practice: 3 AZ, public + private + (для БД) isolated subnets в каждой AZ. Application Load Balancer в public, EC2/EKS workers в private.
Маршрутизация
- Route Tables — у каждой subnet
- IGW (Internet Gateway) — выход в интернет (для public)
- NAT Gateway — для private subnets (платный, ~$32/мес + traffic)
- VPC Peering — связь между двумя VPC
- Transit Gateway ⭐ — hub для multi-VPC, multi-region, hybrid (с on-prem)
- VPC Endpoints:
- Gateway endpoints (S3, DynamoDB) — бесплатные, экономят на NAT
- Interface endpoints (через PrivateLink) — для всех остальных
Если все запросы к S3 идут из private subnets через NAT GW — ты платишь за data transfer. Просто добавь S3 Gateway Endpoint в route table — экономия может быть тысячи долларов.
DNS — Route 53
- Hosted zones: public и private
- Routing policies: simple, weighted, latency-based, geolocation, failover, multivalue
- Health checks
- DNSSEC
CloudFront — CDN
- Distributions с origins (S3, ALB, custom)
- Behaviors — правила по path
- Caching policies
- OAC (Origin Access Control) — для S3 origins (заменил OAI)
- Lambda@Edge и CloudFront Functions — code at edge
ACM — TLS бесплатно
AWS Certificate Manager выпускает бесплатные TLS-сертификаты, авто-renew. Только для AWS-сервисов (CloudFront, ALB).
4. Storage
S3 — главное хранилище
- Объекты, не файлы. Buckets и prefixes.
- Versioning — обязательно для критичных данных
- Lifecycle — авто-перемещение S3 → S3 IA → Glacier → Deep Archive
- Encryption: SSE-S3, SSE-KMS (с customer keys), SSE-C
- Block Public Access — на уровне аккаунта по умолчанию вкл (с 2023)
- Pre-signed URLs — временный доступ без credentials
- Cross-Region Replication для DR
- S3 Object Lambda — трансформация при чтении
- S3 Express One Zone — для high-IOPS workloads (как ML)
Storage classes
| Класс | Цена / GB / мес | Время доступа | Когда |
|---|---|---|---|
| S3 Standard | ~$0.023 | Мгновенно | Hot data |
| S3 Standard-IA | ~$0.0125 | Мгновенно | Раз в месяц |
| S3 Intelligent-Tiering | auto | Мгновенно | Когда не знаешь pattern |
| S3 Glacier Instant Retrieval | ~$0.004 | Мгновенно | Редкий доступ |
| S3 Glacier Flexible | ~$0.0036 | Минуты-часы | Архив |
| S3 Glacier Deep Archive | ~$0.00099 | 12+ часов | Compliance, годовое хранение |
EBS, EFS, FSx
- EBS — block storage для EC2, привязан к одной AZ
- EFS — NFS, доступен из всех AZ. Для shared file storage
- FSx for Lustre — HPC. FSx for Windows — SMB
5. Базы данных
- RDS — managed PostgreSQL/MySQL/MariaDB/Oracle/SQL Server. Multi-AZ для HA, Read Replicas для scale
- Aurora — managed PostgreSQL/MySQL с separated storage. До 15 read replicas, мгновенный failover
- DynamoDB — managed NoSQL. Бесконечно масштабируется при правильном partition key
- ElastiCache — Redis/Memcached
- Neptune — graph DB
- Timestream — для time-series
- OpenSearch — fork Elasticsearch
6. Очереди и события
- SQS — message queue (Standard или FIFO). Стандарт для async обработки.
- SNS — pub/sub, fan-out
- EventBridge — event bus с rules. Для event-driven архитектуры. Заменяет CloudWatch Events.
- Kinesis Data Streams — streaming (как Kafka, managed)
- Kinesis Data Firehose — стриминг прямо в S3/Redshift/OpenSearch
- Step Functions — оркестрация state machines
- MSK — managed Kafka
7. Безопасность ⭐
- KMS — управление ключами шифрования (managed CMKs или customer-managed)
- Secrets Manager — секреты + автоматическая ротация
- Systems Manager Parameter Store — конфиги (бесплатно, проще Secrets Manager)
- GuardDuty — threat detection (анализ VPC Flow, CloudTrail, DNS)
- Security Hub — центральная панель security
- Inspector — vulnerability scanning EC2 / ECR / Lambda
- Macie — поиск PII в S3
- WAF — Web Application Firewall
- Shield — DDoS protection (Standard бесплатно, Advanced платно)
- CloudTrail ⭐ — audit logs всех API calls. Включай на день 1, в S3 в отдельном аккаунте.
- Config — compliance, drift detection
8. Observability
CloudWatch — Metrics, Logs, Alarms, Dashboards, Logs Insights, Container Insights
X-Ray — distributed tracing
В реальном продакшене обычно: CloudWatch для базы, поверх — Prometheus + Grafana + Loki. Datadog/New Relic в крупных компаниях.
9. Cost Management
- Cost Explorer — отчёты, прогнозы
- Budgets — алерты при превышении
- Cost Anomaly Detection — ML на необычные траты
- Compute Optimizer — рекомендации по right-sizing
- Trusted Advisor — общие best practice проверки
Tags-стратегия: каждый ресурс должен иметь:
Environment: prod | staging | dev
Owner: team-name
Project: project-name
CostCenter: cc-1234
ManagedBy: terraform | manual
Это позволяет видеть кто сколько тратит. Tag Policies в Organizations — для enforcement.
Сертификации
| Сертификация | Когда | Польза |
|---|---|---|
| Cloud Practitioner (CLF-C02) | Если страшно — для уверенности | Низкая |
| SAA-C03 — Solutions Architect Associate ⭐ | После модуля | Очень высокая, фундамент |
| Developer Associate (DVA) | Опц. | Если фокус на serverless |
| DOP-C02 — DevOps Engineer Professional | Senior уровень | Очень высокая |
| SCS-C02 — Security Specialty | На этапе DevSecOps | Топ для DevSecOps |
Чек-лист
- ☐ Понимаю VPC, могу нарисовать на доске
- ☐ Знаю когда NAT GW, а когда VPC Endpoint
- ☐ Настроил OIDC GitHub → AWS без access keys
- ☐ IAM политика «S3 read-only к одному префиксу» — пишу с ходу
- ☐ Понимаю разницу EFS vs EBS vs S3
- ☐ Использую Spot для batch / CI
- ☐ CloudTrail включён, метрики через CloudWatch
- ☐ SAA сдан (или близко)
Источники
- Курс: Stephane Maarek (Udemy) — золотой стандарт для SAA
- Hands-on: Adrian Cantrill — глубокие курсы
- Документация: docs.aws.amazon.com
- Whitepapers: Well-Architected Framework
- Бесплатно: AWS Skill Builder
Облако освоено. Дальше — Infrastructure as Code.