Déploiement manuel vs Amazon Elastic Beanstalk
Quels sont les avantages que nous obtenons en utilisant Elastic Beanstalk sur maually la création d'instance EC2 et la configuration de serveur tomcat et déployer etc pour un type java web applicaion. Sont équilibrage de la charge, de Suivi et de mise à l'échelle automatique les seuls avantages?
Supposons que pour mon application web qui utilise la base de données j'ai installé la base de données dans l'instance EC2 lui-même. Lorsque Autoscalling prend place la base de données est créée dans l'instance nouvellement créée ou elle aura accès à la base de données que j'ai créé dans l'instance maître... Si il crée juste une réplique lors de la mise à l'échelle automatique se produit quelle sera la synchronisation des données entre les instances?
Vous devez vous connecter pour publier un commentaire.
Toutes les choses que vous avez mentionnées, comme l'équilibrage de la charge, de suivi et d'auto-mise à l'échelle sont certainement des avantages.
Cependant, vous devez sorte de penser de cette façon: En un véritable Plate-forme en tant que Service (PAAS), le but est de séparer l'application à partir de la plate-forme. En tant que développeur, vous avez seulement à vous soucier de votre application. La plate-forme est "loué" pour vous. La plate-forme "instances" sont automatiquement mis à jour, administré, à l'échelle, équilibré, etc. pour vous. Vous venez de télécharger votre fichier WAR et ça marche (au moins théoriquement).
EC2 en lui-même n'est pas PAAS. C'est plus comme IAAS (L'Infrastructure en tant que Service). Vous devez toujours prendre soin des instances de serveur, installez le logiciel sur eux, de les garder à jour, etc.
Elastic Beanstalk est un PAAS système. Sont donc App Engine et Azure parmi beaucoup d'autres.
Dans un vrai PAAS système, le SGBD est un composant distinct de l'application web serveur(s). La raison en est évidente: Le SGBD ne peut pas être installé sur les instances qui sont utilisés pour le serveur d'application, parce que, comme des instances sont créées et détruites en fonction de votre trafic, le SGBD serait perdu! Avoir le SGBD et serveur d'applications sur la même machine/de l'instance n'est généralement pas une bonne idée de toute façon.
Dans un PAAS système, le SGBD est un service distinct. Pour Amazon, il serait Amazon RDS. Tout comme avec Elastic Beanstalk, où vous n'avez pas à vous inquiéter au sujet de l'application serveur et que vous venez de télécharger votre fichier WAR, avec RDS, vous n'avez pas à vous soucier de le SGBD et que vous venez de déployer votre base de données(s).
Elastic Beanstalk et RDS fonctionnent très bien ensemble, surtout lorsqu'il est déployé dans la même zone de disponibilité, où le temps de latence serait très faible.
Enfin, à l'aide d'aws Elastic Beanstalk ne coûte rien de plus que les ressources déployées (instances EC2 et l'équilibrage de charge). Toutefois, RDS n'est pas pas cher et serait certainement plus cher que d'utiliser une seule instance EC2 pour le serveur d'application et le SGBD.
Elastic Beanstalk n'est plus que juste l'équilibrage de la charge, de suivi et de mise à l'échelle automatique.
1) Gère les versions d'application par le stockage et la gestion de différentes versions de votre application, vous permettant de basculer facilement d'avant en arrière entre les différentes versions de vos applications.
2) A la notion de "milieux" pour chaque application, vous permettant de déployer les différentes versions de votre application dans chaque environnement. C'est pratique par exemple si vous voulez mettre en place distincte de l'AQ et environnements de DEV, et que vous souhaitez déployer facilement une accumulation d'abord en DEV puis déployer la même version de l'application de l'assurance de la qualité lors de votre équipe de QA est prêt pour la prochaine génération.
3) s'Extériorise l'important conteneur des propriétés de configuration (Tomcat paramètres de la mémoire, par exemple) à la console d'aws Elastic Beanstalk et de l'API. En raison de cela, vous pouvez facilement enregistrer les paramètres et de les copier entre les environnements.
4) Afficher les fichiers journaux dans la console automatiquement roll et archiver les fichiers journal à S3. (Il est vrai que cette fonctionnalité est actuellement un peu faible.)
J'ai eu une application déployée à la fois dans EC2 dédié(Nginx & Gunicorn) et de l'Environnement Beanstalk(CentOS & Apache2).
Mes observations:
BeanStalk est Paas. Créer manuellement une instance EC2(IAAS), c'est comme de faire tout à partir de zéro, mais vous avez le contrôle solide.
BeanStalk est livré avec, par défaut, CentOS et Apache(Httpd). Vous pouvez choisir l'OS en instance dédiée.
Ces choses importantes pour moi,
Dans mon cas, j'ai eu à l'échelle (Beanstalk)serveur pour exécuter l'installation de certains paquets(comme pandoc). Ces choses sont plus simples dans Ubuntu.
Mise à l'échelle est beaucoup plus facile de BeanStalk. Le clonage des serveurs est simple dans BeanStalk.
J'avais pris le micro dans les deux cas (dédié & Beanstalk). Je me sentais dédié micro instance était mieux.
Déploiement automatisé dans Beanstalk. J'ai eu à écrire des scripts pour automatiser le même, ce qui est bien, puisque c'est seulement une fois.