Application Load Balancer

Lastenausgleich für den HTTP- und HTTPS-Verkehr mit erweitertem Anforderungsrouting, das auf die Bereitstellung moderner Anwendungen ausgerichtet ist.

Warum Application Load Balancer?

Application Load Balancer arbeitet auf Anfrageebene (Ebene 7) und leitet den Datenverkehr zu den Zielen – EC2-Instances, Container, IP-Adressen und Lambda-Funktionen basierend auf dem Inhalt der Anfrage. Application Load Balancer eignet sich perfekt für den Lastausgleich von HTTP- und HTTPS-Datenverkehr und bietet eine erweiterte Anforderungsweiterleitung, die auf die Bereitstellung moderner Anwendungsarchitekturen abzielt, einschließlich microservice- und containerbasierter Anwendungen. Application Load Balancer vereinfacht und verbessert die Sicherheit Ihrer Anwendungen durch Verwendung der neuesten SSL/TLS-Schlüssel und -Protokolle.

Page Topics

Funktionen

Funktionen

Gegenseitige TLS ist ein Protokoll für die bidirektionale Authentifizierung zwischen Clients und Servern, die auf x509-Zertifikaten basierende Identitäten verwenden. Mit dieser Funktion authentifiziert das ALB Client-Zertifikate und führt Sperrprüfungen für Zertifikate durch, die sowohl von Zertifizierungsstellen (CAs) von Drittanbietern als auch von privaten Zertifizierungsstellen (ACM PCA) ausgestellt wurden. Der Load Balancer leitet außerdem Client-Zertifikatsinformationen an die Ziele weiter, die von der Anwendung für Autorisierungsentscheidungen verwendet werden können. 

Automatische Zielgewichtungen (ATW) verwenden einen neuen Algorithmus für den gewichteten zufälligen Lastenausgleich, der die Verfügbarkeit von Anwendungen verbessert, selbst wenn die Ziele der Anwendung beeinträchtigt sind. Der Algorithmus analysiert HTTP-Statuscodes und TCP/TLS-Fehlerraten, um Ziele mit höheren Fehlerraten als Peers in derselben Zielgruppe zu identifizieren. Wenn ATW Ziele identifiziert, die unterdurchschnittlich abschneiden, passt diese Funktion das Verkehrsvolumen, das an jedes Ziel gerichtet ist, basierend auf der Leistung an, sodass sich notleidende Ziele erfolgreich erholen können.

Sie können den HTTP-/HTTPS-Verkehr auf Ziele – Amazon EC2-Instances, Microservices und Container – basierend auf Anforderungsattributen (wie X-Forwarded-For-Headern) ausgleichen.

In einer Amazon Virtual Private Cloud (VPC) können Sie dem Elastic Load Balancing zugeordnete Sicherheitsgruppen erstellen und verwalten, die zusätzliche Netzwerk- und Sicherheitsoptionen bieten. Sie können einen Application Load Balancer so konfigurieren, dass er eine Verbindung mit dem Internet hat, oder Sie erstellen einen Load Balancer ohne öffentliche IP-Adresse, der nur in internen Netzwerken (ohne Internetverbindung) eingesetzt wird.

ALB unterstützt die Implementierung von Desync-Schutzmaßnahmen, die auf der http_desync_guardian-Bibliothek basieren. Mit dieser neuen Funktion werden Kundenanwendungen vor HTTP-Schwachstellen durch Desync geschützt, ohne größere Kompromisse bei Verfügbarkeit und/oder Latenz einzugehen. Kunden haben auch die Möglichkeit, auf der Grundlage ihrer Anwendungsarchitektur ihr Toleranzniveau gegenüber verdächtigen Anfragen zu wählen.

Application Load Balancer (ALB) unterstützt AWS Outposts, einen vollständig verwalteten Service, der die AWS-Infrastruktur und Tools in praktisch jedem Rechenzentrum, jedem Co-Location-Bereich und jeder On-Premises Einrichtung erweitert und eine konsistente Hybrid-Erfahrung bereitstellt. Kunden können ALBs auf unterstützten Instance-Typen bereitstellen, und der ALB wird automatisch auf die im Rack verfügbare Kapazität skaliert, um den unterschiedlichen Ebenen der Anwendungslast gerecht zu werden, ohne dass ein manuelles Eingreifen erforderlich ist. Kunden können auch Benachrichtigungen erhalten, die ihnen helfen, ihren Kapazitätsbedarf im Zusammenhang mit dem Load Balancing zu decken. Kunden können dieselbe AWS-Konsole, APIs und CLI verwenden, um ALBs auf Outposts bereitzustellen und zu verwalten, wie sie es heute mit ALBs in der Region tun.

Ein Application Load Balancer unterstützt die HTTPS-Terminierung zwischen Clients und dem Load Balancer. Application Load Balancer ermöglichen außerdem die Verwaltung von SSL-Zertifikaten über AWS Identity and Access Management (IAM) und vordefinierte Sicherheitsrichtlinien mittels AWS Certificate Manager.

HTTP/2 ist eine neue Version des HyperText Transfer Protocol (HTTP), das eine einzelne, gebündelte Verbindung verwendet, was das Senden mehrerer Anforderungen über dieselbe Verbindung ermöglicht. Außerdem werden Kopfdaten komprimiert, bevor sie im Binärformat verschickt werden, und SSL-Verbindungen zu Clients unterstützt.

ALB kann den gRPC-Datenverkehr zwischen Microservices oder zwischen gRPC-fähigen Clients und Services routen und ausgleichen. Dies ermöglicht eine nahtlose Einführung des gRPC-Verkehrsmanagements in die Architekturen, ohne die zugrundeliegende Infrastruktur auf den Clients oder Diensten der Kunden zu ändern. gRPC verwendet HTTP/2 für den Transport und wird zum bevorzugten Protokoll für die Kommunikation zwischen Diensten in Microservice-Architekturen. Es bietet Funktionen wie effiziente binäre Serialisierung und Unterstützung für zahlreiche Sprachen sowie die inhärenten Vorteile von HTTP/2 wie geringerer Netzwerkbedarf, Komprimierung und bidirektionales Streaming, was es besser macht als ältere Protokolle wie REST.

Sie können einen HTTPS-Listener erstellen, der verschlüsselte Verbindungen verwendet (auch bekannt als SSL-Offload). Diese Funktion ermöglicht die Verschlüsselung des Datenverkehrs zwischen Ihrem Load Balancer und den Clients, die SSL- oder TLS-Sitzungen initiieren. Application Load Balancer unterstützt die clientseitige TLS-Sitzungsbeendigung. Damit lassen sich TLS-Beendigungsaufgaben an den Load Balancer auslagern, während die IP-Quelladresse für Ihre Back-end-Anwendungen erhalten bleibt. Sie können für Ihre TLS-Listener aus vordefinierten Sicherheitsrichtlinien auswählen, um die Compliance- und Sicherheitsanforderungen zu erfüllen. Die Serverzertifikate können Sie mit AWS Certificate Manager (ACM) oder AWS Identity and Access Management (IAM) verwalten.

Mit SNI können Sie mehrere sichere Websites über einen einzelnen TLS-Listener bedienen. Wenn der Hostname des Clients mit mehreren Zertifikaten übereinstimmt, wählt der Load Balancer mithilfe eines intelligenten Auswahlalgorithmus das beste Zertifikat aus.

Sticky Sessions sind ein Mechanismus zur Weiterleitung von Anforderungen desselben Clients an dasselbe Ziel. Application Load Balancer unterstützen sowohl dauerbasierte Cookies als auch anwendungsbasierte Cookies. Der Schlüssel zur Verwaltung von Sticky Sessions liegt darin, zu bestimmen, wie lange Ihr Load Balancer die Anfrage des Benutzers konsistent an dasselbe Ziel weiterleiten soll. Sticky Sessions sind auf Zielgruppenebene aktiviert. Sie können eine Kombination aus dauerbasierter Klebrigkeit, anwendungsbezogener Klebrigkeit und Nichtklebrigkeit für alle Ihre Zielgruppen verwenden.

Application Load Balancer unterstützen das native Internet Protocol Version 6 (IPv6) einer VPC. Clients können daher über IPv4 oder IPv6 Verbindungen mit einem Application Load Balancer herstellen.

Der Application Load Balancer fügt allen Anforderungen, die den Load Balancer erreichen, eine neue benutzerdefinierte "X-Amzn-Trace-Id"-HTTP-Header-ID hinzu. Mit der Anforderungsnachverfolgung können Sie eine Anfrage anhand ihrer eindeutigen ID auf ihrem Weg durch verschiedene Services verfolgen, die den Großteil des Datenverkehrs für Ihre Websites und verteilten Anwendungen ausmachen. Sie können die eindeutige Nachverfolgungs-ID verwenden, um Leistungs- oder Timingprobleme Ihrer Anwendungen mit der Genauigkeit einer einzelnen Anforderung aufzudecken.

Application Load Balancer kann eine eingehende Anforderung zwischen URLs umleiten. Dies umfasst die Fähigkeit, HTTP-Anforderungen zu HTTPS-Anforderungen umzuleiten, sodass Sie Ihr Compliance-Ziel für sicheres Suchen einhalten. Gleichzeitig können Sie eine bessere Suchrangfolge und einen besseren SSL/TLS-Wert für Ihre Website erreichen. Sie können außerdem mithilfe von Umleitungen Benutzer zu einer anderen Website weiterleiten, z. B. von der alten Version einer Anwendung zu einer neuen Version.

Application Load Balancer kann steuern, welche Client-Anforderungen von Ihren Anwendungen ausgeführt werden. Dadurch können Sie auf eingehende Anforderungen mit HTTP-Fehler-Antwortcodes und benutzerdefinierte Fehlermeldungen aus dem Load Balancer selbst antworten, ohne die Anforderung an die Anwendung weiterzuleiten.

Über WebSockets kann ein Server Nachrichten in Echtzeit mit Endbenutzern austauschen, ohne dass die Endbenutzer ein Update vom Server anfordern müssen. Das WebSockets-Protokoll bietet bidirektionale Kommunikationskanäle zwischen einem Client und einem Server über eine lange laufende TCP-Verbindung.

Server Name Indication (SNI) ist eine Erweiterung des TLS-Protokolls. Dabei wird zu Beginn des TLS-Handshake durch den Client der Hostname angezeigt, mit dem eine Verbindung aufgebaut werden soll. Der Load Balancer kann über denselben sicheren Listener mehrere Zertifikate vorlegen und damit mehrere sichere Websites unterstützen. Application Load Balancers unterstützen außerdem einen intelligenten Algorithmus für die Zertifikatsauswahl mit SNI. Wenn der von einem Client angegebene Hostname mehreren Zertifikaten entspricht, bestimmt der Load Balancer das beste zu verwendende Zertifikat auf der Grundlage von mehreren Faktoren, darunter die Fähigkeiten des Clients.

Sie können einen Lastausgleich für jede in AWS oder lokal gehostete Anwendung mithilfe der IP-Adressen der Anwendungs-Back-Ends als Ziele durchführen. Auf diese Weise wird ein Lastausgleich für ein Anwendungs-Back-End ermöglicht, das mit einer beliebigen IP-Adresse und auf einer beliebigen Schnittstelle einer Instance gehostet wird. Jede auf der gleichen Instance gehostete Anwendung kann über eine zugehörige Sicherheitsgruppe verfügen und den gleichen Port verwenden. Sie können auch IP-Adressen als Ziele verwenden, um einen Lastausgleich für Anwendungen durchführen, die an lokalen Standorten (über Direct Connect oder eine VPN-Verbindung), in gleichgeschalteten VPCs und auf EC2-Classic (mithilfe von ClassicLink) gehostet werden. Die Möglichkeit, einen Lastausgleich für AWS- und lokale Ressourcen durchzuführen, hilft Ihnen beim Migrieren in die Cloud, beim Burst in die Cloud und beim Failover zur Cloud.

Application Load Balancers unterstützen nun den Aufruf von Lambda-Funktionen, um HTTP(S)-Anfragen zu bearbeiten, sodass Nutzer die Möglichkeit haben von jedem HTTP-Client, einschließlich Webbrowsern, auf serverlose Anwendungen zuzugreifen. Sie können Lambda-Funktionen als Ziele für einen Load Balancer registrieren und die Unterstützung für inhaltsbasierte Routing-Regeln nutzen, um Anfragen an verschiedene Lambda-Funktionen weiterzuleiten. Sie können einen Application Load Balancer als gemeinsamen HTTP-Endpunkt für Anwendungen nutzen, die serverbasiertes und serverloses Computing verwenden. Sie können eine gesamte Website mithilfe von Lambda-Funktionen erstellen oder EC2-Instances, Container, lokale Server und Lambda-Funktionen kombinieren, um Anwendungen aufzubauen.

Wenn Ihre Anwendung aus mehreren einzelnen Diensten besteht, kann ein Application Load Balancer eine Anfrage basierend auf dem Inhalt der Anfrage wie Hostfeld, Pfad-URL, HTTP-Header, HTTP-Methode, Abfragezeichenfolge oder Quell-IP-Adresse an einen Dienst weiterleiten.

Host-basiertes Routing: Sie können eine Clientanforderung auf Basis des Hostfelds des HTTP-Headers weiterleiten und auf diese Weise über den selben Load Balancer eine Weiterleitung an mehrere Domänen vornehmen.

Pfadbasiertes Routing: Sie können eine Clientanforderung auf Basis des URL-Pfads des HTTP-Headers weiterleiten.

HTTP-Headerbasiertes Routing: Sie können eine Client-Anfrage basierend auf dem Wert eines beliebigen Standard- oder benutzerdefinierten HTTP-Headers weiterleiten.

HTTP-Methodenbasiertes Routing: Sie können eine Client-Anfrage basierend auf einer beliebigen Standard- oder benutzerdefinierten HTTP-Methode weiterleiten.

Parameterbasiertes Routing von Abfragezeichenfolgen: Sie können eine Client-Anfrage auf der Grundlage von Abfragezeichenfolgen oder Abfrageparametern weiterleiten.

Quell-IP-Adresse CIDR-basiertes Routing: Sie können eine Client-Anfrage basierend auf der Quell-IP-Adresse-CIDR weiterleiten, von wo aus die Anfrage stammt.

Application Load Balancer bieten eine erweiterte Unterstützung für Container durch Lastausgleich über mehrere Ports in derselben Amazon-EC2-Instance. Die nahtlose Integration mit Amazon Elastic Container Service (ECS) bietet zudem eine voll verwaltete Containerlösung. In der ECS-Aufgabendefinition können Sie einen dynamischen Port festlegen, wodurch dem Container bei der Ausführung in der EC2-Instance ein ungenutzter Port zugewiesen wird. Der ECS-Scheduler fügt die Aufgabe automatisch dem Load Balancer hinzu, der diesen Port verwendet.

Sie können AWS WAF jetzt verwenden, um Ihre Webanwendungen auf Ihren Application Load Balancers zu schützen. AWS WAF ist eine Webanwendungs-Firewall, die Ihre Webanwendungen vor verbreiteten Internet-Bedrohungen schützt, die die Verfügbarkeit der Anwendung oder die Sicherheit beeinträchtigen bzw. Ressourcen exzessiv belasten können.

Application Load Balancer unterstützt einen Rundlauf-Load-Balancing-Algorithmus. Außerdem unterstützt Application Load Balancer mit dem Rundlauf-Algorithmus einen langsamen Start-Modus, wodurch Sie neue Ziele hinzufügen können, ohne diese durch eine Flut von Anforderungen zu überfordern. Mit dem langsamen Start-Modus können Ziele je nach der von Ihnen angegebenen Hochlaufzeit langsam anlaufen, bevor sie ihre fairen Anteile an Anforderungen annehmen. Der langsame Start-Modus ist besonders hilfreich für Anwendungen, die vom Cache abhängig sind und eine Anlaufzeit benötigen, bevor sie mit der optimalen Leistungen Anforderungen beantworten können.

Sie können den Authentifizierungsprozess Ihrer Apps dem Application Load Balancer überlassen. Application Load Balancer wird die Benutzer sicher authentifizieren, wenn diese auf Cloud-Anwendungen zugreifen. Application Load Balancer ist nahtlos in Amazon Cognito integriert, was Endbenutzern die Authentifizierung durch soziale Identitätsanbieter wie Google, Facebook und Amazon, durch Unternehmens-Identitätsanbieter wie Microsoft Active Directory via SAML sowie durch alle Identitätsanbieter ermöglicht, die OpenID Connect-konform (IdP) sind. Wenn Sie bereits eine OpenID Connect-konforme, benutzerspezifische IdP-Lösung besitzen, kann Application Load Balancer durch eine direkte Verbindung mit Ihrem Identitätsanbieter auch Unternehmensbenutzer authentifizieren.