ArtikelCloud

Routing macht’s möglich

Der ALB unterstützt das WebSocket-Protokoll und HTTP/2, der auf dem Application Layer arbeitet. Je nachdem wie der Request im Content-basierten Routing aufgebaut ist, können Web Requests auf mehrere Services oder Container aufgeteilt werden. Die Komplexität einer Anwendung lässt sich auf diese Weise erheblich reduzieren; die Entwicklung kann wesentlich einfacher erfolgen.

Der ALB bietet eine hohe Verfügbarkeit, robuste Sicherheit durch Unterstützung von VPCs und HTTPS sowie eine automatische Skalierung. Der Schutz gegen Ausfälle des kompletten Rechenzentrums ist außerdem gewährleistet: Der Applikations-Traffic kann über mehrere EC2-Instanzen in mehrere Verfügbarkeitszonen geroutet werden. Um den Status einzelner Service zu überprüfen, ist ein permanentes Monitoring möglich. Der ALB läuft gemeinsam mit einer Reihe von AWS-Services. Unterstützt werden Auto Scaling, AWS CloudFormation, Amazon EC2 Container Service (ECS), AWS Certificate Manager und AWS Identity und Access Management (IAM).

Host-basiertes Load Balancing leichtgemacht

AWS bietet mit ALB seit geraumer Zeit die Möglichkeit, ein Host-basiertes Routing durchzuführen. Dies bedeutet, dass Regeln erstellt werden, die den ankommenden Traffic auf Basis des Domain-Namens im Host Header routen. Anfragen an www.beispiel.de werden also an eine andere Zielgruppe geroutet als diejenigen an api.beispiel.de. Sämtliche Anfragen an weitere Adressen eines Web-Angebots können an eine dritte Stelle geleitet werden. Außerdem ist es möglich, Regeln anzulegen, die das Pfad-basierte Routing mit dem Host-basierten Routing kombinieren. Eine Anfrage für api.beispiel.de/production landet also beispielsweise an einer anderen Stelle als eine Anfrage für api.beispiel.de/sandbox.

Bis vor kurzem nutzten AWS-Kunden verschiedene Proxy-Server, die allein für das Host-basierte Routing betrieben wurden. Per Host-basiertem Routins über den ALB wird diese Hilfskonstruktion nicht mehr benötigt, da das Routing direkt über ALB-Regeln erfolgt.

Außerdem werden Kosten für die nicht länger benötigte Proxy-Schicht eingespart, weil der zusätzliche Layer entfällt. Nicht zuletzt gestaltet sich die Architektur wesentlich einfacher, während sich der operative Overhead verkleinert.

Besonders Nutzer von Containern profitieren vom Host-basierten Load-Balancing. Diese Zielgruppe zieht aus wichtigen Services wie beispielsweise dem Port Mapping und umfangreichen Statusmeldungen („health checks“) einen Vorteil. Microservices lassen sich in vielen individuellen Containern vom Amazon EC2 Container Service (ECS) verwalten, gemeinsam konsolidieren und effizient auf Amazon EC2 betreiben. Dabei verlieren Administratoren nie den Überblick, denn die Container sind von einfach verständlichen Host- und Pfad-basierten URLs aus ansprechbar. Das gilt sogar dann, wenn sie über dynamisch zugeordnete Port-Nummern adressiert werden.