AWS Різниця між знімком та AMI


107

Тож у мене виникають проблеми при розробці, що конкретно полягає в різниці між цими двома.

Як я розумію, знімок - це просто резервна копія дискового накопичувача, тоді як AMI - це резервна копія всієї системи (або, наприклад, я повинен сказати), але хіба вся система технічно повністю не знаходиться на диску? і якщо це так, то явної різниці немає, і я щось пропускаю?

Відповіді:


70

Є два типи AMI (і відповідні екземпляри):

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

  2. EBS завантаження. Це, мабуть, те, що ви використовуєте. Завантажувальний AMI EBS - це знімок EBS з обсягом кореня EBS плюс деякі метадані, такі як архітектура, ядро, ім'я AMI, опис, блокування відображень пристроїв тощо.

Ви можете зробити знімок обсягу завантаження EBS і перетворити його в завантажувальний AMI EBS, зареєструвавши його у відповідних метаданих. Найскладніша частина цього - вказівка ​​правильного ідентифікатора (ядра) AKI, щоб він завантажувався правильно.


Завдяки eric, я створив резервну копію зображення AMI, і у мене є можливість як запустити, так і зареєструвати його? Я розгублений, в чому різниця тут ...
Мельбурн2991

Я не знаю, що ви маєте на увазі під "резервною копією зображення AMI".
Ерік Хаммонд

8
Коли ви натискаєте "створити AMI", EC2 створює знімок EBS з обсягу EBS цього примірника і реєструє його як AMI. Ви можете запустити нові екземпляри, вказавши AMI як вихідну точку. Ви також можете створити нові томи знімка EBS, якби просто хотіли переглянути файли на ньому, не запускаючи новий екземпляр.
Ерік Хаммонд

6
Крім того, ви можете створити знімок EBS обсягу EBS самостійно, а потім зареєструвати цей знімок як AMI. Це трохи складніший спосіб створити AMI, оскільки він вимагає, щоб ви знали відповідні атрибути реєстрації AMI для встановлення. "Create AMI" робить це все за вас.
Ерік Хаммонд

1
@ cosbor11 Не можна видалити знімок для AMI.
Ерік Хаммонд

24

Основна різниця - між типом послуги, про яку йдеться. Знімок має обсяг EBS, де ви можете зберегти стан і перезавантажити ті самі дані в певний момент часу.

AMI схожий, але це для самих випадків EC2. Ви не можете зробити знімок екземпляра, який не підтримується ebs, але ви можете створити AMI (зображення системи) одного.

Як правило, я використовую знімки EBS в якості резервного рішення для обсягу бази даних, і я використовую AMI для збереження конфігурації екземпляра


1
Що робити, якщо мій том містить мої бази даних, а також конфігурацію мого примірника? Що AMI заощаджує, що знімок EBS не робить (і навпаки)? Спасибі
Мельбурн2991

1
AMI можна негайно запустити до нового екземпляра. знімок EBS можна скопіювати на новий том (віртуальний диск). Цей віртуальний диск може бути використаний в якості основи для нового екземпляра, але це не сам екземпляр.
Dan Pritts

16

AMI можна створити за допомогою знімка. Наприклад, за допомогою одного "знімка" ви можете створити кілька AMI, скажімо, один PV і HVM AMI, використовуючи один і той же знімок.

Отже, на знімку є дані системи / ОС. AMI є (знімок + метадані машини / обладнання).


1
якщо у мене є AMI, то з нього був створений екземпляр. Чи включає AMI дані про цей екземпляр? Я маю на увазі, якщо екземпляр містить Tomcat WAR-файли, включається також AMI, з якого створений цей екземпляр?
Dejell

1
Якщо ви створюєте AMI з екземпляра, що містить tomcat (або будь-які файли), то новий створений AMI буде містити ці файли / дані. Будь-який екземпляр, створений далі з цього AMI, матиме ці файли. Однак джерело AMI, з якого ви створили екземпляр, не матиме їх (якщо припустити, що ви додали файли до примірника після створення екземпляра).
Аншу Пратеек

15

Мене це також бентежило. Ось найпростіший спосіб зрозуміти це:

  • EBS Snapshot дуже часто представляє резервну копію конкретного тома EBS, це може бути будь-який обсяг (Root volume, volume data тощо)

  • AMI(Amazon Machine Image) - це резервна копія цілого екземпляра EC2. Наприклад, при правильній конфігурації можна створити AMI, який включає в себе кілька томів EBS.

Зараз це може здатися заплутаним, але вони обидва зберігаються як "знімки EBS".

Просто подумайте так:

  • EBS Snapshot це просто резервне копіювання даних.
  • AMIце представлення стану системи в конкретний час. Ви також можете завантажуватися з нього.

Отже, якщо я створив знімок кореневого тома, чи можна цей знімок використовувати для запуску екземпляра?
gaurav parashar

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.


2

Відповідно до визначення, наданого AWS,

AMI - це шаблон, з якого можна запустити екземпляр EC2. Знімок EBS - це копія на рівні блоку тома EBS. Об'єм EBS може бути томом завантаження (тобто містить операційну систему) або томом, що містить лише дані (наприклад, містять файли бази даних). Ви використовуєте RegisterImage для створення AMI (зі знімка).

Це дві різні концепції, застосовані на різних рівнях (обсяги EBS проти шаблонів EC2). Однак між цими двома концепціями є деякі залежності.

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

Отже, для екземплярів, підтримуваних EBS EC2, AMI - це знімок EBS + файл XML. Ви навіть можете створити свій власний AMI на основі будь-якого знімка завантажуваного об'єму.


1

Знімки дешевше використовувати в якості стратегії резервного копіювання, тому що, коли у вас є кілька знімків, ви платите лише за один повний бекап і решта, по суті, просто відрізняються і зазвичай набагато менші.


6
Це не відповідає дійсності завантажувальних AMI EBS, оскільки вони є саме знімками EBS плюс невеликими метаданими. Витрати були б ідентичними.
Ерік Хаммонд

1

Ви можете вважати AMI як загальний шаблон для машини з ОС та встановленими компонентами, що зберігаються.

Знімок може включати в себе все, що робить AMI, але також зберігає дані на диску з обсягом EBS.

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


Отже, AMI не економить обсяг EBS?
Мельбурн2991

1
AMI можна встановити так, щоб він включав один або більше томів EBS, але ці томи будуть пустими під час завантаження, вони не містять даних, які містила оригінальна машина-джерело.
CIGuy

Отже, AMI - це насправді лише метадані (не впевнені, чи це правильний термін)? Як і яку ОС ви використовуєте, розмір екземпляра тощо? Технічно це має бути лише кілька кбіт, я його беру?
Мельбурн2991

1
AMI також зберігає будь-які програми, встановлені на машині, параметри конфігурації рівня тощо тощо, тому це насправді не лише метадані, але так, вони зазвичай набагато менші, ніж знімки.
CIGuy

1
Ця відповідь неправильна. AMI включає один або кілька знімків. Тобто він посилається на один або кілька знімків (копіювання даних немає), а також містить деякі додаткові метадані. Ось чому ви не можете видалити знімок, якщо він використовує поточний AMI. docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIs.html Дивіться також внески Еріка Хаммонда в цій темі.
Макс

0

З визначення, яке надає AWS, з'ясовується відмінність - зображення Amazon Machine Image (AMI) - це шаблон, що містить конфігурацію програмного забезпечення (наприклад, операційну систему, сервер додатків та програми). Від AMI ви запускаєте екземпляр, який є копією AMI, що працює як віртуальний сервер у хмарі. Тоді як для знімків Ви можете створити резервну копію даних про ваші томи EBS на Amazon S3, зробивши знімки в момент часу. Знімки - це додаткові резервні копії, а це означає, що зберігаються лише блоки на пристрої, які змінилися після останнього знімка. Коли ви видаляєте знімок, видаляються лише ті дані, які є виключно для цього знімка.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.