Ошибка 1: Регион по умолчанию для production
Проблема:
- Задержка (latency) 80–120 мс вместо 10–30 мс
- Нарушение GDPR — данные граждан ЕС хранятся вне ЕС
- Транзитный трафик через Атлантику — дополнительные расходы
Решение: Перед созданием ресурсов всегда выбирайте регион явно. Для ЕС — eu-west-1 (Ирландия) или eu-central-1 (Франкфурт). Зафиксируйте регион в AWS CLI:
aws configure set region eu-central-1
Ошибка 2: Security Group с SSH открытым для всего интернета в production
Проблема: Порт 22, открытый для всего интернета — это постоянная атака brute-force. Боты сканируют весь IPv4 за несколько часов.
Решение для production:
- Ограничьте Source только вашим IP:
YOUR.IP.ADDRESS.HERE/32 - Используйте AWS Systems Manager Session Manager — SSH-доступ без открытых портов
- Настройте EC2 Instance Connect — временный доступ через консоль
Ошибка 3: Забытые (running) ресурсы и неожиданный счёт
Проблема: EC2, RDS, NAT Gateway, Elastic IP — тарифицируются, пока запущены, даже если не используются. Elastic IP стоит денег, когда он выделен, но не привязан к запущенному инстансу.
Решение:
- После учёбы: EC2 → Instance → Terminate (не просто Stop — при Stop EBS-том продолжает тарифицироваться)
- RDS → Delete (и не создавайте final snapshot, если он не нужен)
- Освободите Elastic IPs: EC2 → Elastic IPs → Release
- Настройте AWS Budget с порогом $5/месяц и email-оповещением — это поймает забытые ресурсы
- Проверяйте Billing Dashboard еженедельно
Ошибка 4: Работа под root-аккаунтом
Проблема:
- Root аккаунт имеет неограниченные права — ошибка или взлом приводят к катастрофе
- Нельзя настроить детализированные права (IAM Policies)
- Нельзя создать Access Keys для специфичных задач
Решение:
- Войдите под root один раз
- Создайте IAM User с правами AdministratorAccess и включите MFA
- Больше никогда не используйте root для повседневных задач
- На root-аккаунт тоже включите MFA
Ошибка 5: Access Keys в коде или git-репозитории
aws_access_key_id='AKIA...' или в .env файле без .gitignore.
Проблема: Боты сканируют GitHub на наличие AWS ключей 24/7. AWS сами мониторят Partner Event Buses и отзывают скомпрометированные ключи — но к этому времени злоумышленники уже могут запустить GPU-кластер на майнинг за ваш счёт.
Решение:
# Никогда не коммитьте эти файлы!
# .gitignore
.env
*.pem
*.ppk
aws_credentials*
- Для локальной разработки:
aws configure— сохраняет ключи в~/.aws/credentials - Для CI/CD: переменные окружения (GitHub Secrets, GitLab CI Variables)
- Для EC2: IAM Role — вообще без Access Keys
- Если ключ утёк: немедленно деактивируйте его в IAM → Users → Security credentials
Ошибка 6: Auto-assign Public IP отключён (из лекции)
Проблема: При создании EC2 не включили Auto-assign Public IP. Инстанс получил только приватный IP внутри VPC, недоступный из интернета.
Решение:
- При создании нового инстанса: Network settings → Auto-assign Public IP: Enable
- Для уже запущенного инстанса без публичного IP: выделите Elastic IP и привяжите к инстансу (EC2 → Elastic IPs → Allocate → Associate)
- Проверьте, что подсеть публичная (имеет маршрут через Internet Gateway)