☁️ Container & Serverless Services
ECS, EKS, Fargate, Elastic Beanstalk, AWS Batch
🐳 Amazon ECS & Fargate
ECS (Elastic Container Service) — управление Docker-контейнерами. Launch Types: EC2 (вы управляете узлами) и Fargate (serverless, вы только описываете спецификацию контейнера). ECS Task Definition — blueprint конфигурации контейнера. ECS Service — поддерживает нужное количество задач.
⎈ Amazon EKS (Elastic Kubernetes Service)
Управляемый Kubernetes от AWS. Control plane управляется AWS. Worker nodes: EC2 (managed node groups) или Fargate. Fargate profile — serverless-поды в EKS. IAM Roles for Service Accounts (IRSA) — IAM-разрешения на уровне пода. eksctl, kubectl — основные CLI-инструменты.
🌱 AWS Elastic Beanstalk
PaaS-сервис — загружайте код, инфраструктурой (EC2, ELB, Auto Scaling, RDS) управляет AWS. Supported platforms: Java, .NET, PHP, Node.js, Python, Ruby, Go, Docker. Zero DevOps для разработчика — при этом доступ к EC2 по SSH сохраняется.
📦 AWS Batch
AWS Batch — управляемые пакетные вычисления, планирование заданий на основе очереди. Работает через EC2 и Spot Instance. Предназначен для длительных (часы) batch-заданий: геномика, обучение ML, ETL, рендеринг. Lambda — максимум 15 минут, Batch — без ограничений. Job Queue → Compute Environment → Job Definition.
📊 Сравнение Container/Compute сервисов
| Сервис | Абстракция | Управление | Основной Use Case |
|---|---|---|---|
| EC2 | VM | Полностью вы | Custom OS, full control |
| Elastic Beanstalk | Application (PaaS) | AWS инфра, вы — код | Быстрый деплой, минимум ops |
| ECS + EC2 | Container | Вы управляете узлами | Container + node control |
| ECS + Fargate | Container (serverless) | AWS управляет узлами | Serverless container |
| EKS | Kubernetes | AWS control plane | K8s workloads, microservices |
| Lambda | Function (serverless) | AWS всем управляет | Event-driven, ≤15 min |
| AWS Batch | Job (managed) | AWS queue + compute | Длительные batch jobs, Spot |
💡 Ключевые моменты
- ECS EC2: вы управляете узлами. ECS Fargate: serverless-контейнер
- EKS: управляемый Kubernetes control plane, worker = EC2 или Fargate
- Elastic Beanstalk: PaaS, разработчик деплоит только код
- AWS Batch: для длительных batch-заданий, экономично со Spot Instance
- Fargate = serverless launch type (в ECS или EKS)
🎯 Советы для экзамена
- «Serverless container» → ECS Fargate или EKS Fargate — узлами управлять не нужно
- «Managed Kubernetes» → EKS. «Managed container (not K8s)» → ECS
- Elastic Beanstalk: разработчик не хочет управлять инфраструктурой, но доступ к EC2 по SSH сохраняется
- AWS Batch vs Lambda: Batch = длительные batch-задания (часы), Lambda = короткие event-driven (макс. 15 мин)
- ECS Task = один или несколько контейнеров, запускаемых вместе (аналог пода)
⚠️ Частые ошибки
- Считать ECS и EKS одним и тем же: ECS=AWS-native оркестрация, EKS=Kubernetes
- Считать Fargate отдельным сервисом: Fargate = serverless launch type для ECS или EKS
- Считать, что в Elastic Beanstalk нет доступа к EC2 — доступ по SSH возможен
🧠 Для запоминания: «ECS=Elastic Container Service, EKS=Elastic Kubernetes Service» — оба про контейнеры, но EKS = Kubernetes. «Beanstalk = фасоль: растёт сама, разработчик только сажает семя (пишет код)»
Проверьте себя по теме «Container & Serverless Services»
Бесплатные интерактивные тесты, пробный экзамен и полные уроки — на платформе CertMaster.
Начать бесплатно →