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