Fachartikel

Loadbalancing in der AWS-Cloud

Pfad-basiertes Routing war bisher das Mittel der Wahl, um mit dem AWS Application Load Balancer ein Elastic Load Balancing für den Cloud-Traffic zu gewährleisten. Damit können Administratoren für jede Art Anfrage genau die passende Processing-Umgebung festlegen. Seit Kurzem gibt es jedoch im Kosmos von Amazon Web Services eine weitere Art des Routings. In unserem Fachartikel erklären wir im Detail, welche Funktionen sie bietet und wie die Administration aussieht.
Mit dem Application Load Balancer von AWS ist es möglich, den Traffic basierend auf der Applikationsarchitektur zu verteilen.
Geht es um große Web-Plattformen, sind Microservices das Mittel der Wahl. Kleine Applikationen, die jeweils in einem eigenen Prozess laufen, ermöglichen schnellere und unkompliziertere Anpassungen an neue Anforderungen und insgesamt agilere Entwicklungen. Dabei kommen häufig Container-Lösungen wie Docker zum Einsatz, in denen sich Microservices einfach verpacken lassen.

Bislang war es schwierig, einen Microservices-Ansatz mit den Vorteilen des Loadbalancing, also der Verteilung des Traffics auf mehrere Systeme, zu kombinieren. Mit dem neuen Application Load Balancer von Amazon Web Services (AWS) geht das viel einfacher. Der Vorteil des neuen Angebots: Der Application Load Balancer analysiert die URL und entscheidet anhand dieser Informationen, wohin der Traffic geschickt werden soll. Das Verfahren können Entwickler beispielsweise für eine Web-Applikation nutzen, die in verschiedene Teile segmentiert ist. So kümmert sich etwa ein Teil um die User-Verwaltung, also etwa alle URLs, die mit "/user" anfangen. Ein anderer Teil ist mit der Auslieferung von Content beschäftigt und ein dritter Teil ist für die Assets verantwortlich.
(Auf)teilen und herrschen
So ist es über den Application Load Balancer möglich, den Traffic basierend auf der Applikationsarchitektur zu verteilen. Zugleich stellt auch die Aufteilung in Microservices kein Problem dar. Ein Webshop kann beispielsweise seine drei Services "Ansehen des Produktkataloges", "Bestellungen verwalten und betrachten" und "als neuer Benutzer registrieren" in drei Microservices unterteilen. Anhand unterschiedlicher URLs (etwa "www.shop.de/account", "www.shop.de/bestellungen" und "www.shop.de/register") ist der Service dann klar segmentiert. Mit Hilfe des Application Load Balancers ist es in diesem Szenario möglich, getrennte Infrastrukturen laufen zu lassen und diese von einem gemeinsamen Loadbalancer aus anzusprechen. Darin unterscheidet sich die AWS-Lösung von herkömmlichen Loadbalancern.

Der Application Load Balancer unterstützt das WebSocket Protokoll und HTTP/2 und arbeitet auf dem Application Layer. Beim Content-basierten Routing lassen sich Web Requests auf mehrere Services beziehungsweise Container aufteilen, je nachdem, wie der Request aufgebaut ist. Das reduziert die Komplexität einer Anwendung erheblich – die Entwicklung erfolgt einfacher.

Das Werkzeug bietet hohe Verfügbarkeit, eine automatische Skalierung und robuste Sicherheit durch Unterstützung von VPCs und HTTPS. Ebenso lässt sich ankommender Applikations-Traffic über mehrere EC2-Instanzen in verschiedenen Verfügbarkeitszonen routen, um gegen Rechenzentrums-weite Ausfälle geschützt zu sein. Gleichzeitig ist ein permanentes Monitoring zum Status einzelner Services möglich. Der Application Load Balancer ist in eine Reihe von AWS-Services integriert. Dazu gehören Auto Scaling, AWS CloudFormation, Amazon EC2 Container Service (ECS), AWS Certificate Manager, AWS CodeDeploy und AWS Identity and Access Management (IAM).

Loadbalancing jetzt auch Host-basiert
Vor Kurzem wurde der Application Load Balancer durch eine weitere Routing-Option erweitert. So ist es nun möglich, dort Regeln zu erstellen, die den ankommenden Traffic auf Basis des Domain-Namens, der im Host Header spezifiziert ist, zu routen. So können Anfragen an "api.beispiel.de" an eine Zielgruppe geroutet werden. Anfragen an "www.beispiel.de" landen an einer anderen Stelle. Alle sonstigen Anfragen lassen sich automatisiert an eine dritte Stelle leiten. Zudem lassen sich Regeln anlegen, die das Host-basierte Routing mit der Pfad-basierten Variante kombinieren. Somit könnte zum Beispiel eine Anfrage für "api.beispiel.de/production" an eine andere Stelle geleitet werden als diejenigen für "api.beispiel.de/sandbox".

In der Vergangenheit haben einige AWS-Kunden mehrere Proxy-Server betrieben und exklusiv für das Host-basierte Routing genutzt. Mit der Einführung des Host-basierten Routings im Application Load Balancer ist dieser Umweg nicht länger nötig. Schließlich kann das Routing direkt über Application-Load-Balancer-Regeln erfolgen. Indem dieser Layer entfällt, wird die Architektur wesentlich einfacher und der operative Overhead verkleinert sich. Außerdem werden Kosten für die nicht länger benötigte Proxy-Schicht gespart.

Fazit
Gerade Nutzer von Containern profitieren von Features wie Port Mapping, umfangreichen Statusmeldungen (health checks) und der Nutzung von Pfad und Host-basiertem Routing für ein vereinfachtes Service Discovery. Dadurch können Microservices einfach in vielen individuellen Containern vom Amazon EC2 Container Service (ECS) verwaltet und gemeinsam konsolidiert und effizient auf Amazon EC2 betrieben werden, ohne den Überblick zu verlieren, weil sie von einfach verständlichen Host- und Pfad-basierten URLs aus ansprechbar sind, auch wenn sie über dynamisch zugeordnete Port-Nummern angesprochen werden. Das hilft Entwicklern und Administratoren, das Service-Discovery in einer Microservices-Umgebung stark zu vereinfachen.
19.07.2017/ln/Constantin Gonzalez, Principal Solutions Architect bei Amazon Web Services

Nachrichten

Saft und Kraft für Business-Notebooks [18.10.2017]

Von Toshiba kommen vier neue 'Tecra X40-D'-Notebooks, die speziell für vielreisende Geschäftsleute konzipiert sind. Die 14-Zöller sind mit einem LTE-Modul ausgestattet und halten laut Hersteller bis zu 11,5 Stunden ohne Steckdose durch. Über die Quick-Charge-Funktion lassen sich die PCs innerhalb von 30 Minuten für weitere vier Stunden Laufzeit aufladen. [mehr]

Puppet Tasks: Aufgaben agentenlos durchführen [12.10.2017]

Puppet hat anlässlich der in San Francisco stattfindenden PuppetConf Puppet Tasks vorgestellt. Puppet Tasks ist eine neue Produktfamilie, die Puppet Bolt, ein agentenloses, auf Open Source basierendes Produkt sowie eine Reihe von Task-Management-Funktionen in Puppet Enterprise umfasst. [mehr]

ThinkPad wird 25 [5.10.2017]

Tipps & Tools

Eingabeaufforderung zurückbringen [19.10.2017]

Mit dem Creators Update für Windows 10 ist die PowerShell bei Microsoft noch einmal stark in den Vordergrund gerückt und hat die Eingabeaufforderung sowohl im Kontextbereich des Startmenüs als auch im Kontextmenü von Ordnern ersetzt. Die schnelle Übergabe eines Ordners an die Kommandozeile läuft nun über den Befehl 'PowerShell-Fenster hier öffnen'. Doch es gibt einen Weg, die Eingabeaufforderung zurückzubringen. [mehr]

Alternatives Fernwartungs-Tool [18.10.2017]

Wenn Sie beim Thema Fernwartung nicht immer auf die bekannten Produkte zurückgreifen wollen, ist möglicherweise 'Supremo' eine gute Alternative. Das Werkzeug stellt zahlreiche nützliche Funktionen bereit. So etwa ist es für komplexe Support-Sitzungen möglich, dass sich mehrere Benutzer gleichzeitig mit demselben Computer verbinden. Weiterhin stellt es kein Problem dar, mit wenigen Klicks ein Meeting zu hosten und Ihren Bildschirm für andere Benutzer freizugeben. [mehr]

Buchbesprechung

Citrix XenMobile 10

von Thomas Krampe

Anzeigen