View a markdown version of this page

Wichtige Überlegungen bei der Verwendung von AWS für Webhosting - Hosting von Webanwendungen in der AWS Cloud

Wichtige Überlegungen bei der Verwendung von AWS für Webhosting

Es gibt einige wichtige Unterschiede zwischen der AWS Cloud und einem herkömmlichen Webanwendungshosting-Modell. Der vorherige Abschnitt wies auf zahlreiche wichtige Bereiche hin, die Sie bei der Implentierung einer Webanwendung in der Cloud berücksichtigen sollten. In diesem Abschnitt werden einige der wichtigsten architektonischen Veränderungen aufgezeigt, die Sie berücksichtigen müssen, wenn Sie eine Anwendung in die Cloud bringen.

Keine physischen Netzwerkgeräte mehr

Sie können keine physischen Netzwerkgeräte in AWS bereitstellen. Firewalls, Router und Lastenverteilung für Ihre AWS-Anwendungen können sich nicht mehr auf physischen Geräten befinden, sondern müssen durch Softwarelösungen ersetzt werden. Es gibt eine Vielzahl von Softwarelösungen in Unternehmensqualität, sei es für die Lastenverteilung oder den Aufbau einer VPN-Verbindung. Dies stellt keine Beschränkung für Anwendungen dar, die in der AWS Cloud ausgeführt werden können. Die Architektur Ihrer Anwendung wird sich aber ändern, wenn Sie diese Geräte heute nutzen.

Überall Firewalls

Wo es früher eine einfache demilitarisierte Zone (DMZ) und dann offene Kommunikation zwischen Ihren Hosts in einem herkömmlichen Hostingmodell gab, setzt AWS ein Modell mit höherer Sicherheit um, in dem jeder Host gesperrt ist. Einer der Schritte bei der Planung einer AWS-Bereitstellung ist die Analyse des Datenverkehrs zwischen Hosts. Diese Analyse wird Entscheidungen darüber leiten, welche Ports genau geöffnet werden müssen. Sie können Sicherheitsgruppen für jeden Hosttyp in Ihrer Architektur erstellen. Sie können auch eine Vielzahl einfacher und gestufter Sicherheitsmodelle erstellen, um den minimalen Zugriff zwischen Hosts innerhalb Ihrer Architektur zu ermöglichen. Die Verwendung von Netzwerkzugriffskontrolllisten in Amazon VPC kann dazu beitragen, Ihr Netzwerk auf Subnetzebene zu sperren.

Bedenken Sie die Verfügbarkeit mehrerer Rechenzentren

Stellen Sie sich Availability Zones innerhalb einer AWS-Region als mehrere Rechenzentren vor. EC2-Instances in unterschiedlichen Availability Zones sind logisch wie physisch getrennt und bieten ein einfaches Modell für hohe Verfügbarkeit und Zuverlässigkeit Ihrer Anwendung auf mehreren Rechenzentren. Amazon VPC als regionaler Service ermöglicht es Ihnen, Availability Zones zu nutzen und gleichzeitig alle Ihre Ressourcen im selben logischen Netzwerk zu halten.

Hosts werden als ephemer und dynamisch behandelt

Die wahrscheinlich wichtigste Veränderung beim Aufbau der Architektur Ihrer AWS-Anwendung ist die Tatsache, dass EC2-Hosts als ephemer und dynamisch betrachtet werden sollen. Jede für die AWS Cloud erstellte Anwendung sollte nicht davon ausgehen, dass ein Host immer verfügbar sein wird, und sollte mit dem Wissen entworfen werden, dass alle Daten in den EC2-Instant Stores verloren gehen, wenn eine EC2-Instance ausfällt.

Wenn ein neuer Host hochgefahren wird, sollten Sie keine Annahmen über die IP-Adresse oder den Standort innerhalb einer Availability Zone des Hosts treffen. Ihr Konfigurationsmodell muss flexibel sein, und Ihr Ansatz zum Bootstrapping eines Hosts muss die Dynamik der Cloud berücksichtigen. Diese Techniken sind für den Aufbau und Betrieb einer hoch skalierbaren und fehlertoleranten Anwendung von entscheidender Bedeutung.

Bedenken Sie Container und Serverless

Dieses Whitepaper konzentriert sich hauptsächlich auf eine herkömmlichere Webarchitektur. Erwägen Sie jedoch, Ihre Webanwendungen zu modernisieren, indem Sie auf Container und Serverless-Technologien umsteigen und Dienste wie AWS Fargate und AWS Lambda nutzen, damit Sie die Verwendung von virtuelle Maschinen zur Ausführung von Rechenaufgaben einsetzen können. Beim Serverless Computing werden Infrastrukturverwaltungsaufgaben wie Kapazitätsbereitstellung und Patching von AWS übernommen, sodass Sie flexiblere Anwendungen erstellen können, mit denen Sie schneller innovativ sein und auf Änderungen reagieren können.

Bedenken Sie automatisierte Bereitstellung

  • Amazon Lightsail ist ein einfach zu bedienender virtueller privater Server (VPS), der Ihnen alles bietet, was Sie für die Erstellung einer Anwendung oder Website benötigen, sowie einen kostengünstigen, monatlichen Plan. Lightsail ist ideal für einfachere Workloads, schnelle Implementierungen und den Einstieg in AWS. Es ist konzipiert Ihnen zu helfen, klein anzufangen und dann mit zunehmendem Wachstum zu skalieren.

  • AWS Elastic Beanstalk ist ein benutzerfreundlicher Service für die Bereitstellung und Skalierung von Webanwendungen und -Services, die mit Java, .NET, PHP, Node.js, Python, Ruby, Go und Docker auf vertrauten Servern wie Apache, NGINX, Passenger und IIS entwickelt werden. Sie laden Ihren Code einfach hoch und Elastic Beanstalk übernimmt automatisch die Bereitstellung, Kapazitätsbereitstellung, Lastenverteilung, automatische Skalierung und Statusüberwachung der Anwendung. Gleichzeitig erhalten Sie mit Elastic Beanstalk vollständige Kontrolle über die AWS-Ressourcen hinter Ihrer Anwendung und können jederzeit auf die zugrunde liegenden Ressourcen zugreifen.

  • AWS App Runner ist ein vollständig verwalteter Service, mit dem Ihre Entwickler schnell und skalierbar containerisierte Webanwendungen und APIs bereitstellen können, ohne Erfahrungen im Infrastrukturbereich zu besitzen. Sie beginnen mit Ihrem Quellcode oder einem Container-Image. App Runner führt die Entwicklung und Bereitstellung der Webanwendung automatisch aus und nimmt eine Lastenverteilung des Datenverkehrs mit Verschlüsselung vor. App Runner skaliert darüber hinaus automatisch aufwärts oder abwärts, um den Anforderungen Ihres Datenverkehrs zu entsprechen.

  • AWS Amplify ist eine Reihe von Tools und Services, die zusammen oder einzeln verwendet werden können, um Front-End-Web- und Mobilentwickler beim Aufbau skalierbarer Full-Stack-Anwendungen Powered by AWS zu unterstützen. Mit Amplify können Sie App-Backends konfigurieren und Ihre App in Minutenschnelle verbinden, statische Web-Apps mit wenigen Klicks bereitstellen und App-Inhalte problemlos außerhalb der AWS-Konsole verwaltenAWS-Managementkonsole.