Todas las cosas que mencionó, como el equilibrio de carga, la supervisión y el escalado automático, son definitivamente ventajas.
Sin embargo, debe pensarlo de esta manera: en una verdadera plataforma como servicio (PAAS), el objetivo es separar la aplicación de la plataforma. Como desarrollador, solo te preocupas por tu aplicación. La plataforma se le "alquila". Las "instancias" de la plataforma se actualizan, administran, escalan, equilibran, etc. automáticamente para usted. Simplemente sube tu archivo WAR y simplemente funciona (al menos en teoría).
EC2 por sí solo no es PAAS. Es más como IAAS ( Infraestructura como servicio ). Aún debe cuidar las instancias del servidor, instalar software en ellas, mantenerlas actualizadas, etc.
Elastic Beanstalk es un sistema PAAS. También lo son App Engine y Azure, entre muchos otros.
En un verdadero sistema PAAS, el DBMS es un componente separado de los servidores de aplicaciones web. La razón es obvia: el DBMS no se puede instalar en las instancias que se están utilizando para el servidor de aplicaciones porque, a medida que las instancias se crean y destruyen en función de su tráfico, ¡el DBMS se perderá! Tener el DBMS y el servidor de aplicaciones en la misma máquina / instancia generalmente no es una buena idea de todos modos.
En un sistema PAAS, el DBMS es un servicio separado. Para Amazon, sería Amazon RDS . Al igual que con Elastic Beanstalk, donde no tiene que preocuparse por el servidor de aplicaciones y simplemente carga su archivo WAR, con RDS, no tiene que preocuparse por el DBMS y simplemente implementa su (s) base de datos (s).
Elastic Beanstalk y RDS funcionan muy bien juntos, especialmente cuando se implementan en la misma zona de disponibilidad, donde la latencia sería muy baja.
Finalmente, usar Elastic Beanstalk no cuesta nada más que los recursos implementados (instancias EC2 y el balanceador de carga). Sin embargo, RDS no es barato y definitivamente sería más caro que usar una sola instancia EC2 tanto para el servidor de aplicaciones como para el DBMS.
Elastic Beanstalk hace más que solo equilibrar la carga, supervisar y ajustar la escala automáticamente.
1) Administra las versiones de la aplicación almacenando y administrando diferentes versiones de su aplicación, lo que le permite alternar fácilmente entre las diferentes versiones de sus aplicaciones.
2) Tiene el concepto de "entornos" para cada aplicación, lo que le permite implementar diferentes versiones de su aplicación en cada entorno. Esto es útil, por ejemplo, si desea configurar entornos de QA y DEV separados, y desea implementar fácilmente una compilación primero en DEV y luego implementar la misma versión de la aplicación en QA cuando su equipo de QA esté listo para la siguiente compilación.
3) Externaliza las propiedades importantes de configuración del contenedor (configuración de memoria de Tomcat, por ejemplo) a la consola y API de Elastic Beanstalk. Debido a esto, puede guardar fácilmente la configuración y copiarla entre entornos.
4) Vea los archivos de registro de la aplicación a través de la consola y automáticamente transfiera y archive los archivos de registro en S3. (Es cierto que esta característica es actualmente un poco débil).
fuente
Tenía una aplicación implementada tanto en EC2 dedicada (Nginx y Gunicorn) como en Beanstalk Environment (CentOS y Apache2).
Mis observaciones:
BeanStalk es Paas. Crear manualmente una instancia EC2 (IAAS) es como hacer todo desde cero, pero tiene un control sólido.
BeanStalk viene con CentOS y Apache (Httpd) por defecto. Puede elegir el sistema operativo en una instancia dedicada.
Estas cosas que me importaban
En mi caso, tuve que escalar el servidor (Beanstalk) para ejecutar la instalación de algunos paquetes (como pandoc). Estas cosas son más simples en Ubuntu.
Escalar es mucho más fácil en BeanStalk. La clonación de servidores es sencilla en BeanStalk.
Había tomado micro en ambos casos (dedicado y Beanstalk). Sentí que la micro instancia dedicada era mejor.
Despliegue automatizado en Beanstalk. Tuve que escribir scripts para automatizar lo mismo, lo cual está bien, ya que es solo una vez.
fuente