У меня есть инстанс Amazon EC2 на базе EBS (m4.xlarge
) в рабочем состоянии. Этот, скажи example
уже некоторое время используется и находится в таком состоянии, которое мы хотели бы иметь для всех наших будущих экземпляров. Какой из следующих двух подходов был бы более рентабельным?
Снимок: создать снимок example
. Затем каждый раз, когда требуется новый экземпляр, создавайте новый том из моментального снимка и присоединяйте его к экземпляру.
AMI: создать изображение из example
. В этом образе есть все необходимое, так что продолжайте запускать новые экземпляры из этого образа.
Какой из них будет более рентабельной стратегией в долгосрочной перспективе? Есть ли последствия между двумя подходами? Есть ли другие способы достичь той же цели?
Вопрос основан на неполной информации.
AMI состоит из одного или нескольких снимков, которые оплачиваются точно так же, как и любой другой снимок, плюс несколько байтов метаданных. Нет документации о плате за хранение метаданных, о которых я знаю. Если это подлежит оплате, это будет такая небольшая плата, что она останется незамеченной.
Если вы собираетесь создавать новые экземпляры, вам нужно начать с AMI. Вы не можете создать экземпляр без него. Когда вы запускаете инстансы, вы всегда выберите AMI, даже если это AMI с установленной на нем базовой ОС.
Итак, в отношении стоимости нет значимой разницы, а в отношении AMI нет значимой альтернативы ... по крайней мере, для подготовки на основе снимков. Я имею в виду, что вы можете хранить сжатые архивы tar или необработанные образы дисков в своих файлах и извлекать их на диски, но это далеко не практические варианты.
Многие возразят, что, особенно в облачной среде, лучшим подходом к предоставлению на основе снимков / образов является использование такого инструмента, как Ansible, для автоматического предоставления ваших машин, начиная с базовой установки ОС и заканчивая работающей системой со всеми зависимостями и код на месте - который позволяет вашей конфигурации существовать как набор воспроизводимых шагов, которыми вы можете управлять в системе контроля версий.
Конечно, «автоматически» звучит как волшебство. Мы не говорим о магии, мы говорим об автоматическом выполнении заранее определенного набора шагов, которые проверены и заведомо работают и дают желаемый результат.
Вначале выполнение всей этой настройки и тестирования, вероятно, потребует больше работы, но в конечном итоге идея состоит в том, что это будет гораздо более плавная поездка, потому что вы точно знаете, как ваши системы должны работать так, как они должны быть.
Я не собираюсь утверждать это как превосходное в своем ответе, но, как старая собака из старой школы, этот новый трюк растет во мне.