Як оновити до останнього AMI в AWS Elastic Beanstalk?


18

Я запускаю програму на AWS Elastic Beanstalk, і, схоже, мені потрібно створити нове середовище, якщо я хочу використовувати останню AMI.

Якби я знав, що таке останній ідентифікатор AMI, я міг би оновити його в конфігурації середовища.

Чи є місце, де я можу знайти ідентифікатор останніх AMI Elastic Beanstalk, а ще краще, чи можливо автоматичні заміни екземплярів на нову версію кожного разу, коли нова версія буде випущена?


2
Запустіть нове середовище і подивіться, який саме AMI ID на сервері, який він запускає?
ceejayoz

2
Це трохи болить, чи не так?
Бенджамін

Востаннє, коли я створив середовище ЕВ, це зайняло близько п'яти хвилин. AMI Amazon Linux виходять раз на три місяці IIRC. 1,6 хвилини на місяць не вражає мене занадто сильним болем.
ceejayoz

Дозвольте перефразувати: відчувається, що має бути кращий шлях. Але ти маєш рацію, справа не велика.
Бенджамін

2
Вони дійсно повинні розміщувати їх у деяких замітках до випуску або наклеювати на своїх форумах, а не просто розмовляти їх мовчки.
Кен Лю

Відповіді:


2

Рекомендований і підтримуваний спосіб оновити середу AWS Beanstalk документована тут і керовані поновлення платформи обговорюються тут , чесно кажучи , я б дотримуватися , що якщо ви хочете, щоб все було легко (і це те, що Beanstalk це все о), ви будете теоретично отримуйте лише безупинні оновлення, і AWS керуватиме процесом, щоб не було простоїв.

Тож я просто хочу ще раз зазначити, що керовані оновлення платформи - це, мабуть, те, що ви або хто-небудь ще прийде сюди від Google, але якщо ви хочете знати останні AWS, надані AMI для вашого середовища Beanstalk, це можна зробити досить тривіально за допомогою AWS CLI (спасибі щоб нормально називати конвенції від Amazon на своїх AMI).

Починаючи з екземпляра з вашого середовища, опишіть екземпляр, щоб отримати поточний AMI (пропустіть, якщо ви вже знаєте поточний AMI).

aws ec2 describe-instances --instance-ids i-0909613f35ec0ffee --query 'Reservations[*].Instances[*].ImageId' --output text

ami-35290a56

Візьміть отриманий ідентифікатор AMI і опишіть його.

aws ec2 describe-images --image-ids ami-35290a56 --query 'Images[*][Architecture, Hypervisor, Name, RootDeviceType, VirtualizationType]' --output json

[
    [
        "x86_64",
        "xen",
        "aws-elasticbeanstalk-amzn-2016.03.0.x86_64-python34-hvm-201603290718",
        "ebs",
        "hvm"
    ]
]

Ми можемо використовувати вихідне вище як вхід до нового, відсортованого, describe-imagesале цього разу заміняємо часові позначки *символами підстановки, як-от так:

aws ec2 describe-images --filters 'Name=architecture,Values=x86_64' 'Name=virtualization-type,Values=hvm' 'Name=owner-alias,Values=amazon' 'Name=name,Values=aws-elasticbeanstalk-amzn-*.x86_64-python34-hvm-*' --query 'sort_by(Images[*], &Name)[-1].ImageId' --output text

ami-1be5de78

Завдяки потужності лексичного сортування та ISO 8601, ми закінчуємо останню AMI, яка є на моєму прикладі ami-1be5de78.

aws ec2 describe-images --image-ids ami-1be5de78 --query 'Images[*].Name' --output text

aws-elasticbeanstalk-amzn-2016.09.0.x86_64-python34-hvm-201612200708

Знову ж таки, я б не рекомендував вам намагатися змінити цей AMI вручну, Beanstalk має положення, щоб зробити все це за вас!


0

Здається, навіть якщо ви змінили AMI, на належний AMI ElasticBeanstalk. Схоже, це не працює належним чином. У ньому відсутні всі файли. Це не працює правильно.

Я думаю, ви повинні запустити нове середовище Elastic Beanstalk, яке має оновлений AMI. Зробіть так, щоб все працювало, а потім міняйте URL-адреси середовища.


0

Ви можете скористатися функціями керованих оновлень, які поставляються з eb, але для цього доведеться заплатити за покращену звітність про здоров'я. Або скористайтеся командою 'eb platform show'; У робочому додатку є cron, який працює CURRENT = eb platform show your_env_name | sed -n '5p' | cut -d: -f2- | tr -d '[[:space:]]' LATEST = eb platform show your_env_name | sed -n '6p' | cut -d: -f2- | tr -d '[[:space:]]' - Потім порівняйте їх, і якщо вони різні, ви можете скористатися eb-клоном (за замовчуванням до нової версії), а потім перейменувати swap.


0

Перейдіть до інформаційної панелі програми, знайдіть "Конфігурація" та натисніть "Змінити"

Ви повинні побачити список, де ви можете вибрати платформу. У цьому списку вказана остання версія. Вибір платформи

AWS EB використовує спеціальні настройки для різних мов програмування. Список налаштувань можна знайти в документації http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/concepts.platforms.html

Є таблиці, які показують, яку версію AMI використовує кожна платформа.

Я не знайшов способу запустити ці оновлення автоматично. Я фактично вважаю за краще переглянути зміни платформи та протестувати їх перед тим, як розгорнути їх.


0

Виберіть свою послугу в Elastic Beanstalk, ви побачите огляд на панелі приладів, на правій панелі панелі інструментів ви побачите конфігурацію AMI, виберіть Змінити оновлення або деградуйте AMI. У цей момент ви збираєтеся замінити свій примірник. Тому зробіть резервну копію або клонуйте.


-2

Мені вдалося оновити свою теперішню програму, розміщену на Beanstalk, до останньої AMI Amazon Linux, використовуючи наведені нижче дії.

1- Увійдіть у консоль AWS та перейдіть на портал Beanstalk.

2- Перейдіть на сторінку конфігурації програми та натисніть "Екземпляри".

3- Знайдіть ідентифікатор AMI, він повинен бути таким, як AMI-xxxxxx.

4- Візьміть ідентифікатор AMI та перейдіть назад до консолі EC2 та натисніть AMI.

5- Змініть подання на Public Image і знайдіть ідентифікатор AMI, отриманий раніше з конфігурації Beanstalk.

6- Запустіть AMI як новий екземпляр.

7- Після запуску увійдіть у примірник та налаштуйте відповідно до вимог ваших програм.

8- Після того, як ваш задоволений всім на своєму місці, як ви хотіли б, це створить AMI-образ цього нового екземпляра.

9 - Візьміть новий ідентифікатор ідентифікатора AMI, створений на кроці 8, і застосуйте його до конфігурації програми Beanstalk.

10 - Він не видалить старий екземпляр і створить новий екземпляр за допомогою настроюваного AMI, а також розгорне вашу останню програму в нових екземплярах.


1
Я думаю, ви неправильно зрозуміли питання. Я не запитував, як створити та використовувати користувальницький AMI, я запитав, як дізнатись про останній ідентифікаційний код EIstic Beanstalk AMI за замовчуванням, який застосовується під час створення нового середовища, і, якщо можливо, як автоматично застосувати новий AMI коли його випускає AWS.
Бенджамін
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.