Как обновить до последнего AMI в Эластичном Бобовом стебле AWS?

Насколько настоящие веб-серверы с возможностями прокси идут, и Apache и nginx оба были бы способны к удовлетворяющей опции a.

В Apache Вы хотели бы использовать возможность mod_rewrite прокси:

RewriteRule /(location[1-5]*\.html)$ http://sourceserver.example.com/$1 [P]

В nginx Вы просто использовали бы regex для своей директивы местоположения - посмотрите здесь

Для опции B большинство прокси, которые реализуют опцию хеширования, использует противоположный подход; удостоверяясь, что все запросы от данного клиента отправлены к тому же серверу для поддержания состояния сеанса. Можно ли вдаваться в немного большее количество подробностей о том, почему это было бы желательно?

18
задан 1 April 2013 в 19:44
6 ответов

Похоже, даже если вы измените AMI на правильный AMI, который использует ElasticBeanstalk. Кажется, это не работает должным образом. Он пропускает все файлы. Это работает неправильно.

Я думаю, вам нужно запустить новую среду Elastic Beanstalk с обновленным AMI. Сделайте так, чтобы все работало, а затем поменяйте URL-адреса среды.

0
ответ дан 2 December 2019 в 20:26

I was able to update my current application hosted on Beanstalk to the latest Amazon Linux AMI using the steps below.

1- Log into the AWS Console and navigate into the Beanstalk portal.

2- Navigate into the configuration page of your application and click-on 'Instances'.

3- Locate the AMI id it should be like so AMI-xxxxxx.

4- Take the AMI id and navigate back into the EC2 console and click-on AMI.

5- Change the view to Public Images and look for the AMI id retrieve earlier from the Beanstalk configuration.

6- Launch that AMI as a new instance.

7- Once its launched log into the instance and customize as per your applications requirements.

8- Once your satisfied everything in place as you would like it to be create an AMI image of this new instance.

9- Take the new instance AMI id that was created in step 8 and apply that to your Beanstalk application configuration.

10- It will not delete the old instance and create the new instance with your customize AMI and also deploy your latest application onto the new instances.

-2
ответ дан 2 December 2019 в 20:26

Перейдя на панель управления вашего приложения, найдите «Конфигурация» и нажмите «Изменить»

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

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

Есть таблицы, показывающие, какая версия AMI для каждой платформы использует.

Однако я не нашел способа запускать эти обновления автоматически. На самом деле я предпочитаю просматривать изменения в платформе и тестировать их перед их развертыванием.

0
ответ дан 2 December 2019 в 20:26

Вы можете использовать возможности управляемых обновлений, которые поставляются с eb, но для этого вам придётся заплатить за улучшенную отчётность о состоянии здоровья. Или использовать команду "eb platform show"; В рабочем приложении есть крон, который запускает CURRENT=eb платформа показывает ваше_env_имя | sed -n '5p' | cut -d: -f2- | tr -d '[[:пробел:]]''. LATEST=eb платформа показывает ваше_env_имя | sed -n '6p' | cut -d: -f2- | tr -d '[[:пробел:]]'. - Затем сравните их, и если они разные, вы можете использовать eb клон (по умолчанию в новой версии), а затем cname swap.

0
ответ дан 2 December 2019 в 20:26

Выберите свою службу в Elastic Beanstalk. Вы увидите обзор на панели инструментов. В правой части панели инструментов вы можете увидеть конфигурацию вашего AMI. Выберите «Изменить обновление» или «Понизить AMI». На этом этапе вы собираетесь заменить свой экземпляр. Так что сделайте резервную копию или клонируйте.

0
ответ дан 2 December 2019 в 20:26

Рекомендуемый и поддерживаемый способ обновления среды 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 есть условия, чтобы сделать все это за вас!

2
ответ дан 2 December 2019 в 20:26

Теги

Похожие вопросы