¿Debo ir con Amazon EC2 en lugar de Amazon Elastic Beanstalk?

He estado en Beanstalk durante aproximadamente 3 años creando un par de aplicaciones web (http://rentersEdge.ca por ejemplo). También tengo una única instancia de EC2 que uso para el trabajo auxiliar. Principalmente puedo hablar con Beanstalk porque no he ejecutado mis aplicaciones fuera de EC2. Beanstalk tiene una gran herramienta de línea de comandos para hacer implementaciones. Mira lo que comprometiste por última vez con git y actualiza los archivos correctos en tus servidores remotos. También hace algunas cosas para ponerlo en funcionamiento más rápidamente, como instalar el servidor web en una máquina y la base de datos en otra y dejar que se comuniquen entre sí. Dicho esto, creo que cometí un error al ir directamente a beanstalk para mi pequeña aplicación web MVP. Tener todo en un solo EC2 vm me habría ahorrado un poco de molestia y probablemente algo de dinero. Desventajas de beanstalk:

  • Hacer una configuración personalizada es difícil, especialmente crear un httpd.conf personalizado para su aplicación. Parece no ser una manera fácil a pesar de mucha investigación. También tenga cuidado: si realiza CUALQUIER configuración personalizada por SSH en su servidor, se considera “fuera de banda” y se borra cada vez que se reemplaza su servidor. El servidor puede ser reemplazado en momentos aleatorios si AWS cree que están desactualizados o no son saludables. O si los apaga por accidente.
  • En segundo lugar, con una instancia EC2, puede apagarla y encenderla en cualquier momento y ahorrar dinero. Puede tener todo en uno y ahorrar dinero también. Para operaciones grandes, esto no importará, pero para un arranque bootstrap, esto hace la diferencia.
  • En tercer lugar, me resulta un poco más difícil dar acceso a Beanstalk a terceros. Con una simple vm, solo les das una cuenta ftp. Para beanstalk, debe averiguar los roles de IAM y hacer que instalen el cliente de CLI de beanstalk.

Beanstalk es un buen producto y realmente una buena opción si sabe que su servicio va a crecer. Obtiene equilibradores de carga y escalado automático configurados automáticamente, que está fuera de mi dominio. Pero si solo está haciendo un POC o un MVP y desea ver si funciona, y tiene alguna experiencia configurando las cosas usted mismo, considere una sola instancia de EC2.

Bueno, depende mucho del perfil que desee, es decir, si no quiere lidiar con la configuración de nivel de servidor y, en cambio, desea implementar de manera más rápida y fácil, pero también con el estándar que AWS usa, entonces Beanstalk es su elección. Pero si está buscando una solución en la que el objetivo principal sea la configuración y el rendimiento, debe elegir EC2, ya que puede configurarlo y ajustarlo todo lo que necesite, de modo que sea como lo desee y le quede mejor.

Mire este enlace a continuación para obtener más información sobre AWS y lo que puede hacer con él:

Soporte de AWS – Migración de AWS y servicios gestionados | Clickittech

Ambos tienen una función diferente.

EC2 es básicamente como un servidor estándar en el que puede probar su aplicación en eso, pero Elastic Beanstalk es diferente, es un servicio administrado por AWS, si algo se ejecuta en EC2, no necesariamente significa que se ejecutará TAL CUAL en EB. Es posible que tenga que cambiar su aplicación.

Creo que su pregunta probablemente necesita más información, pero supongamos que está buscando implementar un servicio web utilizando una configuración LAMP.

Si está compilando una prueba única o un producto que nunca necesitará actualización, entonces es posible que pueda construir el caso y enviar manualmente el código a una instancia de EC2.

Para mi tiempo y dinero, no hay nada más fácil que implementar en Elastic Beanstalk. Una vez que aprenda los pocos consejos y trucos para crear e implementar (con GIT) su código en un entorno EB (u OpsWorks, pero esto es un poco más complejo), nunca volverá a configurar una instancia EC2 manualmente para aplicaciones web .