Общие вопросы

Вопрос: Что представляет собой AWS Elastic Beanstalk?

AWS Elastic Beanstalk позволяет разработчикам еще проще и быстрее развертывать приложения в облаке AWS и управлять ими. Достаточно загрузить приложение в сервис, и Elastic Beanstalk автоматически выделит ресурсы, обеспечит балансировку нагрузки, автомасштабирование и мониторинг работоспособности приложения.

Вопрос: Для кого предназначен сервис AWS Elastic Beanstalk?

Для любого разработчика, который хочет развертывать приложения в облаке AWS за несколько минут и без лишних усилий управлять ими. Чтобы начать работу с сервисом, не требуется опыт работы с системами облачных вычислений. AWS Elastic Beanstalk поддерживает интернет‑приложения, созданные на Java, .NET, PHP, Node.js, Python, Ruby, Go или с использованием Docker.

Вопрос: Какие языки программирования и стеки разработки поддерживает AWS Elastic Beanstalk?

AWS Elastic Beanstalk поддерживает следующие языки программирования и стеки разработки:

Apache Tomcat для приложений Java

Apache HTTP Server для приложений PHP

Apache HTTP Server для приложений Python

Nginx и Apache HTTP Server для приложений Node.js

Passenger или Puma для приложений Ruby

Microsoft IIS 7.5, 8.0 и 8.5 для приложений .NET

Java SE

Docker

Go

Для получения полного и актуального перечня поддерживаемых языков программирования и стеков разработки см. список поддерживаемых платформ.

Вопрос: Будет ли в сервис AWS Elastic Beanstalk включена поддержка других языков программирования?

Да. В AWS Elastic Beanstalk предусмотрена возможность расширения для поддержки в будущем большего числа стеков разработки и языков программирования. AWS совместно с разработчиками решений работает над созданием API и функциональных возможностей для расширения списка предложений Elastic Beanstalk.

Вопрос: Какие новые возможности стали доступны разработчикам благодаря сервису AWS Elastic Beanstalk?

AWS Elastic Beanstalk автоматически выделяет ресурсы, осуществляет балансировку нагрузки, автоматическое масштабирование и развертывание приложений, позволяя создавать среду для запуска различных версий приложения. Достаточно загрузить код развертывания (например, файл WAR), а сервис AWS Elastic Beanstalk сделает все остальное. Средства AWS Toolkit for Visual Studio и AWS Toolkit for Eclipse позволяют выполнять развертывание приложений в AWS Elastic Beanstalk и управлять ими в привычной среде разработки. После запуска приложения Elastic Beanstalk автоматически выполняет такие задачи управления, как мониторинг, развертывание версий приложения и базовая проверка работоспособности, а также обеспечивает доступ к журналам. Elastic Beanstalk позволяет разработчикам сосредоточиться на создании приложений, освобождая их от выполнения рутинных задач, связанных с развертыванием, таких как выделение серверов, настройка балансировки нагрузки или управление масштабированием.

Вопрос: Чем сервис AWS Elastic Beanstalk отличается от существующих контейнеров приложений и решений PaaS?

При работе с большинством существующих контейнеров для приложений и решений PaaS не требуется писать больших объемов кода, но одновременно они существенно ограничивают гибкость и управляемость. Разработчики вынуждены использовать возможности, предопределенные поставщиком решения, и не контролируют или почти не контролируют элементы инфраструктуры приложения. При работе с AWS Elastic Beanstalk разработчики полностью контролируют ресурсы AWS, на которых работают их приложения. Если требуется взять контроль над инфраструктурой или ее элементами в свои руки, это можно просто сделать с помощью возможностей управления в Elastic Beanstalk.

Вопрос: Какие элементы приложения можно контролировать при работе с AWS Elastic Beanstalk?

При работе с AWS Elastic Beanstalk можно:

выбрать операционную систему, соответствующую требованиям приложения (например, Amazon Linux или Windows Server 2016);

выбрать один из нескольких вариантов инстансов Amazon EC2, в том числе инстансы по требованию, зарезервированные инстансы и спотовые инстансы; 

выбрать подходящую базу данных и хранилище.

получить доступ к инстансам Amazon EC2 для неотложного и непосредственного устранения неполадок;

быстро повысить надежность приложения за счет его запуска в нескольких зонах доступности;

повысить безопасность приложения за счет использования протокола HTTPS в балансировщике нагрузки;

использовать встроенные средства мониторинга Amazon CloudWatch и получать уведомления о работоспособности приложений и других важных событиях;

настраивать параметры сервера приложений (например, настройки JVM) и передавать переменные окружения;

параллельно запускать в Amazon EC2 другие компоненты приложения, такие как сервис кэширования в памяти;

получить доступ к файлам журналов, не авторизуясь на серверах приложений.

Вопрос: Какие облачные ресурсы обеспечивают работу приложений в AWS Elastic Beanstalk?

При создании среды для работы приложения в AWS Elastic Beanstalk используются проверенные возможности и сервисы AWS, такие как Amazon EC2, Amazon RDS, Elastic Load Balancing, Auto Scaling, Amazon S3 и Amazon SNS. Текущая версия AWS Elastic Beanstalk работает с использованием образов AMI Amazon Linux или Windows Server 2019.

Вопрос: Какие типы приложений поддерживает AWS Elastic Beanstalk?

AWS Elastic Beanstalk поддерживает Java, .NET, PHP, Node.js, Python, Ruby, Go и Docker и прекрасно подходит для развертывания интернет‑приложений. При этом за счет открытой архитектуры сервиса приложения, которые не относятся к интернет‑приложениям, также могут быть развернуты с помощью Elastic Beanstalk. В ближайшем будущем планируется обеспечить поддержку других типов приложений и языков программирования. Подробнее см. в разделе Supported Platforms.

Вопрос. Какие операционные системы используются в AWS Elastic Beanstalk?

AWS Elastic Beanstalk работает на образах AMI с Amazon Linux и Windows Server AMI. Поддержку и обслуживание этих образов AMI осуществляет Amazon Web Services. Образы специально разработаны для предоставления стабильной, безопасной и высокопроизводительной среды облачных вычислений Amazon EC2.

Начало работы

Вопрос. Как зарегистрироваться в сервисе AWS Elastic Beanstalk?

Чтобы зарегистрироваться в сервисе AWS Elastic Beanstalk, нажмите кнопку «Зарегистрироваться» на странице описания Elastic Beanstalk. Чтобы получить доступ к этому сервису, требуется аккаунт Amazon Web Services. Если его еще нет, вам будет предложено создать его в начале процесса регистрации в сервисе AWS Elastic Beanstalk. После регистрации ознакомьтесь с Руководством по началу работы с AWS Elastic Beanstalk.

Вопрос: Почему при регистрации в сервисе AWS Elastic Beanstalk меня просят подтвердить номер телефона?

Для регистрации в сервисе AWS Elastic Beanstalk должен быть указан действительный номер телефона и адрес электронной почты (на случай, если нам потребуется связаться с вами). Процедура подтверждения номера телефона занимает всего несколько минут: на указанный номер поступит звонок, после чего потребуется ввести PIN‑код с помощью кнопок своего телефона.

Вопрос. Как после регистрации приступить к работе?

Для скорейшего начала работы с AWS Elastic Beanstalk воспользуйтесь руководством по началу работы с AWS Elastic Beanstalk, которое входит в техническую документацию. Уже через несколько минут можно будет выполнить развертывание образца приложения и приступить к его использованию или загрузить собственное приложение.

Вопрос: Существует ли образец приложения для проверки работы AWS Elastic Beanstalk?

Да. AWS Elastic Beanstalk предоставляет образец приложения, с помощью которого можно протестировать работу сервиса и исследовать его возможности.

Базы данных и хранилище

Вопрос: Хранятся ли данные AWS Elastic Beanstalk в хранилище Amazon S3?

Да. AWS Elastic Beanstalk сохраняет в Amazon S3 файлы приложения и серверные журналы, если таковые ведутся. Если вы используете Консоль управления AWS, AWS Toolkit for Visual Studio или AWS Toolkit for Eclipse, в аккаунте будет создана корзина Amazon S3, и загруженные файлы будут автоматически копироваться с локального клиента в хранилище Amazon S3. При желании можно настроить в Elastic Beanstalk ежечасное копирование серверных журналов в Amazon S3. Копирование включается с помощью настроек конфигурации среды.

Вопрос: Можно ли хранить в Amazon S3 данные приложения, например изображения?

Да. Amazon S3 можно использовать в качестве хранилища для приложения. Проще всего сделать это, включив пакет SDK AWS в состав файла развертывания приложения. Например, можно включить в файл WAR приложения пакет AWS SDK for Java.

Вопрос: Какие решения баз данных можно использовать с AWS Elastic Beanstalk?

AWS Elastic Beanstalk не требует использования каких‑либо конкретных технологий хранения данных. С этим сервисом можно использовать Amazon Relational Database Service (Amazon RDS), Amazon DynamoDB или Microsoft SQL Server, Oracle и другие реляционные базы данных, работающие в Amazon EC2.

Вопрос: Как создать базу данных для работы с AWS Elastic Beanstalk?

Elastic Beanstalk автоматически выделяет инстанс БД Amazon RDS. Информация для подключения к инстансу БД предоставляется приложению посредством переменных среды окружения. Подробнее о настройке инстансов БД RDS для своей среды см. в руководстве для разработчиков по Elastic Beanstalk.


Вопрос: Требуется ли вносить изменения в код при перемещении приложения из тестовой среды в рабочую?

При работе с AWS Elastic Beanstalk такой необходимости нет. Достаточно указать информацию для подключения в конфигурации среды. Извлекая строку подключения из кода приложения, можно просто настроить различные среды Elastic Beanstalk для работы с разными базами данных.

 

Безопасность

Вопрос: Как сделать приложение частным?

По умолчанию приложение находится в публичном доступе по адресу myapp.elasticbeanstalk.com. С помощью Amazon VPC можно выделить частный изолированный раздел приложения в заданной виртуальной сети. Эту виртуальную сеть можно сделать частной с помощью определенных правил группы безопасности, сетевых ACL и специальных таблиц маршрутизации. Можно также без лишних усилий настроить доставку или блокировку входящего трафика (например, по SSH) к серверам приложений путем изменения настроек группы безопасности EC2.

Вопрос: Можно ли запускать приложения в Amazon Virtual Private Cloud (VPC)?

Да, приложения можно запускать в VPC. Дополнительные сведения см. в руководстве для разработчиков по AWS Elastic Beanstalk.

Вопрос: Где найти дополнительную информацию о безопасности и запуске приложений на AWS?

Для получения дополнительной информации о безопасности AWS ознакомьтесь с документом «Amazon Web Services: обзор процессов обеспечения безопасности» и посетите наш Центр безопасности.

Вопрос: Можно ли использовать сервис Identity & Access Management (IAM) совместно с AWS Elastic Beanstalk?

Да. Пользователи IAM с соответствующими разрешениями теперь могут работать с AWS Elastic Beanstalk.

Вопрос: Для чего стоит использовать IAM с AWS Elastic Beanstalk?

IAM позволяет централизованно управлять пользователями и группами. Можно предоставлять определенным пользователям IAM доступ к AWS Elastic Beanstalk и выдавать разрешения доступа «только чтение» тем пользователям, у кого не должно быть возможности выполнять действия с ресурсами Elastic Beanstalk. Все действия пользователей в рамках аккаунта объединяются в одном счете AWS.

Вопрос: Как создать пользователей IAM?

Создавать пользователей IAM можно с помощью консоли IAM, интерфейса командной строки IAM или API IAM. По умолчанию у пользователей IAM нет доступа к сервисам AWS, пока им не будут предоставлены соответствующие разрешения.

Вопрос: Как предоставить пользователю IAM доступ к AWS Elastic Beanstalk?

Чтобы предоставить пользователям IAM доступ к сервисам, используйте политики. Чтобы упростить процесс предоставления доступа к AWS Elastic Beanstalk, для начала можно воспользоваться шаблонами политик в консоли IAM. Для Elastic Beanstalk предлагается два шаблона: доступ только для чтения и полный доступ. Шаблон доступа только для чтения обеспечивает доступ к ресурсам Elastic Beanstalk только для чтения. Шаблон полного доступа обеспечивает полный доступ ко всем операциям Elastic Beanstalk, а также разрешения на управление связанными ресурсами, такими как Elastic Load Balancing, Auto Scaling и Amazon S3. Для создания политик также можно воспользоваться AWS Policy Generator. Дополнительные сведения см. в руководстве для разработчиков по AWS Elastic Beanstalk.

Вопрос: Можно ли ограничить доступ к определенным ресурсам AWS Elastic Beanstalk?

Да. Сервис предусматривает возможность предоставлять или отменять разрешения на доступ к ресурсам AWS Elastic Beanstalk, таким как приложения, версии приложений и среды.

Вопрос: Кому будет выставлен счет за использование ресурсов AWS, созданных пользователем IAM?

Все ресурсы, созданные пользователями IAM в рамках одного аккаунта, относятся к этому корневому аккаунту. Счет за них выставляется на этот аккаунт.

Вопрос: У кого есть доступ к среде AWS Elastic Beanstalk, созданной пользователем IAM?

У аккаунта с правами root имеется полный доступ ко всем средам AWS Elastic Beanstalk, созданным любым пользователем IAM этого аккаунта. Если использован шаблон Elastic Beanstalk, предоставляющий пользователю IAM доступ только для чтения, такой пользователь сможет просматривать все приложения, версии приложений, среды и любые связанные ресурсы в пределах аккаунта. Если использован шаблон Elastic Beanstalk, предоставляющий пользователю IAM полный доступ, такой пользователь сможет создавать, изменять и удалять любые ресурсы Elastic Beanstalk в рамках аккаунта.

Вопрос: Есть ли у пользователя IAM доступ к консоли AWS Elastic Beanstalk?

Да. Пользователь IAM может войти в консоль AWS Elastic Beanstalk с помощью своего имени пользователя и пароля.

Вопрос: Может ли пользователь IAM вызывать API AWS Elastic Beanstalk?

Да. Пользователь IAM с помощью своего ключа доступа и закрытого ключа может выполнять операции посредством API Elastic Beanstalk.

Вопрос: Может ли пользователь IAM работать с интерфейсом командной строки AWS Elastic Beanstalk?

Да. Пользователь IAM с помощью своего ключа доступа и закрытого ключа может выполнять операции посредством интерфейса командной строки Elastic Beanstalk.

Управляемые обновления платформы

Вопрос: Как обеспечить автоматическое поддержание актуальности базовой платформы для среды, в которой работает мое приложение?

Вы можете настроить автоматическое обновление сред AWS Elastic Beanstalk до последней версии базовой платформы, на которой работает приложение, во время предусмотренного окна обслуживания. Elastic Beanstalk регулярно выпускает новые версии для поддерживаемых платформ (Java, PHP, Ruby, Node.js, Python, .NET, Go и Docker) с обновлениями операционных систем, веб‑серверов, серверов приложений, языков и платформ программирования.

Вопрос: Как начать работать с управляемыми обновлениями платформы?

Чтобы Elastic Beanstalk автоматически управлял обновлениями платформы, нужно разрешить автоматические обновления платформы на вкладке «Configuration» (Настройка) в консоли Elastic Beanstalk или выполнить аналогичные операции с помощью интерфейса командной строки Elastic Beanstalk или API сервиса. После включения этой возможности можно настроить, какие типы обновлений будут разрешены и когда они будут выполняться.

Вопрос: Какие виды обновлений версий платформы будут применяться при управляемых обновлениях платформы?

AWS Elastic Beanstalk может автоматически выполнять установку новых исправлений и выполнять обновления до младших версий платформы. Elastic Beanstalk не будет автоматически выполнять обновления до основных версий платформы (например, с Java 7 Tomcat 7 до Java 8 Tomcat 8), так как это подразумевает обратно несовместимые изменения и требует дополнительного тестирования. В подобных случаях обновление необходимо запустить вручную.

Вопрос: Каким образом AWS Elastic Beanstalk различает основные, второстепенные версии и исправления?

Структура нумерации версий платформ AWS Elastic Beanstalk такова: ОСНОВНАЯ.ВТОРОСТЕПЕННАЯ.ИСПРАВЛЕНИЕ (например, 2.0.0). Увеличение чисел, составляющих номер версии, производится следующим образом.

ОСНОВНАЯ версия увеличивается, если есть несовместимые изменения.

ВТОРОСТЕПЕННАЯ версия увеличивается, если добавлены новые функциональные возможности и обеспечивается совместимость изменений.

Число в позиции ИСПРАВЛЕНИЕ увеличивается, если исправлены ошибки и обеспечивается совместимость изменений.

Вопрос: Когда и как можно выполнять обновление основных версий?

Обновление основных версий можно выполнить в любое время, используя консоль управления AWS Elastic Beanstalk, API сервиса или интерфейс командной строки. Есть несколько вариантов выполнения обновления основной версии.

Применить обновление локально, в существующей среде. См. подробнее в разделе «Updating Your Elastic Beanstalk Environment's Platform Version».

Создать клон существующей среды на новой версии платформы. Подробнее см. в разделе «Clone an Environment».

Вопрос: Каким образом Elastic Beanstalk выполняет управляемые обновления платформы?

Обновления выполняются с помощью механизма стабильного развертывания, который гарантирует, что никакие изменения не будут сделаны в существующей среде до тех пор, пока параллельно работающая группа инстансов Amazon EC2 с установленным обновлением не будет готова к тому, чтобы поменяться местами с существующими инстансами, которые впоследствии останавливаются. Кроме того, если система обеспечения работоспособности сервиса Elastic Beanstalk обнаружит проблемы во время обновления, трафик будет перенаправлен в существующую группу инстансов, так что последствия для конечных пользователей приложения будут минимальными.

Вопрос: Будет ли приложение доступно во время окна обслуживания?

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

Вопрос: Какова стоимость использования управляемых обновлений платформы?

Дополнительная плата за использование управляемых обновлений платформы не начисляется. Оплате подлежат только дополнительные инстансы EC2, необходимые для обновления платформы и используемые во время обновления.

Вопрос: Что такое окно обслуживания?

Окно обслуживания – это еженедельный временной интервал продолжительностью два часа, во время которого AWS Elastic Beanstalk запускает обновления платформы, если включено управляемое обновление платформы и доступна новая версия платформы. Например, если вы выберете окно обслуживания, которое начинается каждое воскресенье в 2 часа ночи, AWS Elastic Beanstalk будет запускать обновления платформы каждое воскресенье в интервале времени от 2 до 4 часов ночи. Важно отметить, что в зависимости от конфигурации приложений обновления могут завершаться после окончания времени окна обслуживания.

Окно обслуживания определяется для каждой среды отдельно, поэтому есть возможность устанавливать различные окна обслуживания для разных приложений или компонентов приложения. Таким образом, если вы не хотите, чтобы несколько частей приложения обновлялись в одно и то же время, можно разнести такие обновления сред по времени. Если вы разрешили управляемое обновление платформы, но не указали окно обслуживания, для вашей среды будет назначено еженедельное двухчасовое окно обслуживания по умолчанию. Если потребуется самостоятельно изменить время проведения обслуживания, можно отредактировать настройки управляемого обновления в Консоли управления AWS или с помощью API UpdateEnvironment.

Вопрос: Каким образом меня известят о доступности новой версии платформы?

Уведомление о доступности новой версии платформы направляется клиентам через Консоль управления AWS, с помощью объявлений в форуме или примечаний к выпуску.

Вопрос: Где можно найти подробные сведения о различиях между версиями платформы?

Подробные сведения о различиях между версиями платформы можно найти на странице примечаний к выпуску AWS Elastic Beanstalk.

Вопрос: Какие операции можно выполнять в среде в процессе выполнения управляемого обновления?

Единственная операция, возможная во время выполнения управляемого обновления платформы, это операция «отменить». При этом обновление немедленно прекращается и выполняется откат к предыдущей версии.

Вопрос: До какой версии будет обновлена среда, если между окнами обслуживания станут доступны несколько новых версий?

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

Вопрос: Где найти подробные сведения обо всех управляемых обновлениях платформы, выполненных в моей среде?

Подробные сведения о каждом управляемом обновлении платформы доступны на странице событий, они обозначены тегом типа события «MAINTENANCE» (ОБСЛУЖИВАНИЕ).

Вопрос: Как часто выпускаются новые версии платформы?

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

Поддержка AWS Graviton

Вопрос: Как развернуть новую рабочую нагрузку с процессором Graviton из консоли Elastic Beanstalk?

Чтобы развернуть приложение с процессорами на базе arm64 в консоли Elastic Beanstalk, необходимо выбрать архитектуру процессора и тип инстанса на вкладке ресурсов в разделе «Настройка дополнительных параметров».

Вопрос: Как развернуть новую рабочую нагрузку с процессором Graviton из интерфейса командной строки AWS CLI, Elastic Beanstalk CLI или сервисов формата «инфраструктура как код»?

Инструкции по развертыванию приложения с помощью Elastic Beanstalk CLI, AWS CLI, CFN или AWS CDK см. в Руководстве для разработчиков Elastic Beanstalk.

Вопрос: Необходимо ли повторно компилировать рабочие нагрузки перед миграцией на Graviton?

Если ваши рабочие нагрузки выполнены на интерпретируемом языке программирования, таком как Node.js, Python, Tomcat, PHP или Ruby, то для работы с Graviton повторная компиляция не требуется. При использовании Go или .Net Core необходимо обновить команду сборки для инстанса типа arm64. Кроме того, нужно повторно компилировать двоичные зависимости или использовать совместимую с arm64 версию двоичных зависимостей. В случае использования Docker образ должен быть многоархитектурным и поддерживать развертывание как x86, так и arm64.

Вопрос: Какие платформенные ветви поддерживаются в Graviton на Elastic Beanstalk?

Elastic Beanstalk поддерживает Graviton на базе 64-битной ОС Amazon Linux 2 для большого количества платформ и ветвей. Полный список см. в документации.

Вопрос: Каковы примеры использования процессора Graviton?

Переместив рабочие нагрузки на Graviton, вы получите преимущество повышенной производительности и низкой стоимости в следующих примерах: рабочие нагрузки на базе Linux, созданные в основном с помощью открытого исходного кода; контейнерные и микросервисные приложения, таких как Docker и MC Docker; приложения на переносимом языке программирования (Java, Python, .NET Core, node.js и PHP); приложения Compiled C/C++, Rust или Go; рабочие нагрузки .NET Core (v3.1+) на базе Linux; многопоточные рабочие нагрузки; рабочие нагрузки, требующие асимметричного доступа к памяти (NUMA); разработка и тестирование программного обеспечения для arm64.

Оплата

Вопрос: Сколько стоит AWS Elastic Beanstalk?

Дополнительная плата за AWS Elastic Beanstalk не взимается. Оплате подлежат только ресурсы AWS, необходимые для хранения и работы приложений.

Вопрос: Сколько стоит использование ресурсов AWS, на которых работает приложение в AWS Elastic Beanstalk?

Вы платите только за то, что используете, без минимальных платежей за ресурсы AWS. Информацию о ценах на сервис Amazon EC2 см. в разделе цен на странице описания EC2. Информацию о ценах на сервис Amazon S3 см. в разделе цен на странице описания S3. С помощью Калькулятора AWS можно оценить сумму счета для приложений разных размеров.

Вопрос: Как проверить объем ресурсов AWS, используемых приложением, и получить доступ к счету?

Расходы за текущий расчетный период можно в любое время просмотреть на сайте Amazon Web Services, войдя в аккаунт Amazon Web Services и нажав на пункт «Account Activity» (История аккаунта) в разделе «Your Web Services Account» (Ваш аккаунт AWS).

Поддержка

Вопрос: Сервис AWS Support включает поддержку AWS Elastic Beanstalk?

Да. Сервис AWS Support охватывает вопросы, связанные с использованием AWS Elastic Beanstalk. Подробные сведения и информацию о ценах см. на странице AWS Support.

Вопрос: Доступны ли другие варианты поддержки?

В разработке приложений вам поможет обширная база знаний сообщества AWS, которой можно воспользоваться, посетив форум AWS Elastic Beanstalk.

Подробнее о ценах на AWS Elastic Beanstalk

Перейти на страницу цен на AWS Elastic Beanstalk
Готовы начать?
Регистрация
Есть вопросы?
Свяжитесь с нами