Was ist der Unterschied zwischen Elastic Beanstalk und CloudFormation für ein .NET-Projekt?
Ich entwickelt haben .NET MVC-Anwendung und haben angefangen zu spielen, um mit AWS und der Bereitstellung über Visual Studio-Toolkit. Ich habe erfolgreich eingesetzt die Anwendung über die Elastic Beanstalk-option im toolkit.
Als ich im Begriff war über die tutorials für die Bereitstellung .NET-apps in AWS mit dem toolkit, die ich bemerkte, gibt es tutorials für die Bereitstellung von mit beide Elastic Beanstalk und CloudFormation. Was ist der Unterschied zwischen diesen beiden?
Was ich sagen kann, es scheint, wie Sie beide im wesentlichen das gleiche tun - wodurch es leichter zu implementieren Sie Ihre Anwendung in die AWS-cloud (Aufbau EC2-instances, load-balancer, auto-Skalierung, etc). Ich habe versucht zu Lesen, bis auf Sie beide, aber ich kann nicht scheinen, um etwas anderes als ein paar buzz-Wörter, die klingen wie die gleiche Sache zu mir. Ich fand sogar ein FAQ auf der AWS-website, soll die Antwort auf diese genaue Frage, aber verstehe ich nicht wirklich.
Soll ich mich mit der ein oder anderen? Beide?
InformationsquelleAutor der Frage kspearrin | 2013-01-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Eigentlich sind Sie ziemlich Verschieden. Elastic Beanstalk soll Entwicklern das Leben erleichtern. CloudFormation ist vorgesehen, um Systeme von Ingenieuren das Leben leichter.
Elastic Beanstalk ist ein PaaS-Schicht ontop von AWS-IaaS-services abstracts Weg der zugrunde liegenden EC2-instances Elastic Load Balancer, auto scaling-Gruppen, etc. Dies macht es viel einfacher für Entwickler, die nicht wollen, zu tun, die mit allen Systemen Zeug, um Ihre Anwendung schnell zu der Bereitstellung auf AWS. Es ist sehr ähnlich zu anderen PaaS-Produkte wie Heroku, EngineYard, Google App Engine, etc. Mit Elastic Beanstalk, Sie brauchen nicht zu verstehen, wie die zugrunde liegende Magie funktioniert.
CloudFormation, auf der anderen Seite, nicht automatisch nichts tun. Es ist einfach eine Möglichkeit, zu definieren, alle erforderlichen Ressourcen für die Bereitstellung einer großen JSON-Datei. So ein CloudFormation-Vorlage könnte in der Tat erstellen Sie zwei ElasticBeanstalk Umgebungen (Produktion und Inszenierung), ein paar ElasticCache-Cluster, eine DyanmoDB Tabelle, und dann den richtigen DNS in Route53. Ich laden Sie dann diese Vorlage, um AWS, zu Fuß entfernt, und 45 Minuten später ist alles fertig und wartet. Da es nur ein plain-text, JSON-Datei, kann ich stick it in my source control, das ist ein guter Weg, um die version meiner Anwendung Installationen. Es stellt auch sicher, dass ich eine wiederholbare, "known good" - Konfiguration, die ich schnell bereitstellen können, die in einer anderen region.
InformationsquelleAutor der Antwort jamieb
Für den Einstieg die schnelle Bereitstellung von einem standard .NET web-Anwendung, Elastic Beanstalk ist der richtige service für Sie.
App Services-Grafik-Vergleich http://www.allthingsdistributed.com/images/app-svcs-comparison-graphic.png
AWS CloudFormation: "Template-Driven Provisioning"
CloudFormation (CFn) ist ein leichtes, low-level-Abstraktion über die bestehenden AWS-APIs. Die Verwendung einer statischen JSON/YAML Vorlage Dokument deklarieren Sie eine Reihe von Ressourcen (wie ein EC2-Instanz oder eine S3-bucket), die entsprechen, um CRUD-Operationen auf die AWS-APIs.
Beim erstellen einer CloudFormation-Stacks, CloudFormation ruft die entsprechenden APIs zu erstellen, die dazugehörigen Ressourcen, und wenn Sie löschen ein stack, CloudFormation ruft die entsprechenden APIs, um Sie zu löschen. Die meisten (aber nicht alle) AWS-APIs unterstützt werden.
AWS Elastic Beanstalk: "Web-Apps Leicht Gemacht"
Elastic Beanstalk (EB) ist eine höhere Ebene, managed platform-as-a-service " (PaaS) für das hosting von web-Anwendungen, ähnlich wie im Bereich Heroku. Anstatt sich mit low-level-AWS-Ressourcen direkt, EB bietet eine vollständig verwaltete Plattform, wo Sie erstellen Sie eine Anwendung Umgebung mit einem web-interface, wählen Sie die Plattform Ihre Anwendung, erstellen und hochladen einer Quelle bundle und EB übernimmt den rest.
Mit EB, Sie bekommen alle Arten von integrierten Funktionen für die mit der überwachung Ihrer Anwendung Umgebung und die Bereitstellung neuer Versionen der Anwendung.
Unter der Haube, EB verwendet CloudFormation zu erstellen und zu verwalten, die Anwendung der verschiedenen AWS-Ressourcen. Sie können Sie anpassen und erweitern der Standard-EB Umfeld, indem CloudFormation-Ressourcen zu einem EB-Konfigurationsdatei bereitgestellt, die mit Ihrer Anwendung.
Fazit
Wenn Ihre Anwendung ist eine standard-web-tier-Anwendung mit einer Elastic Beanstalk-unterstützten Plattformen, und Sie wollen einfach zu verwaltenden, hoch skalierbaren hosting für Ihre Anwendung, mit Elastic Beanstalk.
Wenn Sie:
dann CloudFormation verwenden, direkt und vermeiden Sie die hinzugefügte Konfiguration layer of Elastic Beanstalk.
InformationsquelleAutor der Antwort wjordan
Gibt es noch andere Unterschiede erwähnenswert. Elastic beanstalk ist konzipiert als ein Behälter für eine einzelne app. Ich habe mehrere websites und Dienste, aber fand es sehr schwierig die Bereitstellung mehrerer websites mit beanstalk und wurde geraten, nach mehreren versuchen, die durch AWS-Hilfe zur Nutzung von cloud formation in dieser situation, da es die zusätzliche Flexibilität.
Es gibt eine wirklich hilfreiche Artikel über bootstrapping AWS cloud formation und Aktualisierung einer Laufenden Website hier das ist viel übersichtlicher als die AWS-Seiten. Immer noch versuchen zu arbeiten, wenn wir können bereitstellen von VS direkt auf die Wolkenbildung gespeicherte Vorlage auf S3 und es auf auto-update wie beanstalk...
InformationsquelleAutor der Antwort Matt
Wolkenbildung ist ein service, mit dem Sie bei der Bereitstellung von AWS-services. Erstellen Sie eine Vorlage-Datei, die beschreibt, welche Dienste Sie wollen. Wenn Sie die Bereitstellung dieser Vorlage, die Bildung von Wolken erstellt die Ressourcen für Sie als "Paket". Alle Ressourcen, die Sie in Ihrer Vorlage definierten gestartet werden und beendet sich zusammen. Beispiele der Typen von Ressourcen, die erstellt werden können mit der Wolkenbildung sind: S3, EC2-instances, Autoskalierender, DynamoDb, etc. Für EC2, Cloud Formation gibt Ihnen auch die Möglichkeit zu nutzen "cfn-init-Skripte;, die verwendet werden können in Verbindung mit der Vorlage für boot-strap Ihre Instanzen.
Elastic Beanstalk verwendet Wolkenbildung Vorlagen und Skipte: 1. Erstellen eines Load-Balancer-und Auto Scaling-Gruppe, 2. Kopieren Sie den code S3, 3. Bootstrap eine Ec2-Instanz zu Laden den code von S3 und installieren Sie es.
Wolkenbildung ist nicht so einfach zu bedienen wie EB, aber es ist viel mehr mächtig, da können Sie erstellen, die in anderen Ressourcen als EC2-Instanzen, die kontrollieren, wie die cfn-init-Skript, und etc.
InformationsquelleAutor der Antwort Edwin
Elastic Beanstalk verwaltet automatisch Griffe, die Bereitstellung von kapazitätsbereitstellung, Lastverteilung, automatische Skalierung der Anwendung health monitoring basiert auf dem code, die Sie hochladen, wo, wie CloudFormation ist ein automatisiertes provisioning engine entwickelt, um die Bereitstellung gesamte cloud-Umgebungen über eine JSON-Skript.
InformationsquelleAutor der Antwort Mahesh Bablu