- Вычисления›
- Elastic Beanstalk›
- Вопросы и ответы
Вопросы и ответы по AWS Elastic Beanstalk
Общие вопросы
Что представляет собой 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. В ближайшем будущем планируется обеспечить поддержку других типов приложений и языков программирования. Подробнее см. в разделе о поддерживаемых платформах.
Какие операционные системы используются в AWS Elastic Beanstalk?
AWS Elastic Beanstalk работает на образах AMI с Amazon Linux и Windows Server AMI. Amazon Web Services осуществляет поддержку и обслуживание этих образов AMI. Они предоставляют стабильную, безопасную и высокопроизводительную среду облачных вычислений сервиса 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 в состав файла развертывания приложения. Например, вы можете включить пакет AWS SDK for Java в файл WAR вашего приложения.
Какие решения баз данных можно использовать с 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.
Можно ли запускать приложения в виртуальном частном облаке (VPC)?
Да, приложения можно запускать в VPC. Дополнительные сведения см. в руководстве по AWS Elastic Beanstalk для разработчиков.
Где можно найти дополнительную информацию о безопасности и запуске приложений на AWS?
Для получения дополнительной информации о безопасности AWS ознакомьтесь с документом «Amazon Web Services: обзор процессов обеспечения безопасности» и посетите наш Центр безопасности.
Можно ли использовать Управление идентификацией и доступом (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 с правами аккаунта root, принадлежат этому аккаунту. Счет за них выставляется в аккаунте root.
У кого есть доступ к среде 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 сервиса или интерфейс командной строки. Есть несколько вариантов выполнения обновления основной версии.
Применить обновление локально, в существующей среде. См. в разделе «Обновление версии платформы среды Elastic Beanstalk».
Создать клон существующей среды на новой версии платформы. Подробнее см. в разделе «Клонирование среды».
Каким образом 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 на AWS Elastic Beanstalk?
Да. Сервис AWS Support охватывает вопросы, связанные с использованием AWS Elastic Beanstalk. Подробные сведения и информацию о ценах см. на странице AWS Support.
Доступны ли другие варианты поддержки?
В разработке приложений вам поможет обширная база знаний сообщества AWS, которой вы сможете воспользоваться, посетив форум AWS Elastic Beanstalk.