Обновление EC2-инстанса в AWS: минимум простоев

Быстрые ссылки
Рассмотрите Auto Scaling или балансировщик нагрузки
Обновление EC2 с минимальным простоем
Обновление EC2 без простоев
Вы можете свободно обновлять или понижать on-demand EC2-инстансы. Если текущая машина не справляется с нагрузкой, переход на более мощный тип или класс инстансов поможет приложению работать стабильнее.
Рассмотрите Auto Scaling или балансировщик нагрузки
Auto Scaling — это автоматическое масштабирование количества инстансов по метрикам (CPU, память и т.д.). Load Balancer — сетевой компонент, который равномерно распределяет трафик между инстансами.
Если ваша нагрузка пиковая и она наблюдается лишь в отдельные часы, постоянный большой инстанс будет дорогим решением. Auto Scaling позволяет увеличивать и уменьшать пул машин по мере нужды. Балансировщик нагрузки (обычно ALB или NLB) распределит трафик и обеспечит отказоустойчивость.
Важно: если у вас зарезервированные (reserved) инстансы, переключение между типами может быть ограничено. Convertible Reserved Instances можно обменивать на другие типы, стандартные — нет.
Примечание: вы не обязаны использовать Auto Scaling вместе с балансировщиком — но сочетание даёт гибкость и резервирование.
Обновление EC2 с минимальным простоем
Когда простое выключение инстанса допустимо, самый простой способ — остановить, сменить тип и запустить заново. Это займёт несколько минут и подойдёт для ночного обслуживания или для инстансов вне пиков.
Шаги (минимальный простой):
- Откройте EC2 Management Console.
- Выберите инстанс, затем Instance State > Stop и дождитесь статуса stopped.

- Выберите Instance Settings > Change Instance Type.

- В диалоге укажите новый тип инстанса и подтвердите.

- После изменения: Instance State > Start.
Если у вас несколько инстансов за балансировщиком — обновляйте поочерёдно, чтобы приложение оставалось доступным.
Краткое определение: Stop — безопасная остановка ОС; Start — запуск. Изменение типа требует состояния stopped.
Обновление EC2 без простоев
Для нулевого простоя воспользуйтесь blue/green deployment. Идея: создайте новую инстансу нужного типа, подготовьте конфигурацию и переключите трафик на неё.
Пошаговый план (zero downtime):
- Подготовьте конфигурацию целевой инстансы. Лучше всего иметь автоматизированный build script или custom AMI.
- Если нет готового AMI, создайте image текущего инстанса и запустите новую инстансу из неё.
- В консоли: правый клик на инстансе > Image > Create Image.

- В разделе AMIs выберите созданный образ и нажмите Launch.
- Настройте новую инстансу (проверка зависимостей, конфигурация приложений, health checks).
- Переключите сетевой трафик. Проще всего — изменить ассоциацию Elastic IP (EIP) на новую инстансу.
- В консоли: Elastic IP > Associate Elastic IP Address, укажите новую инстансу.

- Выберите инстанс и нажмите Associate.

Ассоциация EIP фактически перенаправит весь входящий трафик без видимого для пользователей простоя. После успешного переключения убедитесь, что старый инстанс не принимает трафик, и затем корректно завершите его работу.
Опции переключения трафика: EIP, изменение записи в DNS с учётом TTL, переключение target group у балансировщика.
Когда такой подход не сработает
- Stateful-приложения с локальным хранилищем данных (например, базы на локальном диске) потребуют отдельной миграции данных.
- Если вы используете привязанные локальные IP или специфичные сетевые настройки, простая смена EIP может быть недостаточной.
- Если у вас зарезервированные инстансы, вы ограничены контрактом.
Альтернативные подходы
- Миграция на Auto Scaling Group с immutable deployments. Создаёте новую ASG с новым launch template и делаете переключение через нагрузочный балансировщик.
- Контейнеризация приложения (ECS/EKS) — масштабирование и обновления управляются на уровне контейнеров.
- Использование AWS Systems Manager для применения изменений конфигурации без ручной подготовки AMI.
Чек-лист перед обновлением
- Резервная копия данных и снимок томов (EBS snapshot).
- Проверка зависимости (drivers, kernel modules, ENA поддержка для нового типа).
- Тестовый запуск новой инстансы в staging.
- Задайте health check и мониторинг (CloudWatch).
- Подготовьте план отката: как быстро вернуть трафик на старую инстансу.
Критерии приёмки
- Новая инстанса проходит health checks в течение X минут.
- Производительность (latency, CPU/memory) соответствует или лучше, чем у старой.
- Нет ошибок в логах приложения в течение заданного окна после переключения.
Мини-методология (SOP) для обновления с нулевым простоем
- Подготовка: создать AMI или build-скрипт.
- Развертывание: запустить новую инстансу, провести smoke tests.
- Переключение: изменить ассоциацию EIP или обновить target group.
- Наблюдение: мониторинг 15–30 минут за метриками и логами.
- Откат: при критических проблемах вернуть EIP/target group на старую инстансу.
- Удаление: корректно завершить старую инстансу и удалить ненужные AMI/EBS snapshots.
Роли и задачи (кто что делает)
- DevOps: создаёт AMI, настраивает мониторинг, выполняет переключение EIP.
- Разработчики: проверяют совместимость приложения и драйверов с новой инстансой.
- QA: проводит smoke и regression тесты на новой инстансе.
- Менеджмент: даёт окно для изменения в случае влияния на SLA.
Риски и меры снижения
- Несовместимость драйверов -> тестировать в staging и иметь откат.
- Потеря данных при ошибке миграции -> делать EBS snapshots и бэкапы.
- DNS-кэширование клиентов -> использовать низкий TTL перед переключением.
Короткий глоссарий
- Auto Scaling: автоматическое изменение числа инстансов по метрикам.
- Load Balancer: компонент, распределяющий входящий трафик между инстансами.
- Elastic IP (EIP): статический IP, который можно ассоциировать с инстансой.
- AMI: образ машины для запуска новых инстансов.
Итог
Обновление типа EC2-инстанса — простая задача при правильной подготовке. Для минимизации затрат сначала подумайте об Auto Scaling и балансировщике. Если требуется нулевой простой — применяйте blue/green: создайте новую инстансу, переключите EIP или target group и удалите старую инстансу после проверки.
Важно: всегда тестируйте шаги в staging и имейте план отката.
Ключевые шаги: создать AMI, развернуть новую инстансу, переключить трафик, следить за метриками, удалить старую инстансу.
Похожие материалы
Исправить ошибку «Oops! Something went wrong» в YouTube
Экран входа macOS — настройки и советы
Удалить историю Google Bard и отключить её
TinyLetter для блогеров: быстро и просто
Как включить и отключить блокировщик всплывающих окон IE11