AWS Elastic Beanstalk

AWS Elastic Beanstalk soll Entwickler dabei helfen, schneller und einfacher ihre Anwendungen in der AWS Cloud bereitzustellen und zu verwalten. Der Entwickler lädt seine Anwendung hoch und Elastic Beanstalk übernimmt automatisch die Deploymentaufgaben, wie die Beschaffung der benötigten Kapazitäten, das Load Balancing, Auto-Scaling sowie die Überwachung der Anwendung.

Während der Nutzung von Elastic Beanstalk behält der Entwickler die volle Kontrolle über die AWS Ressourcen, die für seine Anwendung benötigt werden und kann auf diese jederzeit zugreifen. Elastic Beanstalk verwendet dabei AWS Services wie Amazon EC2, Amazon S3, Amazon Simple Notification Service, Elastic Load Balancing, und Auto-Scaling.

Das erste Release von Elastic Beanstalk richtet sich an Java-Entwickler. Die Basis bildet dabei der Apache Tomcat Software Stack, um damit eine einfache Portierbarkeit der Anwendung zu gewährleisten. Durch die Nutzung von Elastic Beanstalk entstehen keine zusätzlichen Kosten. Es wird lediglich für die AWS Ressourcen bezahlt, die für das Speichern und Ausführen der Anwendung benötigt werden.

AWS Elastic Beanstalk Functionality

Um eine Java Anwendung mit Hilfe von Elastic Beanstalk bereitzustellen, sind die folgenden Schritte notwendig.

  • Erstellen einer Anwendung gewöhnlichen Java Anwendung.
  • Verpacken des Codes in ein standard Java Web Application Archive (WAR Datei).
  • Hochladen der WAR Datei nach Elastic Beanstalk. Das kann mit der AWS Management Console, dem AWS Toolkit for Eclipse, der Web Service API oder den Kommandozeilen Tools durchgeführt werden.
  • Bereitstellen der Anwendung. Im Hintergrund übernimmt Elastic Beanstalk die Beschaffung des Load Balancer und nimmt das Deployment der WAR Datei zu einer oder mehreren EC2 Instanzen vor und startet den Apache Tomcat Applikation Server.
  • Innerhalb von ein paar Minuten kann auf die Anwendung mittels einer eigenen URL z.B. http://myapp.elasticbeanstalk.com zugegriffen werden.

Sobald eine Anwendung ausgeführt wird, bietet Elastische Beanstalk verschiedene Management-Funktionen.

  • Bereitstellung neuer Programmversionen innerhalb der laufenden Umgebung (oder ein Rollback zu einer früheren Version).
  • Zugriff integrierte CloudWatch matriken wie die CPU-Auslastung, Anfragehäufigkeit und die durchschnittliche Latenz.
  • E-Mail Benachrichtigung mittels des Amazon Simple Notification Service, wenn sich der Zustand der Anwendung verändert oder weitere Server hinzugefügt oder entfernt werden.
  • Zugriff auf die Log Dateien des Tomcat Server ohne explizite Anmeldung an den Application Server.
  • Neustart aller Application Server auf allen EC2 Instanzen mit einem einzigen Befehl.

Elastic Beanstalk unterstützt den Entwickler u.a. bei folgenden Themen:

  • Auswahl der am besten geeigneten Amazon EC2 Instanz, welche den CPU- und Speicherbedarf der Anwendung entspricht.
  • Auswahl aus mehreren verfügbaren Datenbank- und Storage-Angeboten wie Amazon RDS, Amazon SimpleDB, Microsoft SQL Server, oder Oracle.
  • Zugriff auf Amazon EC2-Instanzen für unmittelbare und direkte Problemlösungen.
  • Erhöhung der Zuverlässigkeit der Anwendung, durch deren Ausführung in mehr als einer Availability Zone.
  • Verbesserung der Anwendungssicherheit, durch die Nutzung des HTTPS Protokoll auf dem Load Balancer.
  • Einstellen JVM-Einstellungen und Weitergabe von Umgebungsvariablen.
  • Ausführung weitere Anwendungskomponenten, wie bspw. einem Memory Caching Service, parallel zu Amazon EC2.
  • Anpassen der Auto-Scaling Einstellungen, um die Metriken und Schwellwerte zu kontrollieren, die verwendet werden, um festzustellen wann Instanzen in einer Umgebung hinzugefügt oder entfernt werden müssen.

Quelle und weitere Informationen unter http://aws.amazon.com/elasticbeanstalk.

Share on: