Web-Anwendungs-Hosting auf AWS EC2

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:
- Webanwendungs-Hosting in einem S3-Bucket
- Webanwendungs-Hosting in ECS, EKS oder Fargate-Containern
- Webanwendungs-Hosting mit Elastic Beanstalk
- 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
- Amazon Security Group (Sicherheitsgruppe)
- Amazon EC2
- Amazon Load Balancer (Lastenausgleich)
- Amazon Route53
Was werden wir tun?
Die grundlegende Architektur kann wie unten gezeigt aussehen:

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.

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.

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.

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)

Bild-005: Eingehende (inbound) Regeln von SG-for-ALB-for-WELR
Schritt 4: Target Group erstellen

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

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.
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

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