Beispiel: VPC für Web- und Datenbankserver - Amazon Virtual Private Cloud

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.

Ü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.

Eine VPC mit Subnetzen in mindestens zwei Availability Zones.

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
  1. Öffnen Sie die Amazon-VPC-Konsole unter https://console.aws.amazon.com/vpc/.

  2. Wählen Sie auf dem VPC-Dashboard VPC erstellen aus.

  3. Wählen Sie unter Zu erstellende Ressourcen die Option VPC und mehr aus.

  4. Die VPC konfigurieren:

    1. 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.

    2. 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.

    3. (Optional) Wenn die Anwendung über IPv6-Adressen kommuniziert, wählen Sie den IPv6-CIDR-Block und den von Amazon bereitgestellten IPv6-CIDR-Block.

    4. 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 Default als 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 VPC Dedicated auswählen, werden die Instances immer als Dedicated Instances auf Hardware ausgeführt, die für Ihre Verwendung bestimmt ist.

  5. Subnetze konfigurieren:

    1. 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.

    2. Wählen Sie für Number of public subnets (Anzahl der öffentlichen Subnetze) 2 aus.

    3. Wählen Sie für Number of private subnets (Anzahl der privaten Subnetze) 2 aus.

    4. 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.

  6. Behalten Sie für NAT-Gateways den Standardwert Keine bei.

  7. 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.

  8. Behalten Sie beide Optionen unter DNS-Optionen ausgewählt. Infolgedessen erhalten Ihre Webserver öffentliche DNS-Hostnamen, die ihren öffentlichen IP-Adressen entsprechen.

  9. 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.