Назад | Перейти на главную страницу

Автоматический перезапуск экземпляра EC2 из последнего снимка

У нас есть экземпляры EC2, основанные на EBS, и они содержат состояние (не критическое состояние, но у них есть индексы ElasticSearch, Redis и т. Д.).

Поэтому мы хотим, если это не удастся, создать новый экземпляр, чтобы заменить его как можно более похожим (это означает использование самой последней резервной копии моментального снимка этого корневого тома EBS).

Если бы мы делали это вручную, нам пришлось бы проделать эту непростую процедуру:

  1. Создайте новый том на основе последнего снимка корневого тома EBS;

  2. Запустить новый экземпляр;

  3. Отсоедините корневой том нового экземпляра;

  4. Присоедините том, созданный на шаге 1, как корневой том для нового экземпляра;

В качестве альтернативы мы думаем, что можем создать образ (AMI) на основе последнего снимка и запустить экземпляр EC2 напрямую, используя этот AMI, и в этом случае это будет двухэтапное решение. Это предположение верно?

Но даже если мы сделаем это, насколько мы знаем, это не может быть автоматизировано, поскольку даже если мы используем Load Balancer с Auto Scaling Group, шаблон запуска не может быть настроен на автоматический выбор `` самого последнего '' снимка. для корневого тома нового экземпляра.

Что было бы лучше всего для этого сценария, учитывая требования автоматический запуск нового экземпляра, максимально похожего на текущий запущенный если не получится?

я получил Шаблон CloudFormation и пара лямбд делаю именно то, что тебе нужно. Когда вы создаете стек CloudFormation (CFN), он:

  1. Создайте стек AutoScaling Group из базового AMI (например, Amazon Linux 2). ASG имеет min = 1 / max = 1, т. Е. Единственный экземпляр ASG.
  2. Каждую ночь Lambda переносит этот экземпляр в новый AMI.
  3. Та же Lambda обновила параметр идентификатора AMI стека CloudFormation до последнего моментального снимка.
  4. CFN, в свою очередь, обновляет конфигурацию запуска ASG, используя последний идентификатор AMI.
  5. Если на следующий день инстанс EC2 умирает, он перезапускается из моментального снимка, сделанного прошлой ночью, и все изменения за последние дни сохраняются.
  6. Также ночью запускается еще одна лямбда-функция, которая очищает старые AMI (например, через 14 дней).

Проверьте standard-autohealing.yml Шаблон CloudFormation из моего Репозиторий GitHub.

Надеюсь, это помогает :)