@springimport

Как правильно делать резервные копии EC2?

Для копирования использую рабочий метод, но не самый изящный: раз в месяц создаю новый image инстанса ec2 и называю его project-1,2,3... Знаю что есть snapshot и что снимки как раз сделаны для резервного копирования. Только когда игрался с ними, то обнаружил что при восстановлении теряется kernel id. Да, его как-то можно найти и восстановить. Но мне не нравится этот путь потому что нет уверенности что в нужный момент получится восстановить копию.

Объясните на пальцах, как правильно делать копии без больших сложностей?
  • Вопрос задан
  • 71 просмотр
Пригласить эксперта
Ответы на вопрос 1
@yellowmew
Cloud infrastructure, monitoring engineer. SRE
очень, очень странно что за год никто не ответил на этот вопрос, даже и не знаю, чувствую себя некромантом.

В общем-то, если не учитывать бестпрактисез - вы делаете единственно доступным вам правильным способом.
Snapshot - это резервное копирование диска, не виртуальной машины.
Бэкапить машину полностью, включая kernelid и другие настройки - это image (AMI)

Бестпрактиc, правда, не такой
Подготовка кода + скрипты настройки -> подготовка артефактов -> запуск машины
Подготовка кода + скрипты и подготовка артефактов
Здесь вы или подготавливаете артефакты(например zip архив в S3) с кодом и соответствующими ему скриптами, которые заставляют этот код работать на машине
И, опционально, подготавливаете AMI
Это рекомендованный способ во многих случаях. По сути вы сейчас делаете практически то же самое, но создаете AMI после публикации и стабилизации кода и настроек (правильно - до, и тестировать что получилось) . Кроме того ваш способ может привести к сюрпризам в будущем, поскольку вы накатываете изменения на уже существующую машину и какие-то настройки сделанные сейчас будут мешать работать будущим версиям.
Еще одна альтернатива - вообще не готовить AMI. Фиксировать версию кода и настроек(настроечных скриптов). Готовить из них артефакты(или просто git clone из репозитория по версии) и проводить все действия по настройке прямо на старте машины. У вас не будет некоей AMI которая привязана к вашему аккаунту - у вас будут скрипты которые можно запустить на любом аккаунте без промежуточного шага.
Инструменты:
подготовка AMI: packer, cloudformation
запуск инстанса: terraform, cloudformation
скрипты настройки: все что нравится, от банальных bash скриптов до ansible,chef,puppet, etc..
Настройка машины при запуске: cloud-init
CloudFormation - встроенный инструмент в AWS, но он сложноват в сравнении с packer и terraform
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы