EC2 Обновить мой существующий AMI


18

Я использую Elastic Load Balancing для балансировки нагрузки моей Auto Scaling Group , для этого у меня есть частный AMI, в котором мой сервер приложений (Tomcat) и мое веб-приложение развернуты на нем как война ... Теперь все работает нормально ... что если мне нужно изменить конфигурацию Tomcat на моем AMI . Разве это не потребует запуска моего AMI -> Вход в систему + Изменение конфигурации Tomcat -> Создать новый AMI -> Удалить старый AMI Я не думаю, что создание нового AMI - это решение, поскольку для этого потребуется обновить мой автоматический масштаб Группа, чтобы добавить мой новый AMI

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

Ответы:


5

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

То, что вы поместите в скрипт, зависит от того, как вы управляете своей конфигурацией на уровне файловой системы. Я лично помещаю свои файлы конфигурации в репозиторий Mercurial и просто делаю, pullчтобы обновить его.


Я думаю, что ваш ответ действителен, но, на мой взгляд, он хакерский ... Нет ли способа просто обновить мой образ AMI, сохраняя тот же идентификатор AMI?
— Хади Салем,

3
К сожалению, я не думаю, что это возможно. Из документа Amazon: «Идентификатор AMI связан с физическими битами в изображении. Чтобы защитить пользователей от изменения изображений, мы требуем, чтобы вы повторно зарегистрировали экземпляры AMI экземпляра Amazon EC2 после повторного сопоставления».
— Дэвид Левеск

Невозможно изменить существующий образ AMI. Вы должны создать новый.
— Мэтт Хаузер

IMO развертывание конфигурации с использованием пользовательских данных более элегантно. Люди склоняются в сторону установки сервисов при создании экземпляров тоже. Вы можете также захотеть использовать шаблон CloudFormation.
— Эдвин

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

3

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

Это общая архитектура для загрузки приложения, конфигурации и данных, скажем, с S3 при запуске.


+1 за примечание об архитектуре Tid-Bit
— Jmoney38

0

Это похоже на старый пост. Но если вы все еще находитесь в том же затруднительном положении, вы можете рассмотреть возможность использования Windows AMI с поддержкой хранилища экземпляров (Bundled Task). Он также похож на AMI, но у вас больше контроля над самим изображением, поскольку вы практически создаете само изображение и сохраняете его в корзине S3. Это позволит вам время от времени обновлять базовый образ вашего AMI без необходимости создавать новый AMI (по крайней мере, я так понимаю).

https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/Creating_InstanceStoreBacked_WinAMI.html?icmpid=docs_ec2_console


К сведению ... «Единственные AMI-файлы Windows, которые могут быть поддержаны хранилищем экземпляров, - это Windows Server 2003. Экземпляры, поддерживаемые хранилищем экземпляров, не имеют доступного дискового пространства, необходимого для более поздних версий Windows Server».
— Rich C
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.