Beispiel: VPC für Web- und Datenbankserver
Dieses Beispiel zeigt, wie Sie eine VPC erstellen, die Sie für eine zweistufige Architektur in einer Produktionsumgebung verwenden können. Um die Ausfallsicherheit zu erhöhen, stellen Sie die Server in zwei Availability Zones bereit.
Inhalt
Übersicht
Das folgende Diagramm bietet einen Überblick über die in diesem Beispiel enthaltenen Ressourcen. Die VPC hat öffentliche Subnetze und private Subnetze in zwei Availability Zones. Die Webserver laufen in den öffentlichen Subnetzen und empfangen Datenverkehr von Clients über einen Load Balancer. Sie können der Sicherheitsgruppe für die Webserver Regeln hinzufügen, um den Datenverkehr nur vom Load Balancer zuzulassen. Die Datenbankserver laufen in den privaten Subnetzen und empfangen Datenverkehr von den Webservern. Die Sicherheitsgruppe für die Datenbankserver ermöglicht den Datenverkehr von den Webservern. Die Datenbankserver können über einen Gateway-VPC-Endpunkt eine Verbindung zu Amazon S3 herstellen.
Routing
Wenn Sie diese VPC über die Amazon-VPC-Konsole erstellen, erstellen wir eine Routing-Tabelle für die öffentlichen Subnetze mit lokalen Routen und Routen zum Internet-Gateway sowie eine Routing-Tabelle für jedes private Subnetz mit lokalen Routen und einer Route zum Gateway-VPC-Endpunkt.
Im Folgenden finden Sie ein Beispiel für eine Routing-Tabelle für die öffentlichen Subnetze mit Routen für IPv4 und IPv6. Wenn Sie reine IPv4-Subnetze anstelle von Dual-Stack-Subnetzen erstellen, enthält Ihre Routing-Tabelle nur die IPv4-Routen.
| Bestimmungsort | Ziel |
|---|---|
10.0.0.0/16 |
Local |
2001:db8:1234:1a00::/56 |
Lokal |
| 0.0.0.0/0 | igw-id |
| ::/0 | igw-id |
Im Folgenden finden Sie ein Beispiel für eine Routing-Tabelle für die privaten Subnetze mit Routen für IPv4 und IPv6. Wenn Sie reine IPv4-Subnetze erstellen, enthält Ihre Routing-Tabelle nur die IPv4-Routen. Die letzte Route sendet Datenverkehr für Amazon S3 an den Gateway-VPC-Endpunkt.
| Bestimmungsort | Ziel |
|---|---|
10.0.0.0/16 |
Local |
2001:db8:1234:1a00::/56 |
local |
S3-Präfix-Listen-ID |
s3-gateway-id |
Sicherheit
Für diese Beispielkonfiguration erstellen Sie eine Sicherheitsgruppe für den Load Balancer, eine Sicherheitsgruppe für die Webserver und eine Sicherheitsgruppe für die Datenbankserver.
Load Balancer
Die Sicherheitsgruppe für Ihren Application Load Balancer oder Network Load Balancer muss eingehenden Datenverkehr von Clients am Load-Balancer-Listener-Port zulassen. Um Datenverkehr von überall im Internet zu akzeptieren, geben Sie 0.0.0.0/0 als Quelle ein. Die Load-Balancer-Sicherheitsgruppe muss auch ausgehenden Datenverkehr vom Load Balancer zu den Ziel-Instances auf dem Instance-Listener-Port und dem Zustandsprüfungsport zulassen.
Web-Server
Die folgenden Sicherheitsgruppenregeln ermöglichen Webservern, HTTP- und HTTPS-Datenverkehr vom Load Balancer zu empfangen. Sie können den Webservern optional erlauben, SSH- oder RDP-Verkehr von Ihrem Netzwerk zu empfangen. Die Webserver können SQL- bzw. MySQL-Datenverkehr an Ihre Datenbankserver senden.
| Quelle | Protocol (Protokoll) | Port-Bereich | Beschreibung |
|---|---|---|---|
ID der Sicherheitsgruppe für den Load Balancer |
TCP | 80 | Lässt eingehenden HTTP-Zugriff vom Load Balancer zu |
ID der Sicherheitsgruppe für den Load Balancer |
TCP | 443 | Lässt eingehenden HTTP-Zugriff vom Load Balancer zu |
Öffentlicher IPv4-Adressbereich Ihres Netzwerks |
TCP | 22 | (Optional) Lässt eingehenden SSH-Zugriff von IPv4-IP-Adressen in Ihrem Netzwerk zu |
IPv6-Adressbereich Ihres Netzwerks |
TCP | 22 | (Optional) Lässt eingehenden SSH-Zugriff von IPv6-IP-Adressen in Ihrem Netzwerk zu |
Öffentlicher IPv4-Adressbereich Ihres Netzwerks |
TCP | 3389 | (Optional) Lässt eingehenden RDP-Zugriff von IPv4-IP-Adressen in Ihrem Netzwerk zu |
IPv6-Adressbereich Ihres Netzwerks |
TCP | 3389 | (Optional) Lässt eingehenden RDP-Zugriff von IPv6-IP-Adressen in Ihrem Netzwerk zu |
| Bestimmungsort | Protocol (Protokoll) | Port-Bereich | Beschreibung |
|---|---|---|---|
ID der Sicherheitsgruppe für Instances, auf denen Microsoft SQL Server ausgeführt wird |
TCP |
1433 |
Lässt ausgehenden Microsoft-SQL-Server-Zugriff auf die Datenbankserver zu |
ID der Sicherheitsgruppe für Instances, auf denen MySQL ausgeführt wird |
TCP |
3306 |
Lässt ausgehenden MySQL-Server-Zugriff auf die Datenbankserver zu |
Datenbankserver
Die folgenden Sicherheitsgruppenregeln berechtigen die Datenbankserver, Lese- und Schreibanforderungen von den Webservern zu empfangen.
| Quelle | Protocol (Protokoll) | Port-Bereich | Kommentare |
|---|---|---|---|
Die ID der Webserver-Sicherheitsgruppe |
TCP | 1433 | Lässt eingehenden Microsoft SQL Server-Zugriff von Webservern zu |
Die ID der Webserver-Sicherheitsgruppe |
TCP | 3306 | Lässt eingehenden MySQL-Zugriff von den Webservern zu |
| Bestimmungsort | Protocol (Protokoll) | Port-Bereich | Kommentare |
|---|---|---|---|
| 0.0.0.0/0 | TCP | 80 | Lässt ausgehenden HTTP-Zugriff auf das Internet über IPv4 zu |
| 0.0.0.0/0 | TCP | 443 | Lässt ausgehenden HTTP-Zugriff auf das Internet über IPv4 zu |
Weitere Informationen zu Sicherheitsgruppen für Amazon RDS-DB-Instances finden Sie unter Zugriffskontrolle mit Sicherheitsgruppen im Amazon RDS-Benutzerhandbuch.
1. Erstellen Sie die VPC
Gehen Sie wie folgt vor, um eine VPC mit einem öffentlichen Subnetz und einem privaten Subnetz in zwei Availability Zones zu erstellen.
So erstellen Sie die VPC
Öffnen Sie die Amazon-VPC-Konsole unter https://console.aws.amazon.com/vpc/
. -
Wählen Sie auf dem VPC-Dashboard VPC erstellen aus.
-
Wählen Sie unter Zu erstellende Ressourcen die Option VPC und mehr aus.
-
Die VPC konfigurieren:
-
Lassen Sie die automatische Generierung von Namenstags aktiviert, um Namenstags für die VPC-Ressourcen zu erstellen, oder deaktivieren Sie sie, um Ihre eigenen Namenstags für die VPC-Ressourcen bereitzustellen.
-
Behalten Sie für den IPv4-CIDR-Block entweder den Standardvorschlag bei oder geben Sie den für Ihre Anwendung oder Ihr Netzwerk erforderlichen CIDR-Block ein. Weitere Informationen finden Sie unter VPC-CIDR-Blöcke.
-
(Optional) Wenn die Anwendung über IPv6-Adressen kommuniziert, wählen Sie den IPv6-CIDR-Block und den von Amazon bereitgestellten IPv6-CIDR-Block.
-
Wählen Sie eine Tenancy-Option aus. Diese Option definiert, ob in der VPC gestartete EC2-Instances auf Hardware ausgeführt werden, die gemeinsam mit anderen AWS-Konten genutzt wird, oder auf Hardware, die ausschließlich für Ihre Verwendung bestimmt ist. Wenn Sie
Defaultals Tenancy der VPC auswählen, nutzen EC2-Instances, die in dieser VPC gestartet werden, das beim Starten der Instance angegebene Tenancy-Attribut. Weitere Informationen finden Sie unter Starten einer Instance mit bestimmten Parametern im Amazon-EC2-Benutzerhandbuch. Wenn Sie für die Tenancy der VPCDedicatedauswählen, werden die Instances immer als Dedicated Instances auf Hardware ausgeführt, die für Ihre Verwendung bestimmt ist.
-
-
Subnetze konfigurieren:
-
Wählen Sie für Anzahl der Availability Zones die Option 2, so dass Sie Instances in mehreren Availability Zones starten können, um die Ausfallsicherheit zu erhöhen.
-
Wählen Sie für Number of public subnets (Anzahl der öffentlichen Subnetze) 2 aus.
-
Wählen Sie für Number of private subnets (Anzahl der privaten Subnetze) 2 aus.
-
Sie können die standardmäßigen CIDR-Blöcke für die Subnetze beibehalten oder alternativ die CIDR-Blöcke der Subnetze anpassen erweitern und einen CIDR-Block eingeben. Weitere Informationen finden Sie unter Subnetz-CIDR-Blöcke.
-
-
Behalten Sie für NAT-Gateways den Standardwert Keine bei.
-
Behalten Sie für VPC-Endpunkte den Standardwert S3-Gateway bei. Obwohl es keine Auswirkungen hat, solange Sie nicht auf einen S3-Bucket zugreifen, entstehen keine Kosten für die Aktivierung dieses VPC-Endpunkts.
-
Behalten Sie beide Optionen unter DNS-Optionen ausgewählt. Infolgedessen erhalten Ihre Webserver öffentliche DNS-Hostnamen, die ihren öffentlichen IP-Adressen entsprechen.
-
Wählen Sie VPC erstellen aus.
2. Bereitstellen der Anwendung
Idealerweise haben Sie Ihre Web- und Datenbankserver bereits in einer Entwicklungs- oder Testumgebung getestet und die Skripts oder Images erstellt, die Sie für die Bereitstellung Ihrer Anwendung in der Produktion verwenden werden.
Sie können EC2-Instances für Ihre Webserver verwenden. Es gibt eine Vielzahl von Möglichkeiten für die Bereitstellung von EC2-Instances. Zum Beispiel:
Um die Verfügbarkeit zu verbessern, können Sie Amazon EC2 Auto Scaling verwenden, um Server in mehreren Availability Zones bereitzustellen und die für die Anwendung erforderliche Mindestserverkapazität aufrechtzuerhalten.
Sie können Elastic Load Balancing verwenden, um den Traffic gleichmäßig auf Ihre Server zu verteilen. Sie können Ihre Load Balancer an eine Auto-Scaling-Gruppe anhängen.
Sie können EC2-Instances für Ihre Datenbankserver oder einen unserer speziell entwickelten Datenbanktypen verwenden. Weitere Informationen finden Sie unter Datenbanken in AWS: So treffen Sie Ihre Auswahl.
3. Testen Sie Ihre Konfiguration
Nachdem Sie Ihre Anwendung bereitgestellt haben, können Sie sie testen. Wenn Ihre Anwendung den erwarteten Datenverkehr nicht senden oder empfangen kann, können Sie den Reachability Analyzer verwenden, um Sie bei der Fehlerbehebung zu unterstützen. Reachability Analyzer kann beispielsweise Konfigurationsprobleme mit Ihren Routing-Tabellen oder Sicherheitsgruppen identifizieren. Weitere Informationen finden Sie im Leitfaden Reachability Analyzer.
4. Bereinigen
Wenn Sie mit dieser Konfiguration fertig sind, können Sie sie löschen. Bevor Sie die VPC löschen können, müssen Sie Ihre Instances beenden und den Load Balancer löschen. Weitere Informationen finden Sie unter Löschen der VPC.