Migration einer Live-Anwendung von AWS EC2 zu DigitalOcean – Ein vollständiger Leitfaden ohne Ausfallzeiten
In diesem Leitfaden erfahren Sie, wie Sie Ihre Live-Anwendung von AWS EC2 zu DigitalOcean migrieren.

Migration einer Live-Anwendung von AWS EC2 zu DigitalOcean – Ein vollständiger Leitfaden ohne Ausfallzeiten

Ein vollständiger Leitfaden zur Migration einer laufenden Anwendung von AWS EC2 zu DigitalOcean ohne Serviceunterbrechung und zu minimalen Kosten.
0 Aktien
0
0
0
0

Wie migriert man eine laufende Anwendung von AWS EC2 zu DigitalOcean? – Schrittübersicht

In dieser schrittweisen und technischen Anleitung erklären wir, wie Wie man eine Live-Anwendung von AWS EC2 zu DigitalOcean migriert Übertragung mit minimalen Ausfallzeiten unter Einhaltung von Sicherheits- und Netzwerkaspekten.

  • Erste Bewertung und Inventarisierung der Ressourcen (EC2, EBS, RDS, S3, ELB, Sicherheitsgruppen, IAM)
  • Entwurf der Zielarchitektur in DigitalOcean (Droplet, VPC, Volumes, Spaces, Load Balancer, Managed DB)
  • Datentransfer (Dateien, S3 → Spaces, DB → Managed DB oder Replikat)
  • Anwendungsbereitstellung (Wiederherstellung, Containerisierung oder Verwendung der App-Plattform/Kubernetes)
  • Umstellung mit minimalen Ausfallzeiten (Replikation, Floating IP, DNS TTL)
  • AWS-Bereinigung und abschließende Überprüfung sowie Sicherheitsmaßnahmen und Überwachung

1. Phase Eins – Beurteilung und Vorbereitung

Ressourcenkatalogisierung

Erstellen Sie eine vollständige Liste aller zugehörigen Ressourcen: EC2-Instanzen, EBS-Volumes und Snapshots, Sicherheitsgruppen, Load Balancer, IAM-Rollen/Richtlinien und andere abhängige Dienste wie S3, RDS, ElastiCache und CloudFront.

Bestimmen Sie den App-Typ. Erforderlich: Ist die Anwendung zustandsbehaftet (z. B. mit einer Datenbank), zustandslos (z. B. Frontend), containerisiert oder benötigt sie GPU/Rendering?

Ermittlung der funktionalen und standortbezogenen Anforderungen

Legen Sie Parameter wie Netzwerklatenz, GPU-Anforderungen, maximale IOPS und Ausgabebandbreite fest.

Wenn Sie für Trading oder Gaming einen niedrigen Ping benötigen, wählen Sie einen Standort in der Nähe Ihrer Endnutzer. DigitalOcean bietet verschiedene Regionen an – prüfen Sie, welches Rechenzentrum von DigitalOcean am nächsten liegt.

2. Entwurf der Zielarchitektur in DigitalOcean

Empfohlene Komponenten

Der architektonische Entwurf umfasst Folgendes:

  • Tröpfchen Für Anwendungen und Dienste (VPS)
  • Verwaltete Datenbanken (Postgres / MySQL) zur Vereinfachung von Replikation und Datensicherung
  • Räume (S3-kompatibel) zum Übertragen von Objekten aus S3
  • Blockspeichervolumes Für Big Data und Persistenz
  • Lastverteiler Und Floating IP Für einen reibungslosen Systemwechsel ohne Ausfallzeiten
  • VPC Zur Netzwerkisolation und Firewall für die Zugriffskontrolle
  • Verwenden Sie GPU-Server oder dedizierte Rechenserver, wenn Sie GPUs benötigen.

Auswahl der Tropfengröße und des Tropfentyps

Verwenden Sie CPU-optimierte Droplets für CPU-intensive Anwendungen und Droplets mit hohem RAM-Bedarf oder verwaltete Dienste für speicherintensive Anwendungen.

Für Trading oder Gaming empfiehlt sich ein dedizierter VPS mit niedrigem Ping und dedizierten Netzwerkressourcen an einem geeigneten Standort.

3. Dateien und Objekte übertragen (S3 → Spaces / EBS → Volume)

S3 → Leerzeichenübertragung

Um Objekte von S3 nach Spaces zu übertragen, verwenden Sie S3-kompatible Tools wie z. B. rclone Oder s3cmd Verwenden.

rclone config
rclone sync s3:my-bucket spaces:my-space --progress

Alternativ können Sie mit der AWS CLI exportieren und anschließend mit doctl oder s3cmd hochladen.

Server-Dateiübertragung (EBS → Droplet)

Für große Datenmengen und statische Inhalte von rsync Zum Synchronisieren verwenden Sie:

rsync -azP --delete -e "ssh -i /path/to/key.pem" ubuntu@ec2-ip:/var/www/ /home/ubuntu/www/

Falls Sie einen Snapshot benötigen, erstellen Sie zuerst einen Snapshot von EBS, komprimieren Sie den Inhalt und übertragen Sie ihn dann auf das Droplet.

4. Datenbankmigration (RDS → Managed DB oder selbst gehostet)

Optionen basierend auf dem DB-Typ

MySQL/MariaDB:

Um Ausfallzeiten zu minimieren, richten Sie eine Replik auf DigitalOcean ein und führen Sie anschließend eine Umschaltung durch. Wenn Sie RDS verwenden:

  1. Erstellen einer verwalteten Datenbank in DO.
  2. Richten Sie eine externe Replik von RDS ein oder verwenden Sie mysqldump.
mysqldump -u user -p --single-transaction --quick --lock-tables=false dbname > dump.sql
mysql -h do-managed-host -u user -p dbname < dump.sql

PostgreSQL: Für nahezu hundertprozentige Sicherheit wird logische Replikation (pg_dump/pg_restore) oder Streaming-Replikation empfohlen.

pg_dump -Fc -h aws-rds-host -U user dbname > db.dump
pg_restore -d dbname -h do-host -U user db.dump

Lösung ohne Ausfallzeiten (MySQL-Beispiel)

Allgemeiner Ablauf:

  1. Aktivieren Sie die Binärprotokollierung in AWS.
  2. Erstellen Sie einen MySQL-Replikaserver auf DigitalOcean und verbinden Sie ihn als Slave mit dem Master auf AWS.
  3. Nach der Synchronisierung wird die Anwendung auf die Replik übertragen und dort hochgestuft.

5. Anwendungsbereitstellung – Optionen und Befehle

Methode 1 – Containerisierung und Registry

Die Containerisierung mit Docker/Kubernetes ist der beste Weg zur Migration ohne AMI-Unterstützung. Erstellen Sie das Image in der CI-Umgebung und laden Sie es in Docker Hub oder die GitLab Registry hoch.

In DO können Sie Managed Kubernetes oder Droplets mit docker-compose verwenden.

docker-compose pull
docker-compose up -d --remove-orphans

Methode 2 – Traditionelle Wiederherstellung

Auf die herkömmliche Art und Weise installiert man die Pakete, überträgt den Code mit rsync und startet den Dienst mit systemd oder einem Prozessmanager wie PM2.

npm install --production
pm2 start app.js --name myapp

Nutzung von App-Plattformen und Managed Services

Die DigitalOcean App Platform bietet CI/CD, Autoscaling und automatisches SSL und eignet sich für Webanwendungen, wenn Sie keinen Low-Level-Server verwalten möchten.

6. Netzwerk, Sicherheit und Umstellung ohne Ausfallzeiten

Floating IP und Load Balancer

Für eine Umstellung ohne Ausfallzeiten können Sie in DigitalOcean einen Load Balancer einrichten und verwenden. Floating IP Oder man wählt eine andere Zielgruppe.

Strategie blaugrün Üblicherweise umfasst dies folgende Schritte:

  1. Einrichten einer umweltfreundlichen Umgebung in DigitalOcean und vollständige Veröffentlichung der App
  2. Gesundheitschecks
  3. Ändern der Floating IP-Adresse oder der Zielgruppe im Load Balancer

DNS-TTL-Reduzierung Vergessen Sie nicht, den Umschaltvorgang vorab durchzuführen (z. B. TTL = 300 s oder weniger), um die Signalweiterleitung zu beschleunigen.

Firewall und Sicherheit

Fügen Sie Ihrem DO-Konto einen SSH-Schlüssel hinzu und deaktivieren Sie die Passwortanmeldung:

Edit /etc/ssh/sshd_config: PermitRootLogin no, PasswordAuthentication no

Verwenden Sie UFW für die grundlegende Zugriffsverwaltung:

sudo ufw allow OpenSSH
sudo ufw allow 80,443/tcp
sudo ufw enable

Verwenden Sie die Cloud-Firewall in DigitalOcean und implementieren Sie Regeln, die den Sicherheitsgruppen in AWS ähneln. Installation fail2ban Die Verwendung von SSL mit Certbot oder eines vom Load Balancer verwalteten Zertifikats wird ebenfalls empfohlen.

7. Operative Tipps und Anleitungen

doctl-Beispiele

DO CLI-Installation und -Authentifizierung:

doctl auth init --access-token <TOKEN>

Beispiel für die Erstellung eines Droplets:

doctl compute droplet create my-droplet --size s-2vcpu-4gb --image ubuntu-22-04-x64 --region nyc3 --ssh-keys <KEY_ID> --vpc-uuid <VPC_ID> --wait
doctl compute cdn create --origin my-space.nyc3.digitaloceanspaces.com ...

rsync für inkrementelle Synchronisierung

rsync -azP --delete -e "ssh -i ~/.ssh/do_key" /var/www/ user@do-ip:/var/www/

8. Nach der Migration – Testen und Optimieren

Leistungsbeurteilung und -überwachung

Analysieren Sie Protokolle, Latenz und Durchsatz mit Tools wie Prometheus/Grafana oder New Relic. Lasttests mit Tools wie Ableton oder Siege sowie die Überprüfung von IOPS und Netzwerkbandbreite sind unerlässlich.

Datensicherung und Notfallwiederherstellung

Aktivieren Sie Snapshots und automatisierte Backups für Droplets und verwaltete Datenbanken und testen Sie den Wiederherstellungsplan.

9. Tipps zum Kosten- und Ressourcenmanagement

Vergleichen Sie die Kosten zwischen AWS (EC2 + EBS + RDS + S3) und der DO-Kombination (Droplets + Volumes + Managed DB + Spaces).

Wenn Ihre Anwendung ein weitreichendes Netzwerk benötigt, kann die Verwendung eines CDN und BGP/Anycast die globale Latenz reduzieren.

10. Häufige Probleme und Lösungen

  • Unterschiede in der Datenbankversion → Kompatibilitätstests und Migration in der Staging-Umgebung unter Verwendung logischer Dumps.
  • Große Dateien und langsame Übertragungen → tar+gzip-Komprimierung, Fortsetzung mit rsync und Verwendung von Spaces zur Inhaltsbereitstellung.
  • SSL- und CORS-Fehler nach der Umstellung → Überprüfen Sie die Zertifikatskette und die Nginx-/Load-Balancer-Einstellungen.

11. Beispielkonfiguration für Nginx für Load Balancer und Upstream-Droplets

upstream app {
    server 10.0.0.5:3000;
    server 10.0.0.6:3000;
}
server {
    listen 80;
    server_name example.com;
    location / {
        proxy_pass http://app;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

12. Sicherheitstipps und Einhaltung bewährter Verfahren

  • Verwendung von SSH-Schlüssel und Aktivierung 2FA In Cloud-Konten
  • Beschränkung des IAM-Zugriffs und der API-Schlüssel
  • Durchführung von Schwachstellenscans und Patch-Management
  • Aktivieren Sie bei Bedarf den DDoS-Schutz und die WAF.

Abschluss

Die Migration einer laufenden Anwendung von AWS EC2 zu DigitalOcean ist eine Herausforderung, aber mit der richtigen Planung – einschließlich sorgfältiger Bestandsaufnahme, Replikation für die Datenbank und Verwendung von Floating IP oder Load Balancer für den Übergang – können Sie die Ausfallzeit minimieren und die Vorteile von Droplets, Spaces und Managed Databases nutzen.

Das Team ist bereit, bei der Konzeption und Implementierung der Infrastruktur zu helfen, insbesondere für Szenarien, die GPUs, dedizierte Trading- oder Gaming-VPS, CDNs und komplexe Netzwerklösungen erfordern.

Häufig gestellte Fragen

Das könnte Ihnen auch gefallen