Öffentliche Front-Ends und private Back-Ends in einer virtuellen privaten Cloud
Für dieses Lernprogramm können Kosten anfallen. Mit dem Kostenschätzer können Sie eine Kostenschätzung für Ihre voraussichtliche Nutzung generieren.
Dieses Lernprogramm führt Sie durch die Erstellung einer eigenen IBM Cloud® Virtual Private Cloud (VPC) mit mehreren Teilnetzen sowie einer virtuellen Serverinstanz (VSI) in jedem Teilnetz. Eine VPC ist Ihre eigene, private Cloud in einer gemeinsam genutzten Cloudinfrastruktur mit logischer Isolation von anderen virtuellen Netzen.
Ein Teilnetz ist ein IP-Adressbereich. Es ist an eine einzelne Zone gebunden und kann sich nicht über mehrere Zonen oder Regionen erstrecken. Für die Zwecke einer VPC ist das wichtige Merkmal eines Teilnetzes die Tatsache, dass Teilnetze voneinander isoliert werden können und auch miteinander auf normale Weise verbunden werden können. Die Teilnetzisolation lässt sich durch Sicherheitsgruppen realisieren, die als Firewalls zur Steuerung des eingehenden und abgehenden Datenverkehrs für eine oder mehrere virtuelle Serverinstanzen fungieren.
Es empfiehlt sich, ein Teilnetz zu verwenden, das für Ressourcen genutzt wird, die öffentlich zugänglich gemacht werden müssen. Ressourcen mit eingeschränktem Zugriff, auf die zu keinem Zeitpunkt direkter öffentlicher Zugriff bestehen darf, werden in einem anderen Teilnetz bereitgestellt. Instanzen in einem solchen Teilnetz könnten Ihre Back-End-Datenbank oder ein geheimer Speicher sein, der nicht öffentlich zugänglich sein soll. Sie definieren Sicherheitsgruppen, um den Datenverkehr zu den VSIs zu ermöglichen oder zu verweigern.
Die Verwendung einer VPC bietet Ihnen zusammengefasst die folgenden Möglichkeiten:
- Softwaredefiniertes Netz (SDN) erstellen
- Workloads isolieren
- Differenzierte Steuerung des ein- und ausgehenden Datenverkehrs
Ziele
- Für virtuelle private Clouds verfügbare Infrastrukturobjekte kennenlernen
- Vorgehensweise zur Erstellung einer virtuellen privaten Cloud sowie von Teilnetzen und Serverinstanzen kennenlernen
- Anwendung von Sicherheitsgruppen zum Schutz des Zugriffs auf die Server kennenlernen
- Der Administrator (DevOps) richtet die erforderliche Infrastruktur (VPC, Teilnetze, Sicherheitsgruppen mit Regeln, VSIs) in der Cloud ein.
- Der Internetbenutzer sendet eine HTTP/HTTPS-Anforderung an den Web-Server auf dem Front-End.
- Das Front-End fordert private Ressourcen aus dem geschützten Back-End an und stellt dem Benutzer Ergebnisse zu.
Vorbereitende Schritte
- Überprüfen Sie die Benutzerberechtigungen. Ihr Benutzerkonto muss über ausreichende Berechtigungen zum Erstellen von Verwalten von VPC-Ressourcen verfügen. Weitere Informationen bietet die Liste der erforderlichen Berechtigungen für VPC.
- Sie benötigen einen SSH-Schlüssel für die Herstellung einer Verbindung zu den virtuellen Servern. Wenn Sie noch keinen SSH-Schlüssel besitzen, befolgen Sie die Anweisungen zum Erstellen eines Schlüssels für VPC.
Virtuelle private Cloud und Teilnetze erstellen
Zur Verstärkung der Sicherheit Ihrer Server wird empfohlen, nur solche Verbindungen zu den Ports zuzulassen, die von den auf den Servern bereitgestellten Anwendungen benötigt werden. Da es sich in diesem Lernprogramm bei der Anwendung um einen Web-Server handelt, müssen nur eingehende Verbindungen an Port 80 zugelassen werden.
Zum Durchführen von Verwaltungstasks auf diesen Servern, wie zum Beispiel der Installation von Software oder der Durchführung von Betriebssystemupgrades, verwenden und passieren Sie einen Bastion-Host. Ein Bastion-Host ist eine Instanz, die mit einer öffentlichen IP-Adresse bereitgestellt wird und auf die über SSH zugegriffen werden kann. Nach seiner Einrichtung ermöglicht der Bastion-Host in seiner Funktion als Jump-Server die sichere Verbindung zu Instanzen, die in der VPC bereitgestellt wurden.
In diesem Abschnitt erstellen Sie die VPC und den Bastion-Host.
Dieses Lernprogramm umfasst auch begleitende Shell-Scripts und eine Terraform-Vorlage, die zur Generierung der Ressourcen verwendet werden können, die Sie mithilfe der nachfolgend beschriebenen Benutzerschnittstelle erstellen. Sie sind in diesem Github-Repository verfügbar.
- Navigieren Sie zur Seite "Virtual Private Clouds" und klicken Sie auf "Erstellen ".
- Gehen Sie im Abschnitt Neue virtuelle private Cloud wie folgt vor:
- Geben Sie vpc-pubpriv als Namen für Ihre VPC ein.
- Wählen Sie eine Ressourcengruppe aus.
- Fügen Sie optional Tags hinzu, um Ihre Ressourcen zu organisieren.
- Wählen Sie SSH zulassen und Ping zulassen in der Standardsicherheitsgruppe ab. Der SSH-Zugriff wird später zur Wartungssicherheitsgruppe hinzugefügt. Die Wartungssicherheitsgruppe muss zu einer Instanz hinzugefügt werden, um den SSH-Zugriff vom Bastionsserver zuzulassen. Der Ping-Zugriff ist für dieses Lernprogramm nicht erforderlich.
- Ändern Sie unter Teilnetze den Namen des Teilnetzes der Zone 1. Klicken Sie auf das Stiftsymbol:
- Geben Sie vpc-secure-bastion-subnet als eindeutigen Namen des Teilnetzes ein.
- Wählen Sie dieselbe Ressourcengruppe aus wie die VPC-Ressourcengruppe.
- Übernehmen Sie die Standardwerte in den anderen Werten.
- Klicken Sie auf Speichern.
- Ändern Sie unter Teilnetze den Namen des Teilnetzes der Zone 2. Klicken Sie auf das Stiftsymbol:
- Geben Sie vpc-pubpriv-backend-subnet als eindeutigen Namen Ihres Teilnetzes ein.
- Wählen Sie dieselbe Ressourcengruppe aus wie die VPC-Ressourcengruppe.
- Übernehmen Sie die Standardwerte in den anderen Werten.
- Klicken Sie auf Speichern.
- Ändern Sie unter Teilnetze den Namen des Teilnetzes der Zone 3. Klicken Sie auf das Stiftsymbol:
- Geben Sie vpc-pubpriv-frontend-subnet als eindeutigen Namen Ihres Teilnetzes ein.
- Wählen Sie dieselbe Ressourcengruppe aus wie die VPC-Ressourcengruppe.
- Übernehmen Sie die Standardwerte in den anderen Werten.
- Klicken Sie auf Speichern.
- Klicken Sie auf Virtual Private Cloud-Instanz erstellen.
Um die Erstellung des Subnetzes zu bestätigen, gehen Sie zur Seite "Subnetze" und warten Sie, bis der Status in "Verfügbar" geändert wird.
Bastion-Sicherheitsgruppe erstellen und konfigurieren
Gehen Sie anhand der in diesem Abschnitt des Bastion-Lernprogramms genannten Schritte vor, um eine Sicherheitsgruppe zu erstellen und für die Instanz des virtuellen Bastion-Servers Regeln für eingehenden Datenverkehr zu konfigurieren.
Bastion-Instanz erstellen
Gehen Sie anhand der in diesem Abschnitt des Bastion-Lernprogramms genannten Schritte vor, um die Instanz des virtuellen Bastion-Servers zu erstellen.
Sicherheitsgruppe mit Wartungszugriffsregeln konfigurieren
Gehen Sie anhand der in diesem Abschnitt des Bastion-Lernprogramms genannten Schritte vor, um die Sicherheitsgruppe vpc-secure-maintenance-sg zu erstellen. Diese Sicherheitsgruppe wird bei der Ausführung von Verwaltungstasks für virtuelle Serverinstanzen verwendet, z. B. bei der Installation von Software oder bei der Aktualisierung des Betriebssystems.
Erstellen einer Back-End-Sicherheitsgruppe und VSI
In diesem Abschnitt erstellen Sie eine Sicherheitsgruppe und eine Instanz des virtuellen Servers für das Back-End.
Back-End-Sicherheitsgruppe erstellen
Die Back-End-Sicherheitsgruppe steuert die eingehenden und ausgehenden Verbindungen für die Back-End-Server.
Gehen Sie wie folgt vor, um eine neue Sicherheitsgruppe für das Back-End zu erstellen:
- Wählen Sie unter "Netzwerk" die Option "Sicherheitsgruppen" aus und klicken Sie dann auf "Erstellen ".
- Geben Sie vpc-pubpriv-backend-sg als Namen ein und wählen Sie die VPC aus, die Sie zuvor erstellt haben.
- Wählen Sie eine Ressourcengruppe aus, die Ihrer VPC entspricht.
- Klicken Sie auf Sicherheitsgruppe erstellen.
Sie werden die Sicherheitsgruppe später bearbeiten, um die Regeln für ein- und ausgehenden Datenverkehr hinzuzufügen.
Virtuelle Serverinstanz für das Back-End erstellen
Gehen Sie wie folgt vor, um eine Virtual Server-Instanz im neu erstellten Teilnetz zu erstellen:
- Klicken Sie unter "Subnetze" auf das Backend-Subnetz.
- Klicken Sie auf Zugeordnete Ressourcen und klicken Sie unter Zugeordnete Instanzen auf Erstellen.
- Gehen Sie zum Konfigurieren der Instanz wie folgt vor:
- Wählen Sie einen Ort aus und stellen Sie sicher, dass Sie später denselben Ort erneut verwenden.
- Legen Sie für Name den Namen vpc-pubpriv-backend-vsi fest.
- Wählen Sie dieselbe Ressourcengruppe wie zuvor aus.
- Klicken Sie unter Bild auf Bild ändern. Wählen Sie im Suchfeld Ubuntu Linux als Betriebssystem aus. Sie können eine beliebige Version des Image wählen.
- Klicken Sie auf Profil ändern, wählen Sie Berechnen als Kategorie aus und wählen Sie cx2-2x4 (2 vCPUs und 4 GB RAM) als Profil aus.
- Legen Sie für SSH-Schlüssel den SSH-Schlüssel fest, den Sie zuvor erstellt haben.
- Legen Sie unter Erweiterte Optionen für Benutzerdaten Folgendes fest:
Dadurch wird ein einfacher Web-Server auf der Instanz installiert.#!/bin/bash apt-get update apt-get install -y nginx echo "I'm the backend server" > /var/www/html/index.html service nginx start
- Wählen Sie unter Netzbetrieb die erstellte VPC aus.
- Stellen Sie sicher, dass Virtuelle Netzschnittstelle ausgewählt und vpc-pubpriv-backend-subnet als Teilnetz aufgelistet ist. Klicken Sie auf das Bearbeitungssymbol für dieses Teilnetz.
- Überprüfen Sie zunächst unter Details zu Netzanschluss und virtueller Netzschnittstelle, ob vpc-pubpriv-backend-subnet ausgewählt ist. Klicken Sie auf Weiter (Next).
- Wählen Sie die Standardsicherheitsgruppe ab und wählen Sie vpc-pubpriv-backend-sg und vpc-secure-maintenance-sg aus.
- Lassen Sie im Dialog IP-Konfiguration alles unverändert und klicken Sie auf Weiter.
- Überprüfen Sie zuletzt alles und klicken Sie auf Speichern, um den Vorgang abzuschließen.
- Klicken Sie auf Virtual Server-Instanz erstellen.
Erstellen einer Front-End-Sicherheitsgruppe und VSI
Ähnlich wie beim Back-End erstellen Sie eine Front-End-Instanz für virtuelle Server und eine Sicherheitsgruppe.
Front-End-Sicherheitsgruppe erstellen
Gehen Sie wie folgt vor, um eine neue Sicherheitsgruppe für das Front-End zu erstellen:
- Klicken Sie auf Sicherheitsgruppen unter 'Netz' und anschließend auf Erstellen.
- Geben Sie vpc-pubpriv-frontend-sg als Namen ein und wählen Sie die VPC aus, die Sie zuvor erstellt haben.
- Wählen Sie eine Ressourcengruppe aus, die Ihrer VPC entspricht.
- Klicken Sie auf Sicherheitsgruppe erstellen.
Virtuelle Serverinstanz für das Front-End erstellen
Gehen Sie wie folgt vor, um eine Virtual Server-Instanz im neu erstellten Teilnetz zu erstellen:
- Klicken Sie unter "Subnetze" auf das Frontend-Subnetz.
- Klicken Sie auf Zugeordnete Ressourcen und klicken Sie unter Zugeordnete Instanzen auf Erstellen.
- Gehen Sie zum Konfigurieren der Instanz wie folgt vor:
- Wählen Sie einen Ort aus und stellen Sie sicher, dass Sie später denselben Ort erneut verwenden.
- Legen Sie für Name den Namen vpc-pubpriv-frontend-vsi fest.
- Wählen Sie dieselbe Ressourcengruppe wie zuvor aus.
- Klicken Sie unter Bild auf Bild ändern. Wählen Sie im Suchfeld Ubuntu Linux als Betriebssystem aus. Sie können eine beliebige Version des Image wählen.
- Klicken Sie auf Profil ändern, wählen Sie Berechnen als Kategorie aus und wählen Sie cx2-2x4 (2 vCPUs und 4 GB RAM) als Profil aus.
- Legen Sie für SSH-Schlüssel den SSH-Schlüssel aus, den Sie zuvor erstellt haben.
- Legen Sie unter Erweiterte Optionen für Benutzerdaten Folgendes fest:
Dadurch wird ein einfacher Web-Server auf der Instanz installiert.#!/bin/bash apt-get update apt-get install -y nginx echo "I'm the frontend server" > /var/www/html/index.html service nginx start
- Wählen Sie unter Netzbetrieb die erstellte VPC aus.
- Stellen Sie sicher, dass Virtuelle Netzschnittstelle ausgewählt und vpc-pubpriv-frontend-subnet als Teilnetz aufgelistet ist. Klicken Sie auf das Bearbeitungssymbol für dieses Teilnetz.
- Überprüfen Sie zunächst unter Details zu Netzanschluss und virtueller Netzschnittstelle, ob vpc-pubpriv-frontend-subnet ausgewählt ist. Klicken Sie auf Weiter (Next).
- Deaktivieren Sie die Standardsicherheitsgruppe und aktivieren Sie vpc-pubpriv-frontend-sg und vpc-secure-maintenance-sg.
- Lassen Sie im Dialog IP-Konfiguration alles unverändert und klicken Sie auf Weiter.
- Überprüfen Sie zuletzt alles und klicken Sie auf Speichern, um den Vorgang abzuschließen.
- Klicken Sie auf Virtual Server-Instanz erstellen.
Sobald die Instanz betriebsbereit ist und ausgeführt wird, wählen Sie die Front-End-VSI vpc-pubpriv-frontend-vsi aus, blättern Sie zu Network attachments with Virtual network interface und wählen Sie Edit floating IPs im Menü mit drei Punkten für eth0 aus. Klicken Sie auf Zuordnen, dann auf Neue variable IP-Adresse reservieren und verwenden Sie vpc-pubpriv-frontend-vsi-ip als Namen. Nach Abschluss der Reservierung müssen Sie möglicherweise die Seite aktualisieren, damit die neu zugeordnete IP-Adresse angezeigt wird.
Konnektivität zwischen Front-End und Back-End einrichten
Wenn alle Server ausgeführt werden, richten Sie in diesem Abschnitt die Konnektivität ein, um den regulären Betrieb zwischen den Front-End- und den Back-End-Servern zu ermöglichen.
Front-End-Sicherheitsgruppe konfigurieren
Die Front-End-Instanz hat ihre Software installiert, aber sie kann aufgrund der Konfiguration noch nicht erreicht werden.
-
Um zu bestätigen, dass noch kein Zugriff auf den Web-Server möglich ist, öffnen Sie einen Web-Browser, der auf
http://<floating-ip-address-of-the-frontend-vsi>
verweist, oder verwenden Sie Folgendes:curl -v -m 30 http://<floating-ip-address-of-the-frontend-vsi>
Die Verbindung sollte irgendwann aufgrund einer Zeitlimitüberschreitung beendet werden.
-
Um eine eingehende Verbindung zu dem auf der Front-End-Instanz installierten Web-Server zu ermöglichen, müssen Sie den Port öffnen, an dem der Web-Server empfangsbereit ist.
-
Navigieren Sie zu Sicherheitsgruppen im Abschnitt Teilnetz und klicken Sie dann auf vpc-pubpriv-frontend-sg.
-
Klicken Sie auf die Registerkarte Regeln und unter Eingehende Regeln auf Erstellen. Fügen Sie die Regeln aus der folgenden Tabelle hinzu, sie erlauben eingehende HTTP und Ping (ICMP).
Regeln für eingehenden Datenverkehr Protokoll Quellentyp Quelle Wert Beschreibung TCP Any 0.0.0.0/0 Ports 80-80 Diese Regel lässt Verbindungen von jeder beliebigen IP-Adresse zum Front-End-Web-Server zu. ICMP Any 0.0.0.0/0 Typ: 8, Code: Leer lassen Diese Regel lässt zu, dass der Front-End-Server von jedem beliebigen Host mit Ping überprüft werden kann. -
Fügen Sie als Nächstes die Regel für ausgehenden Datenverkehr hinzu. Der Port für den Back-End-Server hängt von der Software ab, die Sie auf dem virtuellen Server installieren. In diesem Lernprogramm wird ein Web-Server verwendet, der an Port 80 empfangsbereit ist. Werte finden Sie in der nachstehenden Tabelle Regeln für ausgehenden Datenverkehr.
Regeln für ausgehenden Datenverkehr Protokoll Zieltyp Ziel Wert Beschreibung TCP Sicherheitsgruppe vpc-pubpriv-backend-sg Ports 80-80 Diese Regel lässt zu, dass der Front-End-Server mit dem Back-End-Server kommunizieren kann. -
Rufen Sie die Front-End-Instanz erneut unter
http://<floating-ip-address-of-the-frontend-vsi>
auf, um die Startseite des Web-Servers anzuzeigen.
Konnektivität zwischen Front-End und Back-End testen
Auf dem Back-End-Server wird dieselbe Web-Server-Software ausgeführt wie auf dem Front-End-Server. Sie könnte als Mikroservice betrachtet werden, der eine HTTP-Schnittstelle zugänglich macht, die vom Front-End aufgerufen wird. In diesem Abschnitt versuchen Sie, von der Front-End-Serverinstanz eine Verbindung zum Back-End herzustellen.
-
Rufen Sie in der Liste Virtuelle Serverinstanzen die schwebende IP-Adresse des Bastion-Server-Hosts ( vpc-sichere-Bastion ) und die privaten IP-Adressen der Frontend- ( vpc-pubpriv-frontend-vsi ) und Backend-Serverinstanzen ( vpc-pubpriv-backend-vsi ) ab.
-
Stellen Sie mit
ssh
eine Verbindung zum virtuellen Front-End-Server her:ssh -J root@<floating-ip-address-of-the-bastion-vsi> root@<private-ip-address-of-the-frontend-vsi>
SSH zum Front-End ist nur über die Bastion möglich und nur dann, wenn vpc-secure-maintenance-sg zur Front-End-Instanz hinzugefügt wurde.
-
Rufen Sie den Back-End-Server auf:
curl -v -m 30 http://<private-ip-address-of-the-backend-vsi>
Nach 30 Sekunden sollte der Aufruf das Zeitlimit erreichen. Tatsächlich ist die Sicherheitsgruppe für den Back-End-Server noch nicht konfiguriert und lässt keine eingehende Verbindung zu.
Back-End-Sicherheitsgruppe konfigurieren
Damit eingehende Verbindungen zum Back-End-Server zugelassen werden, müssen Sie die zugehörige Sicherheitsgruppe konfigurieren.
-
Navigieren Sie zu Sicherheitsgruppen im Abschnitt Teilnetz und klicken Sie dann auf vpc-pubpriv-backend-sg.
-
Klicken Sie auf die Registerkarte Regeln und unter Eingehende Regeln auf Erstellen. Fügen Sie die folgende Regel hinzu:
Regeln für eingehenden Datenverkehr Protokoll Quellentyp Quelle Wert Beschreibung TCP Sicherheitsgruppe vpc-pubpriv-frontend-sg Ports 80-80 Diese Regel ermöglicht eingehende Verbindungen am Port 80 vom Front-End-Server zum Back-End-Server.
Konnektivität bestätigen
- Rufen Sie den Back-End-Web-Server erneut vom Front-End-Server auf:
curl -v -m 30 http://<private-ip-address-of-the-backend-vsi>
- Die Anforderung wird rasch zurückgegeben und gibt die Nachricht
I'm the backend server
vom Back-End-Web-Server aus. Damit ist die Konfiguration der Konnektivität zwischen den Servern abgeschlossen.
Wartung abschließen
Wenn die Software für den Front-End- und Back-End-Server ordnungsgemäß installiert und funktionsfähig ist, können die Server aus der Wartungssicherheitsgruppe entfernt werden.
- Navigieren Sie zu Sicherheitsgruppen im Abschnitt Teilnetz und klicken Sie dann auf vpc-secure-maintenance-sg.
- Wählen Sie Zugeordnete Ressourcen aus.
- Klicken Sie auf Schnittstellen bearbeiten, erweitern Sie die Ansicht und wählen Sie die Schnittstellen vpc-pubpriv-frontend-vsi und vpc-pubpriv-backend-vsi ab.
- Speichern Sie die Konfiguration.
- Rufen Sie die Front-End-Instanz erneut unter
http://<floating-ip-address-of-the-frontend-vsi>
auf, um sicherzustellen, dass sie weiterhin wie erwartet funktioniert.
Wenn die Server erst einmal aus der Wartungsgruppe entfernt worden sind, kann nicht mehr mit ssh
auf sie zugegriffen werden. Sie lassen nur Datenverkehr zu ihren Web-Servern zu.
In diesem Lernprogramm haben Sie zwei Schichten einer Anwendung bereitgestellt - einen Front-End-Server, der vom öffentlichen Internet aus sichtbar ist, und einen Back-End-Server, auf dem vom Front-End-Server nur innerhalb der VPCs zugegriffen werden kann. Sie haben Sicherheitsgruppenregeln konfiguriert, um sicherzustellen, dass Datenverkehr nur an den für die Anwendung erforderlichen Ports zugelassen wird.
Ressourcen entfernen
- Klicken Sie in der VPC-Infrastrukturkonsole unter "Netzwerk" auf "Floating IPs ", dann auf die IP-Adresse Ihrer VSIs und wählen Sie im Aktionsmenü "Freigeben " aus. Bestätigen Sie, dass die IP-Adresse veröffentlicht werden soll.
- Wechseln Sie anschließend zu Virtual Server-Instanzen. Stoppen und Löschen Sie Ihre Instanzen, indem Sie auf das entsprechende Aktionsmenü klicken.
- Sobald die VSIs entfernt wurden, wechseln Sie zu Teilnetze. Wenn das Teilnetz ein angehängtes öffentliches Gateway hat, klicken Sie auf den Teilnetznamen. Trennen Sie das öffentliche Gateway in den Teilnetzdetails. Teilnetze ohne öffentliches Gateway können über die Übersichtsseite gelöscht werden. Löschen Sie Ihre Teilnetze.
- Wechseln Sie nach dem Löschen der Teilnetze zur Registerkarte VPCs und löschen Sie Ihre VPC.
Wenn Sie die Konsole verwenden, müssen Sie Ihre Browseransicht möglicherweise aktualisieren, damit aktualisierte Statusinformationen nach dem Löschen einer Ressource angezeigt werden.