Anleitung zur Erstellung von Anwendungen auf Amazon Web Services (AWS)

Anleitung zur Erstellung von Anwendungen auf Amazon Web Services (AWS)

Amazon Web Services (AWS) ist eine der weltweit beliebtesten Cloud-Computing-Plattformen. Mit AWS können Sie Anwendungen entwickeln und ausführen, ohne physische Server kaufen, Serverkapazität einrichten oder Ihre eigene Infrastruktur warten zu müssen. Dieser Artikel führt Sie durch die Erstellung einer einfachen Anwendung auf AWS anhand eines gängigen Ansatzes: Bereitstellung einer Webanwendung mithilfe von Rechenservices (EC2), optional einer verwalteten Datenbank (RDS) sowie gegebenenfalls Speicher und einer Domain. Das folgende Beispiel ist zwar allgemein gehalten, lässt sich aber auf viele Anwendungstypen anwenden.

-

1. Erste Vorbereitung: Buchhaltung und Grundbegriffe

Bevor Sie beginnen, stellen Sie sicher, dass Sie ein AWS-Konto besitzen. Viele AWS-Dienste bieten ein kostenloses Kontingent (kostenlos innerhalb bestimmter Grenzen), das sich ideal zum Üben eignet.

Einige wichtige Konzepte, die Sie verstehen müssen:

– Region: Standort des AWS-Rechenzentrums (Beispiel: Singapur/ap-southeast-1). Wählen Sie die nächstgelegene Region für geringe Latenz.
– IAM (Identitäts- und Zugriffsmanagement): ein Zugriffsverwaltungssystem. Empfehlung: Verwenden Sie das Root-Konto nicht für die tägliche Arbeit.
– VPC (Virtual Private Cloud): ein virtuelles Netzwerk, in dem Ihre Dienste ausgeführt werden.
– Sicherheitsgruppe: „Firewall“ zur Regulierung des eingehenden/ausgehenden Zugriffs vom Server.

Wenn Sie diese vier Dinge verstehen, wird es Ihnen viel leichter fallen, sich in die Grundlagen von AWS einzuarbeiten.

-

2. IAM-Benutzer und sichere Konten erstellen

Sicherheit hat für uns stets höchste Priorität. Melden Sie sich als Root bei der AWS-Konsole an und gehen Sie dann wie folgt vor:

1. Öffnen Sie den IAM-Dienst.
2. Erstellen Sie einen neuen Benutzer (z. B. `admin-dev`) und aktivieren Sie die Option "Benutzerzugriff auf die AWS Management Console gewähren".
3. Berechtigungen erteilen: Zum Üben können Sie AdministratorAccess verwenden (in realen Projekten sollte dieser jedoch eingeschränkter sein).
4. Aktivieren Sie die Multi-Faktor-Authentifizierung (MFA), um die Sicherheit zu erhöhen.

Sobald dies erledigt ist, melden Sie sich vom Root-Benutzer ab und melden Sie sich mit dem neu erstellten IAM-Benutzer an.

-

3. Bestimmen Sie die Anwendungsarchitektur

In diesem Tutorial bauen wir eine einfache Architektur auf:

– EC2: Ausführung von Webanwendungen (z. B. Node.js/Express, Python Flask oder PHP).
– Optionale RDS: verwaltete MySQL/PostgreSQL-Datenbank, sodass die Daten übersichtlich gespeichert werden.
– S3 (optional): Speichert statische Dateien wie Bilder, Dokumente oder Sicherungskopien.
– Route 53 (optional): Domains verwalten.
– CloudWatch: grundlegende Überwachung.

Wenn Sie gerade erst anfangen, konzentrieren Sie sich zunächst auf EC2, um Ihre Anwendungen auszuführen.

-

4. Erstellen Sie einen EC2-Server

a) Erstellen Sie eine Instanz
1. Melden Sie sich beim EC2-Dienst an.
2. Klicken Sie auf „Instanz starten“.
3. Wählen Sie das Betriebssystem aus, zum Beispiel Ubuntu Server 22.04 LTS.
4. Wählen Sie den Instanztyp: Für das kostenlose Kontingent verwenden Sie `t2.micro` oder `t3.micro` (je nach Verfügbarkeit).
5. Erstellen oder wählen Sie ein Schlüsselpaar (z. B. `aws-key.pem`). Bewahren Sie die `.pem`-Datei sicher auf, da sie für SSH verwendet wird.

b) Netzwerk- und Firewall-Konfiguration
– Stellen Sie sicher, dass sich die Instanz in der Standard-VPC befindet (nur zur Übung).
– Sicherheitsgruppe festlegen:
– Port 22 (SSH) nur von Ihrer IP-Adresse (z. B. „Meine IP-Adresse“)
– Port 80 (HTTP) von `0.0.0.0/0` (öffentlich)
– Port 443 (HTTPS) von `0.0.0.0/0`, falls später SSL verwendet wird

Hinweis: Die öffentliche SSH-Verbindung ist riskant. Beschränken Sie daher stets die IP-Adressen.

Klicken Sie auf „Starten“ und warten Sie, bis die Instanz ausgeführt wird.

-

5. Melden Sie sich per SSH am Server an.

Unter Windows können Sie WSL oder PuTTY verwenden. Unter macOS/Linux können Sie dies direkt über das Terminal erledigen.

1. Berechtigungsschlüssel ändern:
„Bash
chmod 400 aws-key.pem
“`
2. Stellen Sie eine SSH-Verbindung zum Server her (verwenden Sie die öffentliche IPv4-Adresse von EC2):
„Bash
ssh -i aws-key.pem ubuntu@PUBLIC_IP
“`

Bei erfolgreicher Ausführung befinden Sie sich auf dem AWS Ubuntu-Server.

-

6. Webserver und Anwendungslaufzeit installieren

Hier ist ein Beispiel für eine Node.js-Anwendung, da diese im modernen Web weit verbreitet ist.

a) Abhängigkeiten aktualisieren und installieren
„Bash
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl git
“`

b) Installieren Sie Node.js (LTS-Version)
„Bash
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash –
sudo apt install -y Nodejs
Knoten -v
npm -v
“`

-

7. Erstellen Sie eine einfache Anwendung

Erstellen Sie einen Projektordner:

„Bash
mkdir myapp && cd myapp
npm init -y
npm install express
“`

Erstelle eine `index.js`-Datei:

“`js
const express = require(“express”);
const app = ausdrücken ();

app.get(“/”, (req, res) => {
res.send(“Hallo! Ihre Anwendung läuft auf AWS EC2.”);
});

app.listen(3000, () => console.log(“Server läuft auf Port 3000”));
“`

Führen Sie die Anwendung aus:

„Bash
Knoten index.js
“`

Versuchen Sie, über einen Browser zuzugreifen:
– `http://PUBLIC_IP:3000`

Port 3000 ist in der Sicherheitsgruppe derzeit jedoch nicht geöffnet. Sie können Folgendes tun:
1) Öffnen Sie Port 3000 in der Sicherheitsgruppe, oder
2) Verwenden Sie einen Reverse-Proxy (eher empfehlenswert), damit die Anwendung auf dem internen Port bleibt, aber über Port 80/443 erreichbar ist.

-

8. Verwendung von Nginx als Reverse-Proxy (Zugriff über Port 80)

Installieren Sie Nginx:
„Bash
sudo apt install -y nginx
sudo systemctl aktiviert nginx
sudo systemctl starte nginx
“`

Nginx-Konfiguration einrichten:
„Bash
sudo nano /etc/nginx/sites-available/myapp
“`

Konfigurationsinhalt:
“`nginx
server {
höre 80;
Servername _;

Lage /
Proxy_Pass http://127.0.0.1:3000;
Proxy_http_version 1.1;
Proxy_set_header Upgrade $http_upgrade;
Proxy_set_header Verbindung „Upgrade“;
Proxy_set_header Host $host;
Proxy_cache_bypass $http_upgrade;
}
}
“`

Konfiguration aktivieren:
„Bash
sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl nginx neu laden
“`

Jetzt Zugriff:
– `http://PUBLIC_IP/`

Die Anwendung läuft auf Port 3000, der öffentliche Zugriff erfolgt jedoch über Port 80.

-

9. Anwendungen dauerhaft mit PM2 ausführen

Um zu verhindern, dass die Anwendung abstürzt, wenn die SSH-Verbindung getrennt wird, verwenden Sie PM2:

„Bash
sudo npm install -g pm2
pm2 start index.js –name myapp
pm2 save
PM2-Start
“`

Der Befehl `pm2 startup` liefert weitere Anweisungen. Führen Sie den angezeigten Befehl aus, damit die Anwendung beim Neustart des Servers automatisch gestartet wird.

-

10. (Optional) Hinzufügen einer Datenbank mit RDS

Wenn Ihre Anwendung eine Datenbank benötigt, macht RDS es Ihnen leicht, da AWS Backups, Patches und Skalierung übernimmt.

Kurze Schritte:
1. RDS-Dienst öffnen → Datenbank erstellen .
2. Wählen Sie MySQL oder PostgreSQL (bei bestimmten Konfigurationen gelten die Regeln des kostenlosen Kontingents).
3. Benutzernamen und Passwort festlegen.
4. Stellen Sie sicher, dass sich die RDS-Instanz in derselben VPC wie die EC2-Instanz befindet.
5. Stellen Sie die RDS-Sicherheitsgruppe so ein, dass sie nur Verbindungen von der EC2-Sicherheitsgruppe akzeptiert (nicht von der Öffentlichkeit).

Sobald die Datenbank live ist, rufen Sie den RDS-Endpunkt ab und stellen Sie über den Datenbanktreiber eine Verbindung von Ihrer Anwendung aus her.

-

11. (Optional) HTTPS mit SSL-Zertifikat aktivieren

Für den Produktivbetrieb ist HTTPS zwingend erforderlich. Übliche Vorgehensweise:
– Verwenden Sie eine Domain (z. B. von Route 53 oder einem anderen Registrar).
– SSL über Let's Encrypt (Certbot) auf EC2 installieren.

Kurz:
„Bash
sudo apt install -y certbot python3-certbot-nginx
sudo certbot –nginx
“`

Folgen Sie dem Assistenten, um eine Domain auszuwählen und die HTTPS-Weiterleitung zu aktivieren.

-

12. Überwachung und Kosten

AWS bietet CloudWatch zur Anzeige von Metriken wie CPU-Auslastung, Netzwerknutzung und spezifischen Protokollen. Um keine Kosten zu verpassen, sollten Sie außerdem Ihre Ausgaben im Blick behalten.

Wichtige Tipps:
– Aktivieren Sie den Abrechnungsalarm in CloudWatch (z. B. Alarm bei Gebühren über 5 US-Dollar).
– Schalten Sie die Instanz aus, wenn sie nicht verwendet wird.
– Entfernen Sie nicht verwendete Ressourcen (Load Balancer, EBS, elastische IPs, Snapshots), da diese möglicherweise noch Kosten verursachen.

-

Penutup

Herzlichen Glückwunsch! Sie haben die Grundlagen für die Entwicklung einer Anwendung auf AWS mit EC2, den Betrieb einer Webanwendung , die Einrichtung eines Nginx-Reverse-Proxys und die Gewährleistung der ständigen Verfügbarkeit mit PM2 erlernt. Sie haben außerdem einen Überblick über zusätzliche Dienste wie RDS für Datenbanken, S3 für die Datenspeicherung und HTTPS-Zertifikate für die Sicherheit erhalten.

Wenn du aufsteigen möchtest, sind die nächsten Schritte normalerweise:
– Automatisierte Bereitstellung mit CI/CD (GitHub Actions + SSH oder AWS CodeDeploy),
– Verwendung von Containern mit Docker und Orchestrierungsplattformen wie ECS oder EKS,
– Verwendung einer serverlosen Architektur mit Lambda + API Gateway.

Wenn Sie möchten, geben Sie bitte den Typ Ihrer Anwendung (Node.js, Laravel, Django, React usw.) und ihren Verwendungszweck (Demo, Produktion, Großanwendung) an. Ich kann das Tutorial dann mit spezifischeren Schritten anpassen.

Hinterlasse einen Kommentar