Heim > Backend-Entwicklung > PHP-Tutorial > Bereitstellen mehrerer PHP-Anwendungen mithilfe von AWS Elastic Beanstalk mit einem eigenständigen ALB

Bereitstellen mehrerer PHP-Anwendungen mithilfe von AWS Elastic Beanstalk mit einem eigenständigen ALB

Barbara Streisand
Freigeben: 2025-01-05 02:57:39
Original
1015 Leute haben es durchsucht

Deploying Multiple PHP Applications Using AWS Elastic Beanstalk with a Standalone ALB

In diesem Leitfaden stellen wir mehrere PHP-Anwendungen mithilfe von AWS Elastic Beanstalk (EB)-Umgebungen bereit und konfigurieren einen einzigen eigenständigen Application Load Balancer (ALB) für alle Umgebungen. Basierend auf der tatsächlichen Implementierung erläutert dieser Artikel, wie mehrere Elastic Beanstalk-Umgebungen mit dedizierten Zielgruppen unter einem zentralen ALB verwaltet werden.

Übersicht

Wir richten mehrere PHP-Anwendungen als separate EB-Umgebungen ein. Anstatt für jede Umgebung einen Load Balancer zu konfigurieren, verwenden wir einen ALB mit dedizierten Zielgruppen für jede Umgebung. Dieser Ansatz ist kosteneffizient, vereinfacht die Verwaltung und gewährleistet eine zentrale Kontrolle über Routing und Skalierung.

Architektur

Schlüsselkomponenten:

• Elastic Beanstalk-Umgebungen: Jede PHP-Anwendung wird in ihrer Umgebung ausgeführt.
• Eigenständiges ALB: Ein einzelnes ALB verarbeitet den gesamten eingehenden Datenverkehr und leitet ihn an die entsprechende Zielgruppe weiter.
• Zielgruppen: Jede Elastic Beanstalk-Umgebung hat ihre Zielgruppe für das Routing.

Architektur-Workflow:

  1. ALB empfängt Datenverkehr für alle Anwendungen.
  2. Listener-Regeln für die ALB leiten den Datenverkehr basierend auf Host-Headern oder Pfadmustern an die richtige Zielgruppe weiter.
  3. Zielgruppen leiten den Datenverkehr an die registrierten Instanzen der jeweiligen Elastic Beanstalk-Umgebungen weiter.

Schritt-für-Schritt-Anleitung

Schritt 1: Elastic Beanstalk-Umgebungen einrichten
Erstellen Sie separate Umgebungen für PHP-Anwendungen:

  1. Öffnen Sie die Elastic Beanstalk-Konsole.
  2. Klicken Sie auf Anwendung erstellen und konfigurieren: • Anwendungsname: PHP-App-1. • Plattform: Wählen Sie PHP aus. • Umgebung: Wählen Sie Webserver-Umgebung.
  3. Laden Sie Ihr .zip-Paket hoch, das die PHP-Anwendung enthält (z. B. index.php, Composer.json).
  4. Stellen Sie die Anwendung bereit.
  5. Wiederholen Sie diese Schritte für weitere Anwendungen (z. B. PHP-App-2, PHP-App-3).

Schritt 2: Erstellen Sie ein eigenständiges ALB

Erstellen Sie die ALB:

  1. Gehen Sie zur EC2-Konsole > Load Balancer.
  2. Klicken Sie auf Load Balancer erstellen und wählen Sie Application Load Balancer aus.
  3. Konfigurieren: • Name: standalone-alb. • Schema: Mit Blick auf das Internet. • Listener: Fügen Sie einen HTTPS-Listener hinzu (Port 443). • Verfügbarkeitszonen: Wählen Sie dieselben Zonen wie Ihre Elastic Beanstalk-Umgebungen.
  4. Klicken Sie auf Erstellen.

Registrieren Sie ALB bei Elastic Beanstalk:

  1. Navigieren Sie zu jeder Elastic Beanstalk-Umgebung.
  2. Verknüpfen Sie unter Konfiguration die Umgebung mit dem neu erstellten ALB.
  3. Stellen Sie sicher, dass die Integritätsprüfungen mit der ALB-Konfiguration übereinstimmen.

Schritt 3: Zielgruppen für jede Umgebung konfigurieren

Zielgruppen erstellen:

  1. Gehen Sie zur EC2-Konsole > Zielgruppen.
  2. Klicken Sie für jede Elastic Beanstalk-Umgebung auf Zielgruppe erstellen. • Name: Beispiel: php-app-1-tg. • Zieltyp: Instanz. • Protokoll: HTTP. • Hafen: 80. • Health Check Path: / (oder ein benutzerdefinierter Endpunkt, der in Ihrer Anwendung definiert ist).
  3. Fügen Sie der Zielgruppe Instanzen der jeweiligen Elastic Beanstalk-Umgebung hinzu.
  4. Navigieren Sie in jeder Zielgruppe zur Registerkarte „Ziele“ und bestätigen Sie, dass die registrierten Instanzen fehlerfrei sind.

Schritt 4: Listener-Regeln zum ALB hinzufügen

  1. Gehen Sie zur ALB-Konsole > Zuhörer > HTTP:80 > Regeln bearbeiten.
  2. Fügen Sie für jede Zielgruppe eine Regel hinzu: • Bedingung: Verwenden Sie den Host-Header entsprechend der Elastic Beanstalk-Umgebungsdomäne (z. B. php-app-1.elasticbeanstalk.com). • Aktion: Traffic an die entsprechende Zielgruppe weiterleiten (z. B. php-app-1-tg).
  3. Wiederholen Sie diesen Vorgang für alle Umgebungen.

Testen des Setups
• Simulieren Sie den Datenverkehr, um zu überprüfen, ob der ALB Anfragen basierend auf Listener-Regeln korrekt an die entsprechenden Zielgruppen weiterleitet.
• Überprüfen Sie den Zustand jeder Zielgruppe, um sicherzustellen, dass alle Instanzen fehlerfrei sind und wie erwartet Datenverkehr empfangen.
• Verwenden Sie Tools wie Curl oder Postman, um Anfragen direkt an den ALB-DNS-Endpunkt zu senden. Bestätigen Sie, dass der Datenverkehr an die richtige Elastic Beanstalk-Umgebung weitergeleitet wird und die erwarteten Antworten zurückgibt.

Hauptvorteile:

1. Kosteneffizienz: Reduziert die Infrastrukturkosten durch die Verwendung eines ALB für alle Umgebungen.
2. Vereinfachte Verwaltung: Zentralisiert die Verkehrsweiterleitung und Konfiguration der Listener-Regeln an einem Ort.
3. Skalierbarkeit:Unterstützt die unabhängige Skalierung von Zielgruppen für jede Umgebung.
4. Verbesserte Verkehrskontrolle: Bietet granulares Routing mit ALB-Listener-Regeln.
5. Zentralisierte Gesundheitsüberwachung:Konsolidiert Gesundheitsprüfungen für alle Umgebungen.

Fazit

Durch die Verwendung eines einzigen ALB mit Zielgruppen für mehrere Elastic Beanstalk-Umgebungen erhalten Sie eine kostengünstige, skalierbare und zentralisierte Lösung für das Hosten von PHP-Anwendungen.

Das obige ist der detaillierte Inhalt vonBereitstellen mehrerer PHP-Anwendungen mithilfe von AWS Elastic Beanstalk mit einem eigenständigen ALB. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage