Как работают Amazon Machine Images?

9

Я видел много учебников и подобных по созданию AMI, но я никогда не понимал полную концепцию AMI. Ссылка на экземпляр, или она хранится и никогда не изменяется. Кроме того, включает ли образ локальное хранилище и все пакеты и т. Д., Установленные в этом экземпляре, или это просто копия конфигурации конкретного экземпляра. Спасибо

волшебник
источник

Ответы:

10

В своей простейшей форме AMI - это описание виртуальной машины - тип виртуализации, архитектура (32/64 бит), ядро ​​и корневое устройство. По словам Амазонки:

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

Экземпляры EC2 - это виртуальные машины, работающие на оборудовании Amazon. Для запуска экземпляра требуется минимальный объем информации. Кроме того, разные типы экземпляров поддерживают разные конфигурации (например, некоторые не поддерживают 32-битные AMI).

Каждый AMI имеет идентификатор (например, ami-a1b2c3d4), и конфигурация этого AMI не может быть изменена после создания. (Однако вы можете переопределить многие параметры во время запуска или, в некоторых случаях, даже после запуска экземпляра).

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

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

Изображение ссылается на него как на отображение блочного устройства - оно указывает устройство (например, / dev / sda1) и источник данных (эфемерные (и части S3, если применимо) или ebs-snapshot). Поскольку части S3 подписаны, а снимки ebs-снимков не могут быть изменены (только удалены), запуск экземпляра из AMI (без переопределения его настроек) всегда должен приводить к экземпляру с той же настройкой программного обеспечения. (Обратите внимание, что экземпляры, запущенные из одного и того же AMI, по-прежнему могут отличаться в своих рабочих состояниях из-за пользовательских данных или разных отображений блочных устройств (например, микроэкземпляры не имеют эфемерного хранилища, в то время как другие типы экземпляров делают это). здесь прикрепленные тома хранятся отдельно от AMI, но ссылаются на AMI таким образом, что тома не могут быть изменены.

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

Итак, чтобы кратко ответить на ваши вопросы: это ссылка на экземпляр, или она хранится и никогда не менялась. Он хранится и никогда не изменяется.

Кроме того, включает ли образ локальное хранилище и все пакеты и т. Д., Установленные в этом экземпляре, или это просто копия конфигурации конкретного экземпляра. Образ включает локальное хранилище и все пакеты и т. Д., Установленные в этом экземпляре. (Как правило, это просто корневой том, но AMI можно настроить для запуска экземпляра с несколькими заполненными томами).

cyberx86
источник
Таким образом, они являются ссылками на EBS экземпляра, поэтому, если состояние EBS изменится после создания AMI, состояние AMI также изменится?
Wiz
Нет, они ссылаются на снимки EBS, а не на сами тома EBS. Снимки EBS не могут измениться, даже если изменяется том EBS. Если вы запустите данный AMI, он загрузит снимок EBS, на который он ссылается. При желании вы можете указать другой снимок EBS, который будет использоваться при запуске экземпляра, или вы можете заменить том EBS, используемый после запуска экземпляра.
cyberx86
3

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

Если вы создаете AMI из экземпляра, вы в основном создаете копию корневой файловой системы этого экземпляра, которая впоследствии может быть использована для создания новых экземпляров.

Мой ответ здесь также может помочь: https://stackoverflow.com/a/7895489/111286

Эрик Хаммонд
источник