Grundlagen und Zweck von AWS Elastic Beanstalk Anwendungsbereitstellung unter AWS Elastic Beanstalk Teil 1

AWS Elastic Beanstalk; die schnellste Variante zum Bereitstellen eines LAMP-Stacks unter AWS.

Elastic Beanstalk erleichtert Entwicklern das Bereitstellen und Verwalten von Anwendungen in der AWS-Cloud. Entwickler laden einfach ihre Anwendung und der Service verwaltet automatisch Kapazitätsbereitstellung, Lastverteilung, automatischen Skalierung und Statusüberwachung.

Die drei wichtigsten Automatisierungs-Framework in AWS heißen Elastic Beanstalk, OpsWorks und CloudFormation. Das per Default auf DockerContainern aufsetzende Elastic Beanstalk stellt Plattformen zum Betreiben von PHP-, Ruby-, Tomcat- oder Java-Anwendungen automatisiert bereit.

Programmierer können sich damit ganz auf ihre Anwendungen konzentrieren. Diese müssen lediglich in Beanstalk hochgeladen werden, ohne dass sich der Entwickler Gedanken über die dazu benötigte Infrastruktur machen muss.

PaaS à la AWS

Elastic Beanstalk steht als klassisches PaaS-Konzept in direkter Konkurrenz zu ähnlich gelagerten Lösungen wie Pivotal CloudFoundry oder der Red Hat OpenShift Container Platform. Der AWS-Dienst adressiert in erster Linie Entwickler, die Web-Anwendungen und Services mit Java, PHP, .NET, Python, Node.js, Ruby, Go und/oder Docker unkompliziert entwickeln wollen. Sie müssen sich damit nämlich weder um die Bereitstellung und Administration der benötigten Infrastruktur für den (ggf. auch hochverfügbaren) Betrieb von Webservern oder Datenbanken kümmern noch um das Bereitstellen passender Laufzeitumgebungen.

Die Idee hinter Beanstalk ist, dass sich die typischen Stacks für den Betrieb von Web-Anwendungen bei den meisten Unternehmen weitgehend ähneln. Entwickler müssen mit Beanstalk nur noch ihre Anwendungen hochladen und Elastic Beanstalk verwaltet automatisch sämtliche Details der Kapazitätsbereitstellung, Lastverteilung, automatischen Skalierung und Statusüberwachung.

Elastic Beanstalk eignet sich damit vor allem für Benutzer, die Anwendungen bei Bedarf möglichst schnell in der AWS Cloud bereitstellen und verwalten wollen, ohne über Erfahrungen mit Cloud Computing an sich zu verfügen. Konkret eignet sich Elastic Beanstalk für folgende Anwendungsarten mit ihren jeweiligen Entwicklungs-Stacks:

  • Java-Anwendungen: Apache Tomcat
  • PHP-Anwendungen: Apache Webserver
  • Phython-Anwendungen: Apache Webserver
  • Node.Js-Anwendungen: Apache und-/oder NginX-Webserver
  • .NET-Anwendungen: IIS 7.5, 8.0 oder 8.5
  • Ruby-Anwendungen: Puma oder Passenger sowie
  • Docker, Java SE und Go

Weitere unterstützte Plattformen finden sich in der Beanstalk-Dokumentation. Intern bedient sich natürlich auch Elastic Beanstalk im hauseigenen Regal, denn AWS baut alle seine höher angesiedelten Dienste auf Basis der eigenen Infrastruktur-Services. So bestehen die von Elastic Beantstalk erzeugten Deployments letztendlich ebenfalls aus Amazon EC2- (Amazon Linux-AMI oder Windows Server 2012 R2-AMI) sowie RDS-Instanzen und verwenden je nach Bedarf die Dienste und Funktionen Elastic Load Balancing, Auto Scaling, Amazon S3 und Amazon Simple und Notification Service (SNS).

So arbeitet Elastic Beanstalk

In der Praxis lädt der Entwickler lediglich seinen Bereitstellungsode (z. B. als WAR-Datei) in Elastic Beanstalk hoch und die Plattform kümmert sich um alles Weitere. In wenigen Minuten erhält der Entwickler damit im Idealfall eine Umgebung, in der sich eine Version seiner Anwendung betreiben lässt. Im einfachsten Fall bedient er sich dazu einfach der grafischen AWS Management Console.

Versierte Nutzer greifen dazu allerdings häufig lieber zur Elastic-Beanstalk-CLI. Dabei leisten z. B. das AWS Toolkit for Visual Studiound das AWS Toolkit for Eclipse wertvolle Hilfe. Beide unterstützen das Bereitstellen einer Anwendung für AWS Elastic Beanstalk sowie das Verwalten der Anwendung, ohne dass der Nutzer seine eigene integrierte Entwicklungsumgebung verlassen muss. Auch hier automatisiert Elastic Beanstalk Management-Aufgaben wie Überwachung, Anwendungsversionsbereitstellung oder die essentielle Statusüberprüfung und ermöglicht einen einfachen Zugriff auf Log-Dateien.

Elastic Beanstalk und seine PaaS-Konkurrenten

Was aber macht Elastic Beanstalk anders oder besser als andere Container-Plattformen? Dazu muss man fairerweise sagen, dass andere Application-Container- bzw. PaaS-Lösungen den Programmierungsaufwand ebenfalls deutlich reduzieren. Allerdings beschränken die üblichen PaaS-Systeme dabei meist auch die Flexibilität und räumen dem Entwickler nur bedingte Steuerungsmöglichkeiten ein. Dieser ist dann in der Regel gezwungen, Default-Einstellungen des jeweiligen Anbieters zu übernehmen, und hat meist keine oder nur rudimentäre Möglichkeiten, einzelne Bereiche der Anwendungsinfrastruktur selbst zu steuern.

AWS Elastic Beanstalk hingegen erlaubt Entwicklern die volle Kontrolle über alle AWS-Ressourcen „hinter“ ihrer Anwendung. Möchten Entwickler Elemente der bereitgestellten Infrastruktur selbst verwalten, gelingt das einfach über die Managementfunktionen von Elastic Beanstalk, etwa im Elastic-Beanstalk-Dashboard der Management Console in den Menüs „Configuration“, „Logs“, „Health“, „Alarms“, Events“ usw. So kann der Nutzer z. B. bei Elastic Beanstalk das Betriebssystem selbst wählen, das für seine Anwendungsanforderungen am besten geeignet ist, oder z. B. aus einer breiten Palette an Datenbanken und Speicherkonfigurationen wählen.

Hier weiterlesen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.