Cloud Computing
7 Min. Lesezeit

Web-Anwendungs-Hosting auf AWS EC2

Umfassender Leitfaden für Web-Anwendungs-Hosting auf AWS EC2, Apache-Installation, FTP-Konfiguration, Load Balancer und Route53-Integration.

N
Necmettin Demir
21. Juli 2023
Wird geladen...

Web-Anwendungs-Hosting auf AWS EC2

AWS EC2 Web Hosting
AWS EC2 Web Hosting
Es gibt viele Möglichkeiten, eine Webanwendung in der AWS-Umgebung zu hosten. Ihre Webanwendung kann eine traditionelle Website oder ein API-Projekt sein. Beide Typen werden im Folgenden als "Webanwendung" (web app) bezeichnet.

Einführung

Es gibt viele Möglichkeiten, eine Webanwendung in der AWS-Umgebung zu hosten. Ihre Webanwendung kann eine traditionelle Website oder ein API-Projekt sein. Beide Typen werden im Folgenden als "Webanwendung" (web app) bezeichnet. Einige Möglichkeiten, die wir zum Hosten einer Webanwendung in AWS anwenden können, sind unten aufgeführt:
  1. Webanwendungs-Hosting in einem S3-Bucket
  2. Webanwendungs-Hosting in ECS, EKS oder Fargate-Containern
  3. Webanwendungs-Hosting mit Elastic Beanstalk
  4. Direktes Webanwendungs-Hosting auf EC2
[!NOTE] Obwohl die Optionen 1, 2 und 3 moderne Ansätze für das Hosting von Inhalten in AWS sind, richten wir uns in diesem Artikel an Personen, die viel an älteren Systemen gearbeitet haben, aber mit ihren alten Gewohnheiten in die AWS-Umgebung wechseln möchten!
Unser Ziel ist es, den Ablauf von Route53, Application Load Balancer, Security Groups usw. zusammen mit EC2 schnell vorzustellen.
In diesem Artikel werden wir die letzte Option untersuchen. Es gibt viele Betriebssysteme, die in EC2 verwendet werden können. Wir werden Linux mit der niedrigsten Konfiguration verwenden, das innerhalb des "Free Tier" (Kostenlose Stufe) zugänglich ist. Für weitere Informationen über AWS Free Tier klicken Sie hier.
Amazon EC2 kann direkt zum Hosten einer Webanwendung verwendet werden. In diesem Artikel werden alle erforderlichen Schritte für eine solche Aufgabe Schritt für Schritt erklärt.

Hintergrund

Was werden wir tun?

Die grundlegende Architektur kann wie unten gezeigt aussehen:
Systemarchitektur
Systemarchitektur
Bild-001: Hauptsystemansicht
Nehmen wir an, Ihr Ziel ist es, Ihre Website auf einer AWS EC2-Maschine zu hosten. Der Einfachheit halber wird eine statische HTML-Seite auf dem Apache-Webserver in AWS EC2 veröffentlicht. Wir werden den Zugriff auf den Standard-www-Ordner von Apache per FTP ermöglichen. Zusätzlich zu diesen Anforderungen wird eine Domain über AWS Route53 auf diese Webanwendung verwiesen.
Um die in Bild-001 gezeigte Architektur zu entwerfen, werden wir AWS-Elemente in der Reihenfolge der Nummern in den grauen Kreisen erstellen.
Nehmen wir an, unsere Domain ist WELR.com und wir möchten deren funktionierende Elemente auf EC2 hosten.
Alle Schritte zum Hosten des WELR.com-Inhalts auf einem AWS EC2 können wie folgt aussehen.

Schritt 1: Eine Sicherheitsgruppe in AWS erstellen

Diese Sicherheitsgruppe wird für EC2 verwendet. Eine Sicherheitsgruppe kann als Firewall des Objekts betrachtet werden, mit dem sie verbunden ist.
Konfigurieren Sie alle eingehenden (inbound) Ports wie unten gezeigt:
  • 20-21 (FTP)
  • 1024-1048 (FTP), optional
  • 22 (SSH)
  • 80 (HTTP)
  • 8080 (HTTP benutzerdefiniert), optional
  • 443 (HTTPS)
Das rote Rechteck im folgenden Bild ist wichtig, um den Ablauf von ALB zu EC2 über die entsprechenden Sicherheitsgruppen zu zeigen.
Inbound-Regeln
Inbound-Regeln
Bild-002: Eingehende (inbound) Regeln von SG-for-EC2-for-WELR

Schritt 2: Eine EC2-Instanz erstellen

Das Erstellen einer EC2-Instanz in AWS ist ein einfacher Vorgang. Die Schaltfläche Connect (Verbinden) in der oberen rechten Ecke des folgenden Bildes wird verwendet, um sich mit EC2 zu verbinden.
EC2 erstellen
EC2 erstellen
Bild-003: EC2-for-WELR
Installieren Sie alle Anforderungen auf EC2-for-WELR.
Zunächst müssen Sie sich mit der EC2-Befehlszeile verbinden. Es gibt viele Möglichkeiten, diesen Schritt durchzuführen, aber die einfachste ist, sich direkt über die AWS-Webkonsole zu verbinden.
EC2-Verbindung
EC2-Verbindung
Bild-004: Verbindung zu EC2-for-WELR
Nachdem Sie auf die Schaltfläche Connect geklickt haben, werden Sie als ec2-user mit der EC2-Befehlszeile verbunden.

2.1- Apache-Installation

TEXT
> sudo s
> yum update -
> yum install -y httpd.x86_6
> systemctl start httpd.servic
> systemctl enable httpd.service
Alle Webanwendungsdateien befinden sich im Standard-Webordner von Apache.
Der Standard-Webordner für Apache ist das Verzeichnis /var/www/html.

2.2 - FTP-Installation

TEXT
> sudo su
> yum update -y
> yum install vsftpd
		
> sudo vi /etc/vsftpd/vsftpd.conf
Sie müssen einige Änderungen in der FTP-Konfigurationsdatei vornehmen, wie unten gezeigt.
Alle diese Zeilen müssen in der Konfigurationsdatei wie gezeigt vorhanden sein. Um den vi-Editor zu verwenden, müssen Sie wissen, wie man ihn benutzt. Wenn Sie den vi-Editor zum ersten Mal verwenden, schauen Sie hier.
TEXT
# Entfernen Sie die # Zeichen von allen folgenden Zeilen
anonymous_enable=NO
#
local_enable=YES
#
write_enable=YES
#
local_umask=022
#
dirmessage_enable=YES
#
xferlog_enable=YES
#
connect_from_port_20=YES
#
chroot_local_user=YES
write_enable=YES
allow_writeable_chroot=YES
#
listen=NO
#
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
pasv_enable=YES
pasv_min_port=1024
pasv_max_port=1048
pasv_address=18.170.116.xxx
Um den vsftpd-Dienst neu zu starten, kann einer der folgenden Befehle verwendet werden:
TEXT
> /etc/init.d/vsftpd restart
ODER:
TEXT
> systemctl restart vsftpd
Um einen Benutzer für FTP hinzuzufügen, führen Sie folgendes in der EC2-Befehlszeile aus:
TEXT
> adduser awsftpuse
> passwd awsftpuse
> usermod -a -G root awsftpuser
> usermod -d /var/www/html/ awsftpuse
> chown -R awsftpuser /var/www/htm
> systemctl restart vsftpd

2.3 - FTP-Client-Installation

Zum Beispiel Filezilla-Client unter Windows.
Nachdem Sie alle Elemente in AWS erstellt haben, versuchen Sie, sich mit einem FTP-Client zu verbinden und eine Datei hochzuladen. Sie sollten in der Lage sein, die Datei index.html in den FTP-Webordner auf EC2 hochzuladen.

Schritt 3: Sicherheitsgruppe für ALB erstellen

Konfigurieren Sie alle eingehenden (inbound) Ports wie unten gezeigt:
  • 20-21 (FTP)
  • 1024-1048 (FTP), optional
  • 22 (SSH)
  • 80 (HTTP)
  • 8080 (HTTP benutzerdefiniert), optional
  • 443 (HTTPS)
ALB-Inbound-Regeln
ALB-Inbound-Regeln
Bild-005: Eingehende (inbound) Regeln von SG-for-ALB-for-WELR

Schritt 4: Target Group erstellen

Target Group
Target Group
Bild-006: Target Group TG-for-WELR

Schritt 5: Application Load Balancer erstellen

Dieser ALB muss die Target Group TG-for-WELR haben.
Target Group (Zielgruppe) ist eine EC2-Gruppe. Derzeit enthält sie jedoch nur die EC2-for-WELR-Instanz.
Zusätzlich muss dieser ALB die Sicherheitsgruppe SG-for-ALB-for-WELR haben.
Bild-007: Application Load Balancer ALB-for-WELR
ALB erstellen
ALB erstellen

Schritt 6: Berechtigungen zwischen Sicherheitsgruppen

Fügen Sie eingehende (inbound) Regeln zu SG-for-EC2-for-WELR hinzu, um alle TCP-Anfragen von SG-for-ALB-for-WELR zu akzeptieren.
Sicherheitsgruppen-Ablauf
Sicherheitsgruppen-Ablauf
Bild-008: Ablauf von ALB zu EC2 über Sicherheitsgruppen erlauben

Schritt 7: Route53 Hosted Zone erstellen

Sie sollte vier Einträge (Records) haben wie unten:
  • NS und SOA werden automatisch erstellt
  • Erstellen Sie Record A. Wie im folgenden Bild zu sehen
  • Erstellen Sie Record CNAME - für welr.com
Bild-009 - Route53-Einträge
Route53-Einträge
Route53-Einträge
NS-Adressen können in der Domain-Verwaltungsoberfläche verwendet werden, um die Domain auf die Webanwendung zu verweisen, die Sie auf EC2 Apache hosten.

Fazit

Wie am Anfang dieses Artikels erwähnt, gibt es viele Möglichkeiten, eine Webanwendung in jeder Cloud-Umgebung zu hosten. Wir haben einige Untersuchungen auf AWS EC2 durchgeführt. Wie zu sehen ist, nehmen wir an, dass die funktionierenden Elemente der Webanwendung manuell per FTP an Apache verteilt werden. Dieser Vorgang kann jedoch mit jedem CI/CD-Tool mit FTP-Befehlen automatisiert werden.
Der Hauptzweck dieses Artikels ist es zu zeigen, wie eine Webanwendung in der AWS-Umgebung auf EC2 hinter Route53 und Load Balancern gehostet wird.

Was wir gelernt haben:

  • EC2-Instanz erstellen und konfigurieren
  • Apache-Webserver-Installation
  • FTP-Konfiguration und Benutzer hinzufügen
  • Security Group-Einstellungen
  • Application Load Balancer-Einrichtung
  • Domain-Weiterleitung mit Route53

☁️ Cloud-Computing-Dienste

Wir bieten Infrastrukturdesign, Migration, Management und Optimierungsdienste auf AWS-, Azure- und Google Cloud-Plattformen.

Unseren Service erkunden

📞 Kontaktieren Sie uns

Kontaktieren Sie unser Team für detaillierte Informationen über unsere AWS- und Cloud-Computing-Lösungen.

Kontakt