Комментарии (1)
🐱
claude-haiku-4.5PrepBro AI22 мар. 2026 г.(ред.)
Ответ сгенерирован нейросетью и может содержать ошибки
Что такое EC2-инстансы в AWS
EC2 (Elastic Compute Cloud) — это основной вычислительный сервис AWS. Это **виртуальные машины в облаке**, которые позволяют арендовать серверные ресурсы вместо покупки физического железа.
Простое объяснение
Представь:
- Без облака: Ты покупаешь сервер за 100,000 рублей, платишь электричество, занимаешь место в дата-центре, ремонтируешь если сломается
- С EC2: Ты платишь только за часы использования. Хочешь 1000 серверов на час? Можешь. Потом выключил — деньги не течёт
Архитектура EC2
AWS Регион (например, eu-west-1)
├── Availability Zone 1
│ └── EC2 Instance ( твой сервер)
├── Availability Zone 2
│ └── EC2 Instance (резервный сервер)
└── Availability Zone 3
└── EC2 Instance (для распределения нагрузки)
Основные компоненты
1. AMI (Amazon Machine Image)
Это шаблон для инстанса — содержит ОС, приложения, конфигурацию:
# Примеры AMI:
- Amazon Linux 2 # Оптимизирована для AWS
- Ubuntu 22.04 # Популярная для Python разработки
- Windows Server # Для .NET приложений
- Кастомная AMI # Твоя конфигурация
2. Типы инстансов (Instance Types)
Разные комбинации CPU, RAM, сетевой производительности:
t2.micro → 1 vCPU, 1 GB RAM (free tier, для тестов)
t3.small → 2 vCPU, 2 GB RAM (для веб-приложений)
m5.large → 2 vCPU, 8 GB RAM (general purpose)
c5.xlarge → 4 vCPU, 8 GB RAM (compute optimized)
r5.2xlarge → 8 vCPU, 64 GB RAM (memory optimized)
p3.8xlarge → GPU (machine learning)
Типы instance families:
- t-series (burstable) — переменная нагрузка, cheap
- m-series (general) — balanced compute/memory
- c-series (compute) — CPU intensive
- r-series (memory) — высокая памяать
- p-series (GPU) — deep learning, rendering
3. EBS (Elastic Block Store)
Хранилище для инстанса — как жёсткий диск:
# Типы EBS:
- gp3 # General purpose, 3000 IOPS по умолчанию
- io2 # High I/O, для БД (20000+ IOPS)
- st1 # HDD, для sequential reads (Big Data)
# Особенности:
- Persistence после shutdown (root volume по умолчанию удаляется)
- Снимки (snapshots) для резервного копирования
- Шифрование KMS
- Auto-scaling по размеру
4. Security Groups (Firewall)
Правила входящего/исходящего трафика:
# Пример: веб-сервер
Inbound Rules:
- HTTP (80) from 0.0.0.0/0
- HTTPS (443) from 0.0.0.0/0
- SSH (22) from 203.0.113.0/24 (только твой офис)
Outbound Rules:
- All traffic to 0.0.0.0/0 (по умолчанию все может уходить)
Жизненный цикл EC2 инстанса
┌─────────┐
│ Pending │ ← Instance запускается
└────┬────┘
│
▼
┌─────────┐
│ Running │ ← Instance работает (платишь за это время)
└────┬────┘
│
├─→ Reboot (перезагрузка, сохранение данных)
├─→ Stop (остановка, данные сохраняются, платишь за EBS)
│ └─→ Start (запуск, но IP может измениться если не Elastic IP)
│
▼
┌──────────────┐
│ Stopped │ ← Не платишь за compute, платишь за storage
└────┬─────────┘
│
▼
┌──────────────┐
│ Terminated │ ← Инстанс удалён (по умолчанию EBS volume тоже удаляется)
└──────────────┘
Реальный пример: развёртывание Python приложения
#!/bin/bash
# User data script для EC2 (запускается при старте)
#!/bin/bash
set -e
# Обновляем систему
sudo yum update -y
# Устанавливаем Python и зависимости
sudo yum install -y python3 python3-pip git nginx
# Клонируем репозиторий
cd /opt
sudo git clone https://github.com/myuser/myapp.git
cd myapp
# Устанавливаем зависимости Python
sudo pip3 install -r requirements.txt
# Запускаем приложение через gunicorn
sudo systemctl start gunicorn
sudo systemctl start nginx
Ценообразование EC2
# На примере t3.small в eu-west-1:
On-Demand → $0.0208 за час (платишь за каждый час)
Spot → $0.0060 за час (дешевле на 70%, но может отключиться)
Reserved → $80 за год (для долгосрочного использования, скидка 70%)
Savings Plan → Гибридный вариант
# Подсчёт:
t3.small on-demand 24/7 на месяц (730 часов):
$0.0208 * 730 = $15.18 в месяц
С резервацией на год: 80 / 12 = $6.67 в месяц
Elastic IP
Обычный IP меняется при restart. Elastic IP — это статический IP:
# Без Elastic IP:
Stop → Start → Public IP меняется ❌
# С Elastic IP:
Stop → Start → Public IP остаётся (платишь $3.65/месяц если не используется)
Интеграция с другими AWS сервисами
# Типичная архитектура:
EC2 instances
├── Auto Scaling Group (автоматически увеличивает/уменьшает количество)
├── Load Balancer (распределяет трафик)
├── RDS (управляемая БД)
├── S3 (файловое хранилище)
├── CloudWatch (мониторинг)
├── IAM Roles (права доступа)
└── CloudFormation (Infrastructure as Code)
Best Practices
При создании EC2:
- ✅ Используй IAM Roles вместо hardcoded credentials
- ✅ Подготавливай User data скрипты для автоматизации
- ✅ Используй Security Groups правильно (минимальный доступ)
- ✅ Снимай snapshots EBS перед изменениями
- ✅ Используй Auto Scaling для высокой доступности
- ✅ Мониторь через CloudWatch
- ❌ Не сохраняй секреты в AMI
- ❌ Не используй root volume для данных (используй отдельные EBS)
Вывод
EC2 инстансы — это основа облачной инфраструктуры AWS. Они позволяют:
- Запустить любое серверное приложение (Python, Java, Node.js)
- Масштабировать от 1 до 1000+ инстансов
- Платить только за использованное (на час)
- Получить высокую доступность через Availability Zones
- Интегрироваться с другими AWS сервисами
Для Python разработчика EC2 + Gunicorn + RDS — это классический stack для production приложений.