AWS Różnica między migawką a AMI

108

Więc mam problem ze zrozumieniem, jaka jest różnica między tymi dwoma.

Jak rozumiem, migawka jest po prostu kopią zapasową dysku twardego, podczas gdy AMI jest kopią zapasową całego systemu (lub instancji powinienem powiedzieć), ale czy cały system nie jest technicznie całkowicie umieszczony na dysku? a jeśli tak jest to nie ma wyraźnej różnicy i czegoś mi brakuje?

Melbourne2991
źródło

Odpowiedzi:

70

Istnieją dwa rodzaje AMI (i odpowiadające im przypadki):

  1. magazyn instancji (czasami nazywany opartym na S3). Są mniej powszechne i nie polecam ich początkującym. AMI magazynu instancji to kopia głównego woluminu magazynu instancji wraz z niektórymi metadanymi, wszystkie zapisane w zasobniku S3 w specjalnym formacie

  2. Rozruch EBS. To prawdopodobnie jest to, czego używasz. EBS uruchomić AMI jest obraz stanu EBS objętości głównego EBS oraz niektóre metadane jak architektura, jądro, nazwa, opis, AMI odwzorowań urządzenie blokowe i inne.

Możesz zrobić migawkę woluminu rozruchowego EBS i przekształcić go w AMI rozruchu EBS, rejestrując go za pomocą odpowiednich metadanych. Najtrudniejszą częścią tego jest określenie poprawnego identyfikatora AKI (jądra), aby poprawnie się uruchamiał.

Eric Hammond
źródło
Dzięki eric, utworzyłem kopię zapasową obrazu AMI i mam możliwość zarówno uruchomienia, jak i zarejestrowania? Nie wiem, jaka jest różnica ...
Melbourne2991
Nie wiem, co masz na myśli, mówiąc o „kopii zapasowej obrazu AMI”.
Eric Hammond
8
Po kliknięciu „utwórz AMI” EC2 tworzy migawkę EBS wolumenu EBS tej instancji i rejestruje ją jako AMI. Możesz uruchamiać nowe instancje, określając ten AMI jako punkt początkowy. Możesz także utworzyć nowe woluminy migawki EBS, jeśli chcesz tylko przejrzeć znajdujące się na niej pliki bez uruchamiania nowej instancji.
Eric Hammond
6
Alternatywnie możesz samodzielnie utworzyć migawkę EBS woluminu EBS, a następnie zarejestrować tę migawkę jako AMI. Jest to nieco trudniejszy sposób tworzenia AMI, ponieważ wymaga znajomości odpowiednich atrybutów rejestracji AMI do ustawienia. „Utwórz AMI” robi to wszystko za Ciebie.
Eric Hammond
1
@ cosbor11 Nie możesz usunąć migawki dla AMI.
Eric Hammond
24

Główna różnica dotyczy rodzaju usługi, o której mowa. Migawka to wolumin EBS, w którym można zapisać stan i ponownie uruchomić komputer z tymi samymi danymi w określonym momencie.

AMI jest podobne, ale dotyczy samych instancji EC2. Nie można wykonać migawki instancji nieobsługiwanej przez ebs, ale można utworzyć jej obraz systemu AMI (obraz systemu).

Generalnie używam migawek EBS jako rozwiązania do tworzenia kopii zapasowych woluminu bazy danych i używam AMI do zapisywania konfiguracji instancji

BrianJakovich
źródło
1
Co się stanie, jeśli mój wolumin zawiera moje bazy danych oraz konfigurację mojej instancji? Co zapisuje AMI, czego nie ma migawka EBS (i odwrotnie)? Dzięki
Melbourne2991
1
AMI można natychmiast uruchomić w nowej instancji. migawkę EBS można skopiować na nowy wolumin (dysk wirtualny). Ten dysk wirtualny może służyć jako podstawa nowej instancji, ale sam w sobie nie jest instancją.
Dan Pritts
16

AMI można utworzyć za pomocą migawki. Na przykład, używając pojedynczej „migawki”, możesz stworzyć wiele AMI, powiedzmy jedno PV i jedno HVM AMI używając tej samej migawki.

Zatem migawka zawiera dane systemu / systemu operacyjnego. AMI to (migawka + metadane maszyny / sprzętu).

Anshu Prateek
źródło
1
jeśli mam AMI, to instancja została z niego utworzona. Czy AMI zawiera dane dotyczące tej instancji? To znaczy, jeśli instancja zawiera pliki tomcat WAR, to AMI, z którego ta instancja została utworzona, zawiera również?
Dejell
1
Jeśli utworzysz AMI z instancji zawierającej tomcat (lub dowolne pliki), to nowo utworzony AMI będzie zawierał te pliki / dane. Każda instancja utworzona dalej z tego AMI będzie miała te pliki. Jednak źródłowy AMI, z którego utworzono instancję, nie będzie ich miał (zakładając, że pliki zostały dodane do instancji po utworzeniu instancji).
Anshu Prateek
15

Ja też byłem zdezorientowany. Oto najprostszy sposób zrozumienia tego:

  • EBS Snapshot bardzo często reprezentuje kopię zapasową określonego wolumenu EBS, może to być dowolny wolumin (wolumin główny, wolumen danych itp.)

  • AMI(Amazon Machine Image) to kopia zapasowa całej instancji EC2. Na przykład przy odpowiedniej konfiguracji możliwe jest utworzenie AMI, który zawiera wiele wolumenów EBS.

To może wydawać się zagmatwane, ale oba są przechowywane jako „migawki EBS”.

Pomyśl tylko w ten sposób:

  • EBS Snapshot to tylko kopia zapasowa danych.
  • AMIjest reprezentacją stanu systemu w określonym czasie. Możesz także uruchomić z niego.
skryvets
źródło
Jeśli więc utworzę migawkę woluminu głównego, czy można użyć tej migawki do uruchomienia instancji?
gaurav parashar
1
Krótka odpowiedź: Nie. Nie można tego zrobić bezpośrednio, używając tylko woluminu, ponieważ jedyną dostępną "opcją ładowania" dla EC2 jest AMI. Można jednak utworzyć AMI z wolumenu i uruchomić instancję z niedawno utworzonego AMI (podobnie jak opcja pośrednia).
skryvets
7

EBS Volumejest dyskiem bazowym za EC2. Snapshotto kopia zapasowa określonego punktu w czasie, volumepodczas gdy AMI jest kopią zapasową całej instancji EC2, która może mieć wiele podłączonych woluminów, dokładnie tak, jak maszyny wirtualne.

Dzięki Packerowi możesz tworzyć zautomatyzowane obrazy maszyn, w tym AMI dla EC2, pliki VMDK / VMX dla VMware, eksport OVF dla VirtualBox itp.

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) 

Migawki mogą służyć do tworzenia kopii zapasowych dysków / woluminów. Jest to przyrostowa operacja tworzenia kopii zapasowych, co oznacza, że ​​za każdym razem, gdy robisz migawkę woluminu, dodawane są tylko nowe zmiany dodane / wprowadzone do woluminu od czasu ostatniej kopii zapasowej (nie cała kopia zapasowa), co pozwala zaoszczędzić czas, miejsce i ostatecznie koszt kopii zapasowej .

Migawki mogą być używane w:

  • Dyski z kopiami zapasowymi regularnie

  • Zmień typ wolumenu, na przykład masz ruch lub odczyty i zapisy i musisz zwiększyć operacje we / wy, aby zmienić z gp2na io1wyższąIOPs

Niestandardowe AMI mogą być używane w:

  • Do odtwarzania po awarii w przypadku, gdy bieżąca instancja EC2 jest uszkodzona i nie może działać bez powodu.

  • Standardowe oprogramowanie firmy AMI, które ma wszystkie zainstalowane oprogramowanie, które upraszcza proces wdrażania (np. Skonfigurowane do łączenia się z `Splunk, ma zainstalowane oprogramowanie do monitorowania i obserwacji, ma zainstalowane docker lub jest skonfigurowane do łączenia Puppet lub Chef podczas uruchamiania)

  • AMI można wykorzystać do łatwego wdrażania aplikacji w różnych regionach.

  • Uaktualnij swój serwer do wyższych lub innych specyfikacji za pomocą wszystkich zainstalowanych programów i ich konfiguracji

  • AMI mogą być publicznie udostępniane na kontach AWS.

Muhammad Soliman
źródło
Twój pierwszy akapit to najwyraźniejsza definicja, jaką do tej pory przeczytałem. Dziękuję Ci!
specialk1st
5

Oto kilka dodatkowych różnic między migawkami AMI i EBS:

1) AMI jest uruchamialny i zawiera łącza do urządzenia głównego oraz może zawierać łącza do migawek innych woluminów danych.

2) Obraz danych zawarty w AMI nie reprezentuje dobrze zdefiniowanego punktu w czasie, chyba że instancja zostanie ponownie uruchomiona, co jest zwykle nie do przyjęcia w środowisku produkcyjnym. Migawki można wykonywać w spójny sposób, ponieważ można kontrolować ich dokładny moment w czasie, więc przed rozpoczęciem migawki można upewnić się, że wszystko jest „gotowe do tworzenia kopii zapasowych”.

3) AMI można utworzyć z istniejących migawek urządzenia głównego dla systemu Linux, ale nie dla systemu Windows.

OK 1
źródło
2

Zgodnie z definicją podaną przez AWS,

AMI to szablon, z którego można uruchomić instancję EC2. Migawka EBS to blokowa kopia woluminu EBS. Wolumin EBS może być woluminem startowym (tj. Zawierającym system operacyjny) lub woluminem tylko do danych (zawierającym na przykład pliki bazy danych). Używasz RegisterImage do tworzenia AMI (z migawki).

Są to dwie różne koncepcje stosowane na różnych poziomach (objętości EBS vs szablony EC2). Istnieją jednak pewne zależności między tymi dwoma koncepcjami.

W przypadku instancji EC2 obsługiwanych przez EBS (tj. Instancji EC2 uruchamianych z woluminu EBS) AMI jest implementowane jako migawka EBS woluminu rozruchowego + kilka metadanych (architektura maszyny - 32 vs 64 bity - typ wirtualizacji - HVM vs PV - itp ...)

Zatem w przypadku instancji EC2 obsługiwanych przez EBS AMI to migawka EBS + plik XML. Możesz nawet stworzyć swój własny AMI na podstawie dowolnej migawki woluminu rozruchowego, który posiadasz.

Ashish Khandelwal
źródło
1

Migawki są tańsze w użyciu jako strategia tworzenia kopii zapasowych, ponieważ gdy masz wiele migawek, płacisz tylko za jedną pełną kopię zapasową, a reszta to w zasadzie tylko różnice i zwykle znacznie mniejsze.

Cary Gordon
źródło
6
Nie dotyczy to rozruchowych plików AMI EBS, ponieważ są to dokładnie migawki EBS plus trochę metadanych. Koszt byłby identyczny.
Eric Hammond
1

Możesz myśleć o AMI jako o ogólnym szablonie dla maszyny z zachowanym systemem operacyjnym i zainstalowanymi komponentami.

Migawka może zawierać wszystko, co robi AMI, ale także zapisuje dane na dysku wolumenu EBS.

To, który z nich zdecydujesz się użyć, będzie ogólnie zależało od tego, czy Twoje instancje są obsługiwane przez EBS i czy chcesz dokładnie odtworzyć maszynę z nienaruszonymi wszystkimi danymi, czy po prostu chcesz mieć ogólny szablon maszyny.

CIGuy
źródło
Więc AMI nie zapisuje wolumenu EBS?
Melbourne2991,
1
Można ustawić AMI tak, aby obejmował jeden lub więcej woluminów EBS, ale te woluminy będą puste podczas rozruchu i nie będą zawierać danych, które zawierała oryginalna maszyna źródłowa.
CIGuy,
Więc AMI to tak naprawdę tylko metadane (nie jestem pewien, czy to właściwy termin)? Na przykład jakiego systemu operacyjnego używasz, rozmiaru instancji itp.? Technicznie powinien mieć rozmiar tylko kilka kb. Biorę to?
Melbourne2991
1
AMI przechowuje również wszelkie programy, które zainstalowałeś na komputerze, opcje konfiguracji poziomu systemu operacyjnego itp., Więc tak naprawdę nie są to tylko metadane, ale tak, są one zwykle znacznie mniejsze niż migawka.
CIGuy
1
Ta odpowiedź jest błędna. AMI zawiera jedną lub więcej migawek. Oznacza to, że odwołuje się do jednej lub więcej migawek (nie ma kopiowania danych), a także zawiera dodatkowe metadane. Dlatego nie możesz usunąć migawki, jeśli jest ona aktualnie używana przez AMI. docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIs.html Zobacz także wkład Erica Hammonda w tym wątku.
Max Barraclough
0

Z definicji dostarczonej przez AWS wyjaśnia różnicę - Amazon Machine Image (AMI) to szablon zawierający konfigurację oprogramowania (na przykład system operacyjny, serwer aplikacji i aplikacje). Z AMI uruchamiasz instancję, która jest kopią AMI działającą jako serwer wirtualny w chmurze. Natomiast w przypadku migawek Można tworzyć kopie zapasowe danych z woluminów EBS w Amazon S3, wykonując migawki z określonego punktu w czasie. Migawki to przyrostowe kopie zapasowe, co oznacza, że ​​zapisywane są tylko bloki na urządzeniu, które uległy zmianie po ostatniej migawce. Gdy usuwasz migawkę, usuwane są tylko dane wyłącznie dla tej migawki.

Sidharth
źródło