Schlüsselkomponenten einer AWS Webhosting-Architektur - Hosting von Webanwendungen in der AWS Cloud

Schlüsselkomponenten einer AWS Webhosting-Architektur

In den folgenden Abschnitten werden einige der wichtigsten Komponenten einer in der AWS Cloud bereitgestellten Webhosting-Architektur beschrieben und erläutert, wie sie sich von einer herkömmlichen Webhosting-Architektur unterscheiden.

Netzwerkmanagement

In der AWS Cloud ermöglicht die Möglichkeit, Ihr Netzwerk von dem anderer Kunden zu segmentieren, eine sicherere und skalierbarere Architektur. Während Sicherheitsgruppen Sicherheit auf Host-Ebene bieten (siehe Abschnitt Host Security), ermöglicht Amazon Virtual Private Cloud (Amazon VPC) Ihnen, Ressourcen in einem logisch isolierten und virtuellen Netzwerk zu starten, das Sie definieren.

Amazon VPC ist ein Service, mit dem Sie die volle Kontrolle über die Details Ihrer Netzwerkeinrichtung in AWS haben. Beispiele für diese Steuerung sind das Erstellen öffentlich zugänglicher Subnetze für Webserver und private Subnetze ohne Internetzugang für Ihre Datenbanken. Darüber hinaus ermöglicht Amazon VPC Ihnen, Hybridarchitekturen mithilfe von virtuellen privaten Hardware-Netzwerken (VPNs) zu erstellen und die AWS Cloud als Erweiterung Ihres eigenen Rechenzentrums zu verwenden.

Amazon VPC umfasst zusätzlich zur herkömmlichen IPv4-Unterstützung für Ihr Netzwerk auch IPv6-Unterstützung.

Bereitstellung von Inhalten

Wenn Ihr Web-Datenverkehr geo-dispersiert ist, ist es nicht immer machbar und schon gar nicht kosteneffektiv, Ihre gesamte Infrastruktur über den gesamten Globus zu replizieren. Ein Content Delivery Network (CDN) bietet Ihnen die Möglichkeit, sein globales Netzwerk von Edge-Standorten zu nutzen, um Ihren Kunden eine zwischengespeicherte Kopie von Webinhalten wie Videos, Webseiten, Bildern usw. bereitzustellen. Um die Antwortzeit zu verkürzen, nutzt das CDN den dem Kunden oder dem Ort der ursprünglichen Anfrage nächstgelegenen Edge-Standort. Der Durchsatz wird drastisch erhöht, da die Web-Assets aus dem Cache geliefert werden. Für dynamische Daten können viele CDNs so konfiguriert werden, dass sie die Daten von den Ursprungsservern abrufen.

Sie können CloudFront zur Bereitstellung Ihrer Website, einschließlich dynamischer, statischer und Streaming-Inhalte, mithilfe eines globalen Netzwerks von Edge-Standorten verwenden. CloudFront leitet Ihre Inhalte automatisch an den nächsten Edge-Standort weiter, sodass die Bereitstellung der Inhalte mit der bestmöglichen Leistung erfolgt. CloudFront ist für die Arbeit mit anderen AWS-Services wie Amazon S3 und Amazon Elastic Compute Cloud (Amazon EC2) optimiert. CloudFront funktioniert außerdem reibungslos mit allen nicht zu AWS gehörenden Ursprungsservern, auf denen die maßgeblichen Originalversionen Ihrer Dateien gespeichert sind.

Wie bei anderen AWS-Services gibt es keine vertraglichen oder sonstigen monatlichen Verpflichtungen zur Nutzung von Amazon CloudFront – Sie zahlen nur für die Inhalte, die Sie auch tatsächlich bereitstellen.

Darüber hinaus sollten alle vorhandenen Lösungen für Edge-Caching in Ihrer Webanwendungsinfrastruktur in der AWS Cloud gut funktionieren.

Verwaltung des öffentlichen DNS

Das Verschieben einer Webanwendung in die AWS Cloud erfordert einige Änderungen des Domain Name System (DNS). Um Ihnen bei der Verwaltung des DNS-Routings zu helfen, bietet AWS Amazon Route 53, einen hochverfügbaren und skalierbaren Cloud-DNS-Webservice. Entwicklern und Unternehmen bietet Route 53 eine äußerst zuverlässige und kostengünstige Möglichkeit, Endbenutzer zu Internetanwendungen zu routen. Dazu werden Namen wie „www.beispiel.de“ in numerische IP-Adressen wie 192.0.2.1 übersetzt, die Computer untereinander für den Verbindungsaufbau verwenden. Route 53 ist uneingeschränkt mit IPv6 kompatibel.

Host-Sicherheit

Zusätzlich zur Filterung des eingehenden Netzwerkverkehrs am Edge empfiehlt AWS auch, dass Webanwendungen die Filterung des Netzwerkverkehrs auf Host-Ebene anwenden. Amazon EC2 bietet eine Funktion mit dem Namen Sicherheitsgruppen. Eine Sicherheitsgruppe entspricht einer Firewall für eingehende Netzwerke, für die Sie die Protokolle, Ports und Quell-IP-Bereiche angeben können, die Ihre EC2-Instances erreichen dürfen.

Sie können jeder EC2-Instance eine oder mehrere Sicherheitsgruppen zuweisen. Jede Sicherheitsgruppe ermöglicht entsprechenden Datenverkehr zu jeder Instanz. Sicherheitsgruppen können so konfiguriert werden, dass nur bestimmte Subnetze, IP-Adressen und Ressourcen Zugriff auf eine EC2-Instance haben. Alternativ können sie auf andere Sicherheitsgruppen verweisen, um den Zugriff auf EC2-Instances zu beschränken, die sich in bestimmten Gruppen befinden.

In der AWS-Webhosting-Architektur in Abbildung 3 erlaubt die Sicherheitsgruppe für den Webservercluster möglicherweise nur den Zugriff von Web-Layer-Lastenverteilung und nur über TCP an den Ports 80 und 443 (HTTP und HTTPS). Die Sicherheitsgruppe des Anwendungsservers hingegen erlaubt möglicherweise nur den Zugriff von Lastenverteilung auf Anwendungsebene. Bei diesem Modell müssten Ihre Support-Techniker auch auf die EC2-Instances zugreifen, was mit AWS Systems Manager Session Manager erreicht werden kann. Eine eingehendere Diskussion zur Sicherheit finden Sie in AWS Cloud Security, das Sicherheitsbulletins, Zertifizierungsinformationen und Sicherheits-Whitepaper enthält, in denen die Sicherheitsfunktionen von AWS erläutert werden.

Lastenverteilung über Cluster hinweg

Hardware-Lastenverteilungen sind gebräuchliche Netzwerkgeräte, die in herkömmlichen Webanwendungs-Architekturen zum Einsatz kommen. AWS stellt diese Funktion über den Elastic Load Balancing (ELB)-Service bereit. ELB verteilt den eingehenden Anwendungsverkehr automatisch auf mehrere Ziele, wie Amazon EC2 Instances, Container, IP-Adressen und AWS Lambda-Funktionen. Es kann die variable Last Ihres Anwendungsdatenverkehrs in eine einzelne Availability Zone oder in mehrere Availability Zones leiten. Elastic Load Balancing bietet vier Arten von Lastenverteilung, die alle die hohe Verfügbarkeit, die automatische Skalierung und die robuste Sicherheit bieten, die notwendig sind, um Ihre Anwendungen fehlertolerant zu machen.

Suchen anderer Hosts und Services

In der traditionellen Webhosting-Architektur haben die meisten Ihrer Hosts statische IP-Adressen. In der AWS Cloud haben die meisten Ihrer Hosts dynamische IP-Adressen. Obwohl jede EC2-Instance sowohl öffentliche als auch private DNS-Einträge haben kann und über das Internet adressierbar ist, werden die DNS-Einträge und die IP-Adressen dynamisch zugewiesen, wenn Sie die Instance starten. Sie können nicht manuell zugewiesen werden. Statische IP-Adressen (elastische IP-Adressen in der AWS-Terminologie) können laufenden Instances zugewiesen werden, nachdem sie gestartet wurden. Sie sollten Elastic IP-Adressen für Instanzen und Services verwendet werden, die konsistente Endpunkte erfordern, z.B. primäre Datenbanken, zentrale Dateiserver und EC2-gehostete Lastenverteilungen.

Caching innerhalb der Webanwendung

In-Memory-Anwendungscaches können die Belastung von Diensten reduzieren und die Leistung und Skalierbarkeit auf der Datenbankebene verbessern, indem häufig verwendete Informationen zwischengespeichert werden. Amazon ElastiCache ist ein Web-Service, mit dem ein In-Memory-Cache auf einfache Weise in der Cloud bereitgestellt, betrieben und skaliert werden kann. Sie können den von Ihnen erstellten In-Memory-Cache so konfigurieren, dass er automatisch mit Last skaliert und ausgefallene Knoten automatisch ersetzt. ElastiCache ist protokollkonform mit Memcached und Redis, was die Migration von Ihrer aktuellen lokalen Lösung vereinfacht.