AWS OpsWorks vs AWS Beanstalk vs AWS CloudFormation?

J’aimerais savoir quels sont les avantages et les inconvénients de l’utilisation d’AWS OpsWorks vs AWS Beanstalk et AWS CloudFormation?

Je suis intéressé par un système pouvant être mis à l’échelle automatiquement pour gérer un nombre élevé de requêtes Web simultanées (de 1 000 requêtes par minute à 10 millions de tours par minute), y compris une couche de firebase database pouvant également être mise à l’échelle automatiquement.

Au lieu d’avoir une instance distincte pour chaque application, j’aimerais idéalement partager certaines ressources matérielles efficacement. Dans le passé, j’ai surtout utilisé une instance EC2 + RDS + Cloudfront + S3

Le système de stack hébergera certaines applications à fort trafic ruby ​​on rails que nous migrons depuis Heroku, ainsi que certaines applications python / django et certaines applications PHP.

Merci d’avance.

J’aimerais savoir quels sont les avantages et les inconvénients de l’utilisation d’AWS OpsWorks vs AWS Beanstalk et AWS CLoudFormation?

La réponse est: cela dépend.

AWS OpsWorks et AWS Beanstalk sont (je l’ai déjà dit) des manières différentes de gérer votre infrastructure, en fonction de votre façon de penser. CloudFormation est simplement un moyen de modéliser votre infrastructure.

Personnellement, je suis plus familier avec Elastic Beanstalk, mais pour chacun d’eux. Je le préfère car il peut faire des déploiements via Git. Elastic Beanstalk utilise CloudFormation sous le capot pour lancer ses environnements.

Pour mes projets, je les utilise tous deux en tandem. J’utilise CloudFormation pour construire un environnement VPC personnalisé, des compartiments S3 et des tables DynamoDB que j’utilise pour mon application. Ensuite, je lance un environnement Elastic Beanstalk à l’intérieur du VPC personnalisé qui sait comment communiquer avec les ressources S3 / DynamoDB.

Je suis intéressé par un système pouvant être mis à l’échelle automatiquement pour gérer un nombre élevé de requêtes Web simultanées (de 1 000 requêtes par minute à 10 millions de tours par minute), y compris une couche de firebase database pouvant également être mise à l’échelle automatiquement.

Sous le capot, OpsWorks et Elastic Beanstalk utilisent EC2 + CloudWatch + Auto Scaling, capable de gérer les charges dont vous parlez. RDS prend en charge les bases de données SQL évolutives.

Au lieu d’avoir une instance distincte pour chaque application, j’aimerais idéalement partager certaines ressources matérielles efficacement. Dans le passé, j’ai surtout utilisé une instance EC2 + RDS + Cloudfront + S3

Selon ce que vous entendez par “ressources matérielles”, vous pouvez toujours lancer des instances EC2 autonomes avec les environnements OpsWorks ou Elastic Beanstalk. À l’heure actuelle, Elastic Beanstalk prend en charge une application Web par environnement. Je ne me rappelle pas ce que OpsWorks prend en charge.

Le système de stack hébergera certaines applications à fort trafic ruby ​​on rails que nous migrons depuis Heroku, ainsi que certaines applications python / django et certaines applications PHP.

Tout cela est entièrement pris en charge par AWS. OpsWorks et Elastic Beanstalk se sont optimisés pour un éventail d’environnements de développement (Ruby, Python et PHP sont tous dans la liste), tandis que EC2 fournit des serveurs bruts sur lesquels vous pouvez installer tout ce que vous souhaitez.

OpsWorks est un outil d’orchestration tel que Chef – en fait, il est dérivé de Chef-Puppet, Ansible ou Saltstalk. Vous utilisez Opsworks pour spécifier l’état dans lequel vous souhaitez que votre réseau soit en spécifiant l’état dans lequel vous souhaitez que chaque ressource (instances de serveur, applications, stockage) se trouve. Et vous spécifiez l’état dans lequel vous souhaitez que chaque ressource soit par en spécifiant la valeur que vous souhaitez pour chaque atsortingbut de cet état. Par exemple, vous pouvez souhaiter que le service Apache soit toujours opérationnel et démarre au démarrage avec Apache en tant qu’utilisateur et Apache en tant que groupe Linux.

CloudFormation est un modèle json (**) qui spécifie l’état de la ou des ressources que vous souhaitez déployer, c’est-à-dire que vous souhaitez déployer une instance AWS EC2 micro t2 dans us-east-1 dans le cadre du VPC 192.168.1.0/24. . Dans le cas d’une instance EC2, vous pouvez spécifier ce qui doit s’exécuter sur cette ressource via votre script bash personnalisé dans la section user-data de la ressource EC2. CloudFormation est juste un modèle. Le modèle est fusionné en tant que ressource en cours d’exécution uniquement si vous l’exécutez via AWS Management Console pour CloudFormation ou si vous exécutez la commande aws cli pour Cloudformation, c.-à-d.

ElasticBeanstalk est un PAAS, vous pouvez télécharger les applications spécifiquement Ruby / Rails, node.js ou Python / django ou Python / Flask. Si vous utilisez quelque chose comme Scala, Haskell ou autre, créez une image Docker et téléchargez cette image Docker dans Elastic Beanstalk (*).

Vous pouvez effectuer le téléchargement de votre application dans Elastic Beanstalk en exécutant la commande aws cli pour CloudFormation ou en créant une recette pour Opsworks afin de télécharger votre application dans Elastic Beanstalk. Vous pouvez également exécuter le aws cli pour Cloudformation via Opsworks.

(*) En fait, la documentation d’AWS sur son exemple d’application Ruby était si médiocre que j’ai perdu patience et incorporé l’exemple d’application dans une image Docker et téléchargé l’image Docker dans Elastic Beanstalk.

(**) Depuis septembre 2016, Cloudformation prend également en charge les modèles YAML.

Dans Opsworks, vous pouvez partager des «rôles» de couches sur une stack pour utiliser moins de ressources en combinant les tâches spécifiques d’une instance sous-jacente.

Liste de compatibilité des calques (tant que les groupes de sécurité sont correctement définis):

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. 

référence: http://docs.aws.amazon.com/opsworks/latest/userguide/layers.html

AWS Beanstalk: Déployez et gérez des applications dans le cloud AWS sans vous soucier de l’infrastructure qui exécute vos applications Web avec Elastic Beanstalk. Pas besoin de s’inquiéter de EC2 ou des installations.

AWS OpsWorks AWS OpsWorks n’est rien d’autre qu’un service de gestion des applications qui permet aux nouveaux utilisateurs DevOps de modéliser et de gérer l’intégralité de leur application

CloudFormation: AWS CloudFormation est un service qui vous aide à modéliser et à configurer vos ressources Amazon Web Services afin de passer moins de temps à gérer ces ressources et à consacrer plus de temps à vos applications exécutées dans un modèle AWS.it. vous voulez et leurs parameters. entrer la description de l'image ici

Haricot Élastique

Avec Elastic Beanstalk, vous pouvez déployer et gérer rapidement des applications dans le cloud AWS sans vous soucier de l’infrastructure qui les exécute. À cet égard, il est similaire à CloudFormation. En fait, il utilise en réalité des modèles et des scripts CloudFormation pour…

  • Créez un équilibreur de charge et un groupe Auto Scaling.
  • Copiez le code sur S3.
  • Amorcez une instance EC2 pour télécharger le code depuis S3 et le déployer.

OpsWorks

OpsWorks vous permet d’automatiser les actions de gestion afin qu’elles soient effectuées automatiquement et de manière fiable. Vous pouvez bénéficier du basculement automatique, de la gestion des packages, de la configuration RAID de volume EBS et de la mise à l’échelle automatique basée sur des règles ou sur le temps.

Maintenant une grande image

entrer la description de l'image ici entrer la description de l'image ici entrer la description de l'image ici

AWS CloudFormation – Créez et mettez à jour vos environnements.

AWS Opsworks – Gérez vos systèmes dans des environnements tels que Chef ou Puppet

AWS Beanstalk – Créer, gérer et déployer.

Mais personnellement, j’aime CloudFormation et OpsWorks tous les deux en utilisant toute leur puissance pour ce à quoi ils sont destinés.

Utilisez CloudFormation pour créer votre environnement, puis vous pouvez appeler Opsworks à partir de scripts de formation cloud pour lancer votre machine. Ensuite, vous aurez la stack Opsworks pour le gérer. Par exemple, ajoutez un utilisateur dans la boîte Linux en utilisant Opsworks ou effectuez une correction de vos boîtes à l’aide de recettes de chef. Vous pouvez également écrire des recettes de chef pour le déploiement. Sinon, vous pouvez utiliser CodeDeploy spécifiquement pour le déploiement.

AWS OpsWorks – Ceci fait partie du service de gestion AWS. Il aide à configurer l’application à l’aide de scripts. Il utilise Chef comme cadre de développement pour la gestion et le fonctionnement de l’application. Il existe des modèles pouvant être utilisés pour la configuration du serveur, de la firebase database et du stockage. Les modèles peuvent également être personnalisés pour effectuer toute autre tâche. Les ingénieurs DevOps contrôlent les dépendances et l’infrastructure de l’application.

AWS Beanstalk – Il fournit l’environnement pour les langages tels que Java, Node Js, Python, Ruby Go. Elastic Bean Stalk fournit la ressource pour exécuter l’application. Les développeurs ne s’inquiètent pas de l’infrastructure et n’ont aucun contrôle sur l’infrastructure.

AWS CloudFormation – CloudFormation dispose d’exemples de modèles pour gérer les ressources AWS dans l’ordre.

Comme beaucoup d’autres l’ont signalé, AWS Beanstalk, AWS OpsWorks et AWS Cloud Formation proposent différentes solutions pour différents problèmes.

Afin d’accomplir avec

 I am interestd 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. 

Et compte tenu de votre processus de migration, je vous recommande fortement de commencer à examiner la solution AWS Lambda & AWS DynamoDB (ou hybride).

Les deux sont conçus pour une mise à l’échelle automatique simple et peuvent être une solution très économique.

Il suffit d’utiliser terraform et ECS ou EKS.

opsworks, beanstalk élastique et cloudformation ancienne technologie maintenant. -)