AWS Различия между снимком состояния и AMI

108

Так что у меня возникли проблемы с определением, в чем конкретно разница между этими двумя.

Насколько я понимаю, моментальный снимок - это просто резервная копия жесткого диска, тогда как AMI - это резервная копия всей системы (или экземпляра, я бы сказал), но разве вся система технически не полностью расположена на диске? и если это так, то четкой разницы нет, и я чего-то упускаю?

Мельбурн2991
источник

Ответы:

70

Есть два типа AMI (и соответствующие экземпляры):

  1. instance-store (иногда называемый S3-based). Они встречаются реже, и я не рекомендую их новичкам. AMI хранилища экземпляров - это копия корневого тома хранилища экземпляров плюс некоторые метаданные, все сохраненные в корзине S3 в специальном формате.

  2. EBS boot. Вероятно, это то, что вы используете. Загрузочный AMI EBS - это снимок EBS корневого тома EBS плюс некоторые метаданные, такие как архитектура, ядро, имя AMI, описание, сопоставления блочных устройств и т. Д.

Вы можете сделать снимок загрузочного тома EBS и превратить его в загрузочный AMI EBS, зарегистрировав его с соответствующими метаданными. Самая сложная часть этого - указать правильный идентификатор AKI (ядра), чтобы оно правильно загружалось.

Эрик Хэммонд
источник
Спасибо, Эрик, я сделал резервную копию образа AMI, и у меня есть возможность запустить и зарегистрировать его? Я не понимаю, в чем разница ...
Мельбурн,
Я не понимаю, что вы имеете в виду под «резервным копированием образа AMI».
Эрик Хаммонд
8
Когда вы нажимаете «создать AMI», EC2 создает моментальный снимок EBS тома EBS этого экземпляра и регистрирует его как AMI. Вы можете запускать новые экземпляры, указав этот AMI в качестве отправной точки. Вы также можете создать новые тома моментального снимка EBS, если хотите просто просмотреть файлы на нем, не запуская новый экземпляр.
Эрик Хаммонд
6
В качестве альтернативы вы можете создать моментальный снимок EBS тома EBS самостоятельно, а затем зарегистрировать этот моментальный снимок как AMI. Это немного более сложный способ создания AMI, поскольку он требует, чтобы вы знали, какие атрибуты регистрации AMI нужно установить. «Create AMI» сделает все это за вас.
Eric Hammond
1
@ cosbor11 Вы не можете удалить снимок для AMI.
Эрик Хаммонд,
24

Основное различие заключается между типом упомянутой услуги. Моментальный снимок тома EBS, где вы можете сохранить состояние и перезагрузиться с теми же данными в определенный момент времени.

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

Обычно я использую снимки состояния EBS в качестве решений для резервного копирования тома базы данных и использую AMI для сохранения конфигурации экземпляра.

Брайан Якович
источник
1
Что, если мой том содержит мои базы данных, а также конфигурацию моего экземпляра? Что сохраняет AMI, чего не сохраняет снимок EBS (и наоборот)? Спасибо
Melbourne2991
1
AMI можно немедленно запустить в новый экземпляр. снимок EBS можно скопировать на новый том (виртуальный диск). Этот виртуальный диск можно использовать в качестве основы для нового экземпляра, но он не является экземпляром сам по себе.
Дэн Приттс,
16

AMI можно создать с помощью снимка. Например, используя один «моментальный снимок», вы можете создать несколько AMI, скажем, один PV и один HVM AMI, используя один и тот же моментальный снимок.

Итак, снимок содержит данные о системе / ОС. AMI - это (снимок + метаданные машины / оборудования).

Аншу Пратик
источник
1
если у меня есть AMI, значит, из него был создан экземпляр. Включает ли AMI данные об этом экземпляре? Я имею в виду, что если экземпляр содержит файлы WAR Tomcat, AMI, из которого был создан этот экземпляр, также включает?
Dejell
1
Если вы создаете AMI из экземпляра, содержащего tomcat (или любые файлы), то новый созданный AMI будет содержать эти файлы / данные. Любой экземпляр, созданный в дальнейшем из этого AMI, будет иметь эти файлы. Однако в исходном AMI, из которого вы создали экземпляр, их не будет (при условии, что вы добавили файлы в экземпляр после создания экземпляра).
Anshu Prateek
15

Меня это тоже смутило. Вот самый простой способ понять это:

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

  • AMI(Образ машины Amazon) - это резервная копия всего экземпляра EC2. Например, при правильной настройке можно создать AMI, включающий несколько томов EBS.

Это может показаться странным, но они оба хранятся как «снимки состояния EBS».

Подумайте об этом:

  • EBS Snapshot это просто резервная копия данных.
  • AMIпредставляет собой представление состояния системы в определенное время. Вы также можете загрузиться с него.
скрывец
источник
Итак, если я создал снимок корневого тома, можно ли использовать этот снимок для запуска экземпляра?
гаурав парашар
1
Краткий ответ: нет. Это невозможно сделать напрямую, используя только том, поскольку единственный доступный «вариант загрузки» для EC2 - это AMI. Однако вы можете создать AMI из тома и запустить экземпляр из недавно созданного AMI (как косвенный вариант).
скрывец
7

EBS Volumeбазовый диск за EC2. Snapshot- это резервная копия на определенный момент времени, volumeа AMI - это резервная копия всего экземпляра EC2, который может иметь несколько подключенных томов, точно так же, как виртуальные машины.

С помощью Packer вы можете создавать автоматизированные образы машин, включая AMI для EC2, файлы VMDK / VMX для VMware, экспорт OVF для VirtualBox и т. Д.

EC2  <-- EBS Volume (Boot) + EBS Volume 
                        ^
                        |
                     Snapshot (only of specific volume)       
                        ^
                        |
                       AMI (Combined snapshots of all volumes, snapshot must have boot volume) 
                        ^
                        | 
                  Launch a new Instance (same installed softwares and configs, different specs) 

Снимки можно использовать для резервного копирования дисков / томов. Это операция инкрементного резервного копирования, что означает, что каждый раз, когда вы делаете снимок тома, он будет добавлять только новые изменения, добавленные / внесенные в том с момента последнего резервного копирования (а не всю резервную копию), что экономит время, пространство и, в конечном итоге, затраты .

Снимки можно использовать в:

  • Резервное копирование дисков регулярно

  • Измените тип тома, например, у вас есть трафик или операции чтения и записи, и вам нужно увеличить количество операций ввода-вывода, чтобы вы изменили с gp2на io1с более высокимIOPs

Пользовательские AMI можно использовать в:

  • Для аварийного восстановления в случае, если текущий запущенный экземпляр EC2 поврежден и не может работать без причины.

  • Стандартные AMI компании, в которых установлено все необходимое программное обеспечение, которое упрощает процесс развертывания (например, настроено для подключения к Splunk, установлено программное обеспечение для мониторинга и наблюдения, установлено докер или настроено для подключения Puppet или Chef при запуске)

  • AMI можно использовать для простого развертывания ваших приложений в разных регионах.

  • Обновите свой сервер до более высоких или других спецификаций со всем установленным программным обеспечением и их конфигурациями

  • AMI могут быть общедоступными в аккаунтах AWS.

Мухаммад Солиман
источник
Ваш первый абзац - самое четкое определение, которое я читал до сих пор. Спасибо!
specialk1st
5

Вот еще несколько различий между снимками состояния AMI и EBS:

1) AMI является запускаемым и содержит ссылки на корневое устройство и может содержать ссылки на снимки состояния других томов данных.

2) Образ данных, содержащийся в AMI, не представляет четко определенный момент времени, если только экземпляр не перезагружен, что обычно неприемлемо для производственной среды. Моментальные снимки можно делать согласованным образом, поскольку можно контролировать их точный момент времени, поэтому перед запуском моментального снимка можно убедиться, что все «готово для резервного копирования».

3) AMI можно создать из существующих снимков корневого устройства для Linux, но не для Windows.

ОК1
источник
2

Согласно определению, предоставленному AWS,

AMI - это шаблон, из которого вы можете запустить экземпляр EC2. Снимок EBS - это копия тома EBS на уровне блоков. Том EBS может быть загрузочным томом (например, содержащим операционную систему) или томом, содержащим только данные (например, содержащим файлы базы данных). Вы используете RegisterImage для создания AMI (из снимка).

Это две разные концепции, применяемые на разных уровнях (тома EBS и шаблоны EC2). Однако между этими двумя концепциями есть некоторые зависимости.

Для инстансов EC2, поддерживаемых EBS (т. Е. Инстансов EC2, которые загружаются с тома EBS), AMI реализуется как снимок EBS загрузочного тома + пара метаданных (архитектура машины - 32 против 64 бита - тип виртуализации - HVM vs PV - и т.д ...)

Итак, для инстансов EC2, поддерживаемых EBS, AMI - это снимок EBS + файл XML. Вы даже можете создать свой собственный AMI на основе любого снимка загрузочного тома, которым вы владеете.

Ашиш Хандельвал
источник
1

Моментальные снимки дешевле использовать в качестве стратегии резервного копирования, потому что, когда у вас есть несколько снимков, вы платите только за одну полную резервную копию, а остальные, по сути, представляют собой просто различия и обычно намного меньше.

Кэри Гордон
источник
6
Это неверно для загрузочных AMI EBS, поскольку они представляют собой в точности снимки состояния EBS с небольшими метаданными. Расход будет идентичным.
Eric Hammond
1

Вы можете думать об AMI как об общем шаблоне для машины с сохраненной ОС и установленными компонентами.

Снимок может включать все, что делает AMI, но также сохраняет дисковые данные тома EBS.

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

CIGuy
источник
Значит, AMI не сохраняет объем EBS?
Melbourne2991
1
AMI может быть настроен на включение одного или нескольких томов EBS, но эти тома будут пустыми при загрузке, они не будут содержать данных, которые содержались на исходной исходной машине.
CIGuy
Значит, AMI - это действительно просто метаданные (не уверен, что это правильный термин)? Например, какую ОС вы используете, размер экземпляра и т. Д.? Технически он должен быть размером всего в несколько килобайт, я так понимаю?
Melbourne2991
1
AMI также хранит любые программы, которые вы установили на машине, параметры конфигурации на уровне ОС и т.д., так что на самом деле это не просто метаданные, но да, они обычно намного меньше, чем снимок.
CIGuy
1
Это неверный ответ. AMI включает один или несколько снимков. То есть он ссылается на один или несколько снимков (без копирования данных), а также содержит некоторые дополнительные метаданные. Вот почему вы не можете удалить снимок, если он в настоящее время используется AMI. docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIs.html См. также статьи Эрика Хаммонда в этой теме.
Макс Барраклаф
0

Из определения, предоставленного AWS, проясняется разница: образ машины Amazon (AMI) - это шаблон, который содержит конфигурацию программного обеспечения (например, операционную систему, сервер приложений и приложения). Из AMI вы запускаете экземпляр, который является копией AMI, работающей как виртуальный сервер в облаке. В то время как для моментальных снимков. Вы можете выполнить резервное копирование данных на своих томах EBS в Amazon S3, сделав моментальные снимки. Снимки представляют собой инкрементные резервные копии, что означает, что на устройстве сохраняются только те блоки, которые были изменены после вашего последнего снимка. Когда вы удаляете снимок, удаляются только данные, относящиеся только к этому снимку.

Сидхарт
источник