Ответ 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 для сервера приложений и СУБД.