ruby on rails - rails - AWS OpsWorks vs AWS Beanstalk vs AWS CloudFormation?
install elastic beanstalk ubuntu (8)
Me gustaría saber cuáles son las ventajas y desventajas del uso de AWS OpsWorks frente a AWS Beanstalk y AWS CLoudFormation.
La respuesta es, depende.
AWS OpsWorks y AWS Beanstalk son (me han dicho) simplemente diferentes formas de administrar su infraestructura, dependiendo de cómo piense al respecto. CloudFormation es simplemente una forma de personalizar su infraestructura.
Personalmente, estoy más familiarizado con Elastic Beanstalk, pero cada uno es suyo. Lo prefiero porque puede hacer implementaciones a través de Git. Es información pública que Elastic Beanstalk utiliza CloudFormation para lanzar sus entornos.
Para mis proyectos, uso ambos en tándem. Utilizo CloudFormation para construir un entorno VPC configurado a medida, cubos S3 y tablas DynamoDB que uso para mi aplicación. Luego, lanzo un entorno de Elastic Beanstalk dentro de la VPC personalizada que sabe cómo hablar con los recursos de S3 / DynamoDB.
Me interesa un sistema que pueda escalarse automáticamente para manejar cualquier cantidad de solicitudes web simultáneas (desde 1000 solicitudes por minuto hasta 10 millones de rpm), incluida una capa de base de datos que también puede ser escalable automáticamente.
Bajo el capó, OpsWorks y Elastic Beanstalk usan EC2 + CloudWatch + Auto Scaling, que es capaz de manejar las cargas de las que está hablando. RDS proporciona soporte para bases de datos escalables basadas en SQL.
En lugar de tener una instancia separada para cada aplicación, lo ideal sería compartir algunos recursos de hardware de manera eficiente. En el pasado, he usado principalmente una instancia de EC2 + RDS + Cloudfront + S3
Dependiendo de lo que quiera decir con " algunos recursos de hardware", siempre puede iniciar instancias EC2 independientes junto con los entornos OpsWorks o Elastic Beanstalk. En la actualidad, Elastic Beanstalk es compatible con una aplicación web por entorno. No recuerdo qué es lo que OpsWorks admite.
El sistema de pila albergará algunas aplicaciones de ruby on rails de alto tráfico que estamos migrando desde Heroku, también algunas aplicaciones python / django y algunas aplicaciones PHP.
Todo esto es totalmente compatible con AWS. OpsWorks y Elastic Beanstalk se han optimizado para una variedad de entornos de desarrollo (Ruby, Python y PHP están todos en la lista), mientras que EC2 proporciona servidores en bruto donde puede instalar todo lo que desee.
Me gustaría saber cuáles son las ventajas y desventajas del uso de AWS OpsWorks frente a AWS Beanstalk y AWS CloudFormation.
Me interesa un sistema que pueda escalarse automáticamente para manejar cualquier cantidad de solicitudes web simultáneas (desde 1000 solicitudes por minuto hasta 10 millones de rpm), incluida una capa de base de datos que también puede ser escalable automáticamente.
En lugar de tener una instancia separada para cada aplicación, lo ideal sería compartir algunos recursos de hardware de manera eficiente. En el pasado, he usado principalmente una instancia de EC2 + RDS + Cloudfront + S3
El sistema de pila albergará algunas aplicaciones de ruby on rails de alto tráfico que estamos migrando desde Heroku, también algunas aplicaciones python / django y algunas aplicaciones PHP.
Gracias por adelantado.
AWS CloudFormation: cree y actualice sus entornos.
AWS Opsworks: administre sus sistemas dentro de esos entornos como lo hacemos con Chef o Puppet
AWS Beanstalk: crea, administra e implementa.
Pero personalmente me gustan CloudFormation y OpsWorks al usar toda su potencia para lo que están destinados.
Use CloudFormation para crear su entorno y luego puede llamar a Opsworks desde los scripts de formación en la nube para iniciar su máquina. Luego tendrás la pila de Opsworks para administrarlo. Por ejemplo, agregue un usuario en la caja de linux usando Opsworks o haga parches en sus cajas usando recetas de chef. También puede escribir las recetas del chef para la implementación. De lo contrario, puede usar CodeDeploy específicamente para la implementación.
Como muchos otros han comentado AWS Beanstalk, AWS OpsWorks y AWS Cloud Formation ofrecen diferentes soluciones para diferentes problemas.
Para cumplir con
I am interested in a system that can be auto scaled to handle any high number of simultaneous web requests (From 1000 requests per minute to 10 million rpm.), including a database layer that can be auto scalable as well.
Y teniendo en cuenta que está en proceso de migración, le recomiendo encarecidamente que comience a echar un vistazo a la solución AWS Lambda & AWS DynamoDB (o híbrida).
Ambas están diseñadas para escalar automáticamente de una manera simple y pueden ser una solución muy económica.
En Opsworks puede compartir "roles" de capas en una pila para usar menos recursos al combinar los trabajos específicos que una instancia subyacente puede estar haciendo.
Lista de compatibilidad de capas (siempre que los grupos de seguridad estén configurados correctamente):
HA Proxy : custom, db-master, and memcached.
MySQL : custom, lb, memcached, monitoring-master, nodejs-app, php-app, rails-app, and web.
Java : custom, db-master, and memcached.
Node.js : custom, db-master, memcached, and monitoring-master
PHP : custom, db-master, memcached, monitoring-master, and rails-app.
Rails : custom, db-master, memcached, monitoring-master, php-app.
Static : custom, db-master, memcached.
Custom : custom, db-master, lb, memcached, monitoring-master, nodejs-app, php-app, rails-app, and web
Ganglia : custom, db-master, memcached, php-app, rails-app.
Memcached : custom, db-master, lb, monitoring-master, nodejs-app, php-app, rails-app, and web.
referencia: http://docs.aws.amazon.com/opsworks/latest/userguide/layers.html
OpsWorks es una herramienta de orquestación como Chef, de hecho, se deriva de Chef - Puppet, Ansible o Saltstalk. Utiliza Opsworks para especificar el estado en el que desea que esté su red especificando el estado en el que desea que cada recurso (instancias de servidor, aplicaciones, almacenamiento) desee que esté en ese recurso. Y especifica el estado que desea que cada uno recurso para estar especificando el valor que desea para cada atributo del estado. Por ejemplo, es posible que desee que el servicio Apache esté siempre en funcionamiento y que la parte superior siempre comience al arrancar con Apache como el usuario y apache como el grupo Linux.
CloudFormation es una plantilla json (**) que especifica el estado de los recursos que desea implementar, es decir, desea implementar una instancia de AWS EC2 micro t2 en us-east-1 como parte de la VPC 192.168.1.0/24 . En el caso de una instancia EC2, puede especificar qué debe ejecutarse en ese recurso a través de su script bash personalizado en la sección de datos de usuario del recurso EC2. CloudFormation es solo una plantilla. La plantilla se desarrolla como un recurso en ejecución solo si la ejecuta a través de AWS Management Console para CloudFormation o si ejecuta el comando aws cli para Cloudformation, es decir, awsformación de la nube ...
ElasticBeanstalk es un PAAS: puede cargar específicamente las aplicaciones Ruby / Rails, node.js o Python / django o Python / Flask. Si está ejecutando algo más como Scala, Haskell o cualquier otra cosa, cree una imagen de Docker y cargue esa imagen de Docker en Elastic Beanstalk (*).
Puede cargar su aplicación en Elastic Beanstalk ejecutando el aws cli para CloudFormation o crear una receta para que Opsworks cargue su aplicación en Elastic Beanstalk. También puede ejecutar aws cli para Cloudformation a través de Opsworks.
(*) De hecho, la documentación de AWS en su ejemplo de la aplicación Ruby era tan pobre que perdí la paciencia e incrustó la aplicación de ejemplo en una imagen Docker y cargué la imagen Docker en Elastic Beanstalk.
(**) A partir de septiembre de 2016, Cloudformation también admite plantillas YAML.
AWS Beanstalk: Implementa y administra aplicaciones en la nube de AWS sin preocuparse por la infraestructura que ejecuta las aplicaciones web con Elastic Beanstalk. No necesita preocuparse por EC2 o las instalaciones.
AWS OpsWorks AWS OpsWorks no es más que un servicio de administración de aplicaciones que facilita a los nuevos usuarios de DevOps modelar y administrar toda su aplicación
AWS OpsWorks : esto es parte del servicio de administración de AWS. Ayuda a configurar la aplicación usando scripts. Utiliza Chef como el marco de Devops para la administración y operación de esta aplicación. Hay plantillas que se pueden usar para la configuración del servidor, la base de datos, el almacenamiento. Las plantillas también se pueden personalizar para realizar cualquier otra tarea. DevOps Engineers tiene control sobre las dependencias y la infraestructura de la aplicación.
AWS Beanstalk : proporciona el entorno para lenguaje como Java, Node Js, Python, Ruby Go. El tallo de haba elástica proporciona el recurso para ejecutar la aplicación. Los desarrolladores no deben preocuparse por la infraestructura y no tienen control sobre la infraestructura.
AWS CloudFormation : CloudFormation tiene plantillas de ejemplo para administrar los recursos de AWS en orden.
CloudFormation: AWS CloudFormation es un servicio que le ayuda a modelar y configurar sus recursos de Amazon Web Services para que pueda dedicar menos tiempo a administrar esos recursos y más tiempo para enfocarse en sus aplicaciones que se ejecutan en AWS.it template. La plantilla describe los recursos quieres y sus configuraciones
Beanstalk elástico
Con Elastic Beanstalk, puede implementar y administrar rápidamente aplicaciones en la nube de AWS sin preocuparse por la infraestructura que ejecuta esas aplicaciones. En este sentido, es similar a CloudFormation. Como cuestión de hecho, en realidad usa plantillas y scripts de CloudFormation para ...
- Cree un equilibrador de carga y un grupo de escala automática.
- Copie el código a S3.
- Bootstrap una instancia de EC2 para descargar el código de S3 y desplegarlo.
OpsWorks
OpsWorks le permite automatizar las acciones de gestión para que se realicen de forma automática y confiable. Puede beneficiarse de la conmutación por error automática, la administración de paquetes, la configuración de RAID por volumen de EBS y la escala automática basada en reglas o basada en el tiempo.
Ahora algo de gran imagen