Ручное развертывание против Amazon Elastic Beanstalk

Каковы преимущества, которые мы получаем с помощью Elastic Beanstalk, создавая экземпляр EC2 и настраивая сервер tomcat и развертывание и т.д. для типичного приложения Java. Являются ли балансировка нагрузки, мониторинг и автомасштабирование единственными преимуществами?

Предположим, что для моего веб-приложения, которое использует базу данных, я установил базу данных в самом экземпляре EC2. Когда будет выполняться Autoscalling, база данных будет создана во вновь созданном экземпляре или она будет обращаться к базе данных, которую я создал в главном экземпляре... Если она создает только реплику, когда происходит автоматическое сканирование, как происходит синхронизация данных между экземплярами?

Ответ 1

Все перечисленные вами вещи, такие как балансировка нагрузки, мониторинг и автоматическое масштабирование, безусловно, являются преимуществами.

Однако вы должны подумать об этом так: в настоящей платформе как услуге (PAAS) цель состоит в том, чтобы отделить приложение от Платформа. Как разработчик, вы беспокоитесь только о своем приложении. Платформа "арендована" для вас. "Экземпляры" платформы автоматически обновляются, администрируются, масштабируются, сбалансированы и т.д. Для вас. Вы просто загружаете свой WAR файл, и он просто работает (по крайней мере теоретически).

EC2 сам по себе не является PAAS. Это больше похоже на IAAS (Инфраструктура как услуга). Вы по-прежнему должны заботиться о экземплярах сервера, устанавливать на них программное обеспечение, обновлять их и т.д.

Эластичный бобин - система PAAS. Так что App Engine и Azure среди многих других.

В настоящей системе PAAS СУБД является отдельным компонентом от сервера (ов) веб-приложений. Причина очевидна: СУБД невозможно установить на экземплярах, которые используются для сервера приложений, поскольку, поскольку экземпляры создаются и уничтожаются на основе вашего трафика, СУБД будет потеряна! Наличие СУБД и сервера приложений на одном и том же компьютере/экземпляре вообще не является хорошей идеей.

В системе PAAS СУБД представляет собой отдельную услугу. Для Amazon это будет Amazon RDS. Как и в случае с Elastic Beanstalk, где вам не нужно беспокоиться о сервере приложений, и вы просто загружаете свой WAR файл с помощью RDS, вам не нужно беспокоиться о СУБД, и вы просто развертываете свои базы данных.

Эластичный бобовый шток и RDS работают очень хорошо вместе, особенно при развертывании в той же зоне доступности, где латентность будет очень низкой.

Наконец, использование Elastic Beanstalk не стоит ничего больше, чем развернутые ресурсы (экземпляры EC2 и балансировка нагрузки). Однако RDS не дешево и определенно будет дороже, чем использование одного экземпляра EC2 для сервера приложений и СУБД.

Ответ 2

Эластичный бобовый шток делает больше, чем просто балансировку нагрузки, контроль и автомасштабирование.

1) Управление версиями приложений путем хранения и управления различными версиями вашего приложения, что позволяет легко переключаться между различными версиями ваших приложений.

2) Имеет понятие "среды" для каждого приложения, позволяющее развернуть разные версии вашего приложения в каждой среде. Это удобно, например, если вы хотите настроить отдельные среды QA и DEV, и вы хотите легко развернуть сборку сначала в DEV, а затем развернуть ту же версию приложения в QA, когда ваша команда QA готова к следующей сборке.

3) Экранзирует важные свойства конфигурации контейнера (например, параметры памяти Tomcat) в консоли Elastic Beanstalk и API. Из-за этого вы можете легко сохранить настройки и скопировать их между средами.

4) Просмотр файлов журналов приложений через консоль и автоматическое копирование и архивирование файлов журнала на S3. (По общему признанию, эта функция в настоящее время немного слаба.)