2015-01-02 3 views
0

У меня есть AM2 AMI, из которого я создаю экземпляры для использования для выполнения сборок. Теперь мне нужно изменить этот AMI, потому что мне нужна дополнительная программа, установленная на нем. То, что я хочу сделать, это заставить мой AMI указать другой снимок для использования в качестве его корневого диска (моментальный снимок с установленной новой программой), и все будет хорошо и хорошо. Но я не могу найти способ сделать это. Кто-то из Amazon на форумах сказал, что это невозможно, но я не уверен. Итак, я хотел спросить здесь.Обновление корневого диска EC2 AMI

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

+1

Я не эксперт или что-то еще, но не AMI - это, по сути, образ корневого диска экземпляра? Если это так, для AMI не имеет смысла указывать на «моментальный снимок» для использования в качестве его корневого диска; новому экземпляру, созданному из AMI, будет назначен новый том, который будет использоваться в качестве его корня. Если я прав, то единственным решением является сохранение нового AMI из работающего экземпляра с новой программой. – millinon

+0

Спасибо, что сломал это так; Я думаю ты прав. – gfree

+0

Вы, вероятно, поняли это сами, @gfree, но вы можете захотеть поместить идентификатор AMI, который используют ваши скрипты, - за пределами указанных скриптов (например, в среде), поэтому будет только одно место, которое вам нужно будет изменить, когда вы пойдите с новым AMI. Извините, если я сказал очевидное. – boardrider

ответ

0

вы можете построить частный AMI из существующего экземпляра ec2 (конечно, вы также можете его публиковать). Затем вы можете запустить новый экземпляр ec2 из «My AMI» со всем установленным приложением/пакетом напрямую.

Посмотрите на этот документ

Amazon Machine Images (AMI)

Есть новая функция, такие как Docker введенный AWS в прошлом месяце, но он не готов к публике использовать в данный момент.

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

Если вам необходимо обновить конфигурационный файл, после создания нового AMI я рекомендую создать триггер CI (например, через Jenkins). запустите команду awscli в скрипте, она легко обновит ваш файл конфигурации. Все эти задачи, включая создание нового AMI, файл конфигурации обновления и т. Д., Можно выполнить под Jenkins/bamboo автоматически.

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

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

+0

Да, я знаю это. Но это приводит к появлению нового идентификатора AMI, который я не хочу, потому что тогда мне нужно обновить свой код или файл конфигурации. Если я могу запустить «Alias» или что-то, вместо AMI ID, это тоже будет хорошо. – gfree

+0

см. Мое обновление, вы можете попробовать по cloudformation. – BMW