AWS Elastic Beanstalk unterstützt nun auch Python Applikationen. Das hat Amazon auf seinem Blog angekündigt. Elastic Beanstalk ist eine Art Platform-as-a-Service (PaaS) von Amazon über den PHP, Java, .NET und nun auch Python Anwendungen ausgerollt und verwaltet werden können. Dazu wird der jeweilige Anwendungscode in die Amazon Cloud hochgeladen und Elastic Beanstalk sorgt für das hochfahren entsprechender Amazon EC2 Instanzen, Load Balancer, das Auto Scaling und Monitoring.
Python in der Amazon Cloud
Elastic Beanstalk ist in der Lage Python Applikationen auszuführen, die für den Apache HTTP Server und WSGI bestimmt sind. Das bedeutet, dass Beanstalk ebenfalls Django und Flask Applikationen unterstützt. Neben der AWS Management Console lassen sich Anwendungen zusätzlich über eb und Git mit der Kommandozeilen ausrollen.
Integration mit Amazon RDS
Sollte eine Anwendung eine relationale Datenbank benötigen, ist Elastic Beanstalk in der Lage, eine Amazon RDS Datenbank Instanz für die Anwendung zu starten. Die RDS Datenbank Instanz wird dazu automatisch so konfiguriert, dass sie mit der Amazon EC2 Instanz kommuniziert, auf welcher sich die eigentliche Anwendung befindet.
Anpassen der Python Umgebung
Die eigene Python Laufzeitumgebung für Elastic Beanstalk kann mit einer Reihe von deklarativen Textdateien innerhalb der Anwendung angepasst werden. Sollte die Anwendung bspw. eine requirements.txt in der oberen Verzeichnisebene benötigen, sorgt Elastic Beanstalk mittels pip automatisch dafür, dass die entsprechenden Abhängigkeiten installiert werden.
Darüber bietet Elastic Beanstalk nun einen neuen Konfigurations-Mechanismus, mit dem Pakete über yum installiert, Skripte eingerichtet und Umgebungsvariablen gesetzt werden können. Dazu muss lediglich ein „.ebextensions“ Verzeichnis innerhalb der Python Anwendung erstellt und dieses in die „python.config“ eingetragen werden. Elastic Beanstalk lädt diese Konfigurationsdatei und installiert anschließend die yum Pakete, führt die Skripte aus und setzt die Umgebungsvariablen.
Snapshot der Logdateien erstellen
Um Probleme zu debuggen können ab sofort Snapshots aus der AWS Management Console erstellt werden. Elastic Beanstalk fasst die ersten 100 Zeilen aus verschiedenen Logdateien zusammen. Darunter die Apache Error Log. Die Snapshots werden in Amazon S3 gespeichert und automatisch nach 15 Minuten gelöscht.