Все упомянутые вами вещи, такие как балансировка нагрузки, мониторинг и автоматическое масштабирование, безусловно, являются преимуществами.
Однако вы должны думать об этом следующим образом: в настоящей платформе как услуге (PAAS) цель состоит в том, чтобы отделить приложение от платформы. Как разработчик, вы беспокоитесь только о своем приложении. Платформа вам «сдана в аренду». «Экземпляры» платформы автоматически обновляются, администрируются, масштабируются, балансируются и т. Д. Для вас. Вы просто загружаете свой файл WAR, и он просто работает (по крайней мере, теоретически).
EC2 сам по себе не является PAAS. Это больше похоже на IAAS ( Инфраструктура как услуга). ). Вам по-прежнему нужно заботиться об экземплярах серверов, устанавливать на них программное обеспечение, обновлять их и т. Д.
Elastic Beanstalk - это система PAAS. Так же, как App Engine и Azure среди многих других.
В настоящей системе PAAS СУБД является отдельным компонентом от серверов веб-приложений. Причина очевидна: СУБД невозможно установить на экземплярах, которые используются для сервера приложений, потому что, поскольку экземпляры создаются и уничтожаются на основе вашего трафика, СУБД будет потеряна! В любом случае, размещение СУБД и сервера приложений на одном компьютере / экземпляре - не самая лучшая идея.
В системе PAAS СУБД - это отдельная служба. Для Amazon это будет Amazon RDS . Как и в случае с Elastic Beanstalk, где вам не нужно беспокоиться о сервере приложений, и вы просто загружаете свой файл WAR, с RDS вам не нужно беспокоиться о СУБД, и вы просто развертываете свою базу данных (базы данных).
Elastic Beanstalk и RDS очень хорошо работают вместе, особенно при развертывании в одной зоне доступности, где задержка будет очень низкой.
Наконец, использование Elastic Beanstalk не стоит больше, чем развернутые ресурсы (экземпляры EC2 и балансировщик нагрузки). Однако RDS стоит недешево и определенно будет дороже, чем использование одного экземпляра EC2 как для сервера приложений, так и для СУБД.