Für die Erstellung eines neuen VPCs sind folgende Schritte notwendig. Ein VPC ist immer an eine AWS Region gebunden.
Workshop-VPC
eingeben.172.100.0.0/16
verwenden. Eure Eingabemaske sollte anschliessend wie folgt aussehen.Der CIDR Range eines VPCs kann nachträglich NICHT geändert werden. Jedoch können zusätzliche CIDR Ranges zu einem bestehenden VPC hinzugefügt werden. Wichtig ist auch, dass sich CIDR Ranges nicht überlappen. Denn oftmals müssen Daten zwischen VPCs oder mit einem On-Premise Datacenter ausgetauscht werden.
Nach dem VPC selbst können individuelle Subnetze angelegt werden.
Workshop-VPC
auswählen.Workshop-PublicA
US East (N. Virginia / us-east-1a)
172.100.1.0/24
Workshop-PublicB
US East (N. Virginia / us-east-1b)
172.100.2.0/24
. Eure Eingabemaske sollte anschliessend wie folgt aussehen.Wenn in der Übersicht unter Subnets ein gerade erstelltes Subnetz per Checkbox ausgewählt wird können die Details angezeigt werden (z.B. Subnetz ID, VPC, AZ, Route tables etc.)
Die IP Adressen eines Subnetzes müssen aus dem zuvor definierten VPC CIDR Range stammen. Ein Subnetz ist immer einer einzigen Availability Zone (AZ) zugeordnet. Um hochverfügbare Architekturen zu realisieren werden also mehrere Subnets in unterschiedlichen AZ’s benötigt.
Um eine Kommunikation zum Internet zu ermöglichen und um Ressourcen aus dem Internet zugänglich zu machen, muss ein Internet Gateway (IGW) erstellt werden:
Workshop-IGW
eingeben.Workshop-VPC
auswählen.Eine Routing-Tabelle enthält eine Reihe von Regeln (Routes) die festlegen, wohin der Netzwerkverkehr aus einem VPC weitergeleitet wird. Pro Route wird der Ziel-IP Adressbereich sowie das Gateway oder die Netzwerkschnittstelle angegeben, an die der Netzwerkverkehr geschickt wird. Dabei kann eine Routing-Tabelle einem Subnetz explizit zugeordnet werden. Andernfalls wird das Subnetz implizit der Default Routing-Tabelle des VPCs zugeordnet, die bei der Erstellung des VPCs automatisch erzeugt wird.
Es ist eine Good Practice, eine neue Routing-Tabelle mit den entsprechenden Regeln zu erstellen.
Workshop-Public
eingeben.Workshop-VPC
auswählen.Nachdem die neue Routing-Tabelle erstellt wurde, müssen die Subnetze zugewiesen und die Regeln (Routes) erstellt werden.
Workshop-PublicA
und Workshop-PublicB
auswählen.Nun muss die Regel (Route) angelegt werden, damit der ein- und ausgehende Netzwerkverkehr über das Internet Gateway geschickt wird.
172.100.0.0/16
und dem Ziel local
ermöglicht bereits die Kommunikation innerhalb des VPCs (über alle Subnetze hinweg).0.0.0.0/0
angeben.Die Routing-Tabelle enthält nun zwei Regeln. Damit ist die Konfiguration des Routings abgeschlossen.
Eine Sicherheitsgruppe dient als virtuelle Firewall für Ressourcen und somit der Steuerung von ein- und ausgehendem Datenverkehr. Sicherheitsgruppen wirken auf der Instanz-Ebene und nicht auf der Subnetzebene. Daher kann jede Instanz in einem Subnetz eines VPCs einer anderen Reihe von Sicherheitsgruppen zugeordnet werden. Im letzten Schritt müssen also die Firewall Regeln (Security Groups) konfiguriert werden, damit Ressourcen später auch tatsächlich erreicht werden können. Für die Beispielanwendung werden drei Security Groups benötigt. Eine Security Group regelt den Zugriff aus dem Internet auf den Load Balancer. Die zweite Security Group regelt den Zugriff vom Load Balancer auf die Container Instanzen und die Dritte den Zugriff von Container Instanzen auf die Datenbank.
Anbei die Konfiguration für die erste Security Group für den Zugriff aus dem Internet:
Workshop-ALB-SG
eingeben. ALB steht hier für
Application Load Balancer.Workshop-VPC
auswählen.Allow HTTP from anywhere
eintragen. Eure Eingabemaske sollte anschliessend wie folgt aussehen.Anbei die Konfiguration für die zweite Security Group für den Zugriff vom Load Balancer auf die Container Instanzen:
Workshop-ECS-Backend-SG
eingeben. ECS steht hier für
Elastic Container Service.Workshop-VPC
auswählen.5000
angeben.Workshop-ALB-SG
auswählen.Allow access from ALB
eintragen.Anbei die Konfiguration für die dritte Security Group für den Zugriff der Container Instanzen auf die Datenbank:
Workshop-RDS-SG
eingeben. RDS steht hier für
Relational Database Service.Workshop-VPC
auswählen.Workshop-ECS-Backend-SG
auswählen.Allow DB Access from Container Instances
eintragen.Durch die Referenzierung der Security Groups untereinander wird einerseits sichergestellt, dass NUR die Ressourcen, denen die entsprechenden Source Security Group zugewiesen ist auf eine weitere Ressource zugreifen kann. Anderseits ist somit aber auch die Flexibilität gewährleistet, dass z.B. bei der Skalierung der Container Instanzen (bedeutet mehrere IP’s im VPC) auch alle diese Instanzen über die Security Group Zuordnung vom Load Balancer erreicht oder auf die Datenbank zugreifen können. Man nennt die Referenzierung von Security Groups auch Security Group Chaining.