Jak działają obrazy Amazon Machine?

9

Widziałem wiele samouczków na temat tworzenia AMI, ale nigdy tak naprawdę nie zrozumiałem pełnej koncepcji AMI. Jest linkiem do instancji lub jest przechowywany i nigdy nie jest zmieniany. Czy obraz zawiera także lokalną pamięć masową i wszystkie pakiety itp. Zainstalowane w tej instancji, czy też jest to po prostu kopia konfiguracji konkretnej instancji. Dzięki

Czarodziej
źródło

Odpowiedzi:

10

W najprostszej formie AMI to opis maszyny wirtualnej - rodzaj wirtualizacji, architektura (32/64 bity), jądro i urządzenie root. Słowami Amazon:

AMI to szablon zawierający konfigurację oprogramowania (system operacyjny, serwer aplikacji i aplikacje), którą można uruchomić w sprawdzonym środowisku komputerowym Amazon.

Instancje EC2 to maszyny wirtualne działające na sprzęcie Amazon. Aby instancja mogła się uruchomić, wymagana jest minimalna ilość informacji. Ponadto różne typy instancji obsługują różne konfiguracje (np. Niektóre nie obsługują 32-bitowych interfejsów AMI).

Każdy AMI ma identyfikator (np. Ami-a1b2c3d4), a konfiguracji tego AMI nie można zmienić po utworzeniu. (Można jednak zastąpić wiele ustawień w czasie uruchamiania, aw niektórych przypadkach nawet po uruchomieniu instancji).

Jeśli chodzi o wolumin główny, pliki AMI zawierają odniesienie do istniejącego woluminu (np. Odnoszą się do migawki dla instancji wspieranych przez EBS lub do części obrazu w przypadku instancji wspieranych przez S3).

Interfejsy AMI zawierają również pewien stopień sprawdzania błędów - zazwyczaj identyfikator użytkownika wskazujący własność, klucze szyfrujące (które szyfrują obraz) i podpis (w celu weryfikacji integralności obrazu). Możesz dowiedzieć się, czym jest AMI, patrząc na plik manifestu utworzony podczas tworzenia instancji wspieranej przez S3 - jest to po prostu plik zawierający dane i odniesienia do innych elementów (pamięci, jądra itp.).

Obraz odwołuje się do niego jako do mapowania urządzenia blokowego - określa urządzenie (np. / Dev / sda1) i źródło danych (efemeryczne (i części S3, jeśli dotyczy) lub migawka ebs). Ponieważ części S3 są podpisane, a migawki ebs nie mogą być zmieniane (tylko usuwane), uruchomienie instancji z AMI (bez przesłonięcia jej ustawień) powinno zawsze skutkować instancją z tym samym ustawieniem oprogramowania. (Należy pamiętać, że instancje uruchomione z tego samego interfejsu AMI mogą różnić się stanami działania z powodu danych użytkownika lub różnych mapowań urządzeń blokowych (np. Mikro instancje nie mają pamięci efemerycznej, podczas gdy inne typy mają). tutaj dołączone woluminy są przechowywane oddzielnie od AMI, ale AMI odwołuje się w taki sposób, że woluminów nie można zmienić.

Przed uruchomieniem instancji z interfejsu AMI można zastąpić mapowanie urządzeń blokowych (np. W celu dodania dodatkowego woluminu EBS lub innego wolumenu efemerycznego, jeśli typ instancji go obsługuje). W przypadku woluminów EBS po uruchomieniu instancji można odłączyć wolumin główny i dołączyć zupełnie inny wolumin EBS.

Tak więc, aby krótko odpowiedzieć na twoje pytania: Czy link do instancji, czy jest przechowywany i nigdy nie jest zmieniany. Jest przechowywany i nigdy nie zmieniany.

Czy obraz zawiera także lokalną pamięć masową i wszystkie pakiety itp. Zainstalowane w tej instancji, czy też jest to po prostu kopia konfiguracji konkretnej instancji. Obraz obejmuje lokalną pamięć masową i wszystkie pakiety itp. Zainstalowane w tej instancji. (Zwykle jest to tylko wolumin główny, ale interfejs AMI można skonfigurować w celu uruchomienia instancji z wieloma woluminami wypełnionymi).

cyberx86
źródło
Są to zatem odniesienia do EBS instancji, więc jeśli stan EBS zmieni się po utworzeniu AMI, stan AMI również się zmieni?
Wiz
Nie, odnoszą się do migawek EBS, a nie do samych woluminów EBS. Migawki EBS nie mogą się zmienić, nawet jeśli wolumin EBS się zmieni. Jeśli uruchomisz dany interfejs AMI, załaduje on migawkę EBS, do której się odwołuje. Jeśli chcesz, możesz określić inną migawkę EBS podczas uruchamiania instancji lub możesz wymienić wolumin EBS używany po uruchomieniu instancji.
cyberx86,
3

AMI jest w rzeczywistości kopią główną systemu plików root, używaną do uruchamiania nowych instancji EC2, wraz z niektórymi metadanymi, takimi jak architektura. Zawiera pełny system operacyjny i pakiety oprogramowania, które normalnie można znaleźć podczas uruchamiania nowej kopii tej dystrybucji, a także wszystko, co twórca AMI uzna za odpowiedni do dodania.

Jeśli tworzysz interfejs AMI z instancji, w zasadzie tworzysz kopię głównego systemu plików tej instancji, którą można później wykorzystać do utworzenia nowych instancji.

Moja odpowiedź tutaj może również pomóc: https://stackoverflow.com/a/7895489/111286

Eric Hammond
źródło