Работа с AWS Beanstalk через командную строку в Unix/Linux
AWS Elastic Beanstalk – это простой в использовании сервис для развертывания и масштабирования интернет-приложений и сервисов, разработанных с использованием Java, .NET, PHP, Node.js, Python, Ruby, Go или Docker на серверах Apache, Nginx, Passenger.
Просто загрузите код, а Elastic Beanstalk автоматически выполнит развертывание: выделит ресурсы, займется балансировкой нагрузки, автоматическим масштабированием и мониторингом работоспособности приложения. При этом вы сохраняете полный контроль над ресурсами AWS для вашего приложения и в любое время можете получить к ним доступ.
Дополнительная плата за Elastic Beanstalk не взимается – вы платите только за ресурсы AWS, необходимые для хранения и работы приложений.
Работа с AWS Beanstalk через командную строку в Unix/Linux
Устанавливаем AWS CLI:
Установка AWS CLI в Unix/Linux
Открываем конфиг:
# vim ~/.aws/credentials
Прописываем ключи. Например:
[Your_acc_name] aws_access_key_id = XXXXXXXXXXXXXXXXXXXXXXXXX aws_secret_access_key = YYYYYYYYYYYYYYYYYYYY
Где:
- Your_acc_name — Имя для аккаунта. Потом можно его использовать.
- aws_access_key_id — Ключик.
- aws_secret_access_key — Еще один ключик.
PS: Конечно можно заюзать утилиту для генерации аккаута, но я предпочитаю — именно такой способ и отредактировать файл.
Создание application-а в BeanStalk
Чтобы создать app в beanstalk-е, выполните:
$ aws elasticbeanstalk create-application --region=us-west-2 --application-name=test
Просмотр application-ы в BeanStalk
Чтобы просмотреть все созданные апликейшены в бинсталке, имеется команда:
$ aws elasticbeanstalk describe-applications
Если вывод большой, можно использовать фильтр, например:
$ aws elasticbeanstalk describe-applications | grep -E "test"
Удаление application-а в BeanStalk
Удалить app можно так:
$ aws elasticbeanstalk delete-application --application-name test --region=us-west-2
Просмотр доступных стек-солюшенов в BeanStalk
Ищем необходимый стек:
$ aws elasticbeanstalk list-available-solution-stacks
Грепаем нужное:
$ aws elasticbeanstalk list-available-solution-stacks| grep -E "Docker"
Создание environment-а в BeanStalk
Аппликейшен готов, теперь стоит создать environment:
$aws elasticbeanstalk create-environment --application-name test --environment-name staging --solution-stack-name "64bit Amazon Linux 2018.03 v2.11.5 running Multi-container Docker 18.06.1-ce (Generic)" --region us-west-2
Или, нужные опции можно влить из файла:
$ aws elasticbeanstalk create-environment --application-name test \ --environment-name staging \ --solution-stack-name "64bit Amazon Linux 2018.03 v2.11.5 running Multi-container Docker 18.06.1-ce (Generic)" \ --option-settings file://options.json \ --region us-west-2
Просмотреть environment-ы в BeanStalk
Чтобы просмотреть environment-ы, выполните:
$ aws elasticbeanstalk describe-environments
Так же, можно использовать фильтры, если это необходимо.
Удаление environment-а в BeanStalk
Для удаления энвайромента, выполните:
$ aws elasticbeanstalk delete-environment --environment-name staging --region=us-west-2
Обновление environment-а в BeanStalk
Выполняем деплой до определенной версии:
$ aws elasticbeanstalk update-environment --application-name test \ --environment-name staging \ --version-label v1 --region us-west-2
PS: Создание версий будет ниже.
Создание application-version-ю в BeanStalk
Создаем новую версию приложения из комплекта приложений:
$ aws elasticbeanstalk create-application-version --application-name test \ --version-label v1 \ --source-bundle S3Bucket="some_s3_bucket_name",S3Key="deployment.zip" \ --auto-create-application \ --region us-west-2
Где:
- some_s3_bucket_name — Имя бакета где лежит зип-архив (deployment.zip).
- deployment.zip — Архив со всем необходимым для деплоя преложения (конфигы, настройки, код …).
Просмотр application-version-и в BeanStalk
Чтобы получить информацию о апликейшен-версиях, выполните:
$ aws elasticbeanstalk describe-application-versions
Чтобы получить помощь, выполните команду:
$ aws elasticbeanstalk help
Вот и все, статья «Работа с AWS Beanstalk через командную строку в Unix/Linux» завершена.