Türchen #9: Gutes VPC Design
Von Michael Krieg am 9. Dezember 2019
Grundlegendes
Amazon Virtual Private Cloud (kurz: VPC) ist die Basis für Eure Cloud Infrastruktur: hier werden virtuelle Netzwerk-Ressourcen erstellt. Darunter fallen u. a.:
- Subnetze
- Routing-Tabellen
- DHCP Einstellungen
- feste IP Adressen
- NAT-Gateways
- Internet-Gateways
- Datenbank Services
Fragen
Je nach geplanter Anwendung spielen einige Fragen hinsichtlich Topologie eine wichtige Rolle:
- Müssen alle Ressourcen (EC2 Instanzen, Docker Container, u. a.) direkt über das Internet erreichbar sein?
- Skaliert die Anwendung künftig horizontal - werden also dynamisch Ressourcen auf- und wieder abgebaut?
- Werden die Nutzer meiner Anwendung künftig eher regional oder primär weltweit (global) zugreifen?
- Welcher Schutzbedarf besteht generell? (Compliance Richtlinie)
- Wie sind die Anforderungen in puncto Hochverfügbarkeit?
Aus unserer Praxis
Wir bei Centrias achten grundlegend auf folgende Dinge:
- VPC CIDR ausreichend groß: ein /16er Netz bietet ausreichend Platz für private und öffentliche IP Adressen
- alle Availability Zones (kurz: AZ's) einer Region einbeziehen
- Backend Services nur in privaten Subnetzen
- Service Endpoints (z. B. für S3) aktivieren: so müssen interne Requests nicht extra über das Internet geroutet werden
- Kosten: nur Elastic IPs reservieren, die man auch nutzen möchte (ungenutzte IPs verursachen Extra-Kosten!)
- Kosten: in der Regel reicht ein NAT-Gateway für alle privaten Subnetze (aus Verfügbarkeitsgründen darf es natürlich auch ein NAT-Gateway pro Subnetz / AZ sein!)
- Default VPC löschen
Ein Beispiel
Hier seht Ihr ein typisches Beispiel mit privaten und öffentlichen Subnetzen sowie einem NAT-Gateway:
Bildquelle: https://docs.aws.amazon.com/de_de/vpc/latest/userguide/VPC_Scenario2.html
Hinweis: üblicherweise würden wir Webserver ebenfalls in private Subnetze setzen und mit einem Application Loadbalancer verbinden.
Und wie immer gilt: automatisieren und dem Infrastructure as Code
Prinzip folgen (etwa mittels Terraform
)!
Weiterführende Links
https://aws.amazon.com/answers/networking/aws-single-vpc-design/