2012-02-01 4 views
101

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

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

ответ

128

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

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

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

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

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

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

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

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

+3

Красиво поставленный. Просто добавление: вы можете указать пользовательский AMI, который будет служить базой для каждого создания экземпляра. Таким образом, вы можете, например, настроить образ Apache со всеми необходимыми конфигурациями и приложениями и использовать его в качестве базового AMI (в настройках среды Beanstalk есть поле пользовательского поля AMI). Тем не менее, сгенерированные данные времени исполнения будут действительно удалены на каждом завершении экземпляра (и это сделает балансировка нагрузки!). –

+1

Единственное, что меня насторожило, было то, что Elastic Beanstalk создает балансировщик нагрузки для каждой среды, которая развернута. Балансиры нагрузки не очень дороги для запуска, но они примерно такие же, как и микро-экземпляр. –

+0

@KenLiu, Load Balancer более мощный, чем микро-экземпляр. – BigSack

34

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

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

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

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

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

+0

Во всяком случае, в моей концепции, я думаю, он хочет понять о производительности, которую мне не нравится в beanstalk, неисправности при развертывании и случаях бедствия, и все может быть одинаковым или лучше использовать LAMBDA. Жестко, но это серебряная пуля для вас. –

+0

Просто чтобы добавить к последнему пункту: вы можете отправить все журналы приложений в CloudWatch. – sebaGra

Смежные вопросы