Wie man

So richten Sie ein AWS VPC-Netzwerk mit CloudFormation ein

So richten Sie ein AWS VPC-Netzwerk mit CloudFormation ein

Der Artikel führt den Benutzer durch die Automatisierung der Infrastrukturbereitstellung auf AWS mit CloudFormation. Die Vorlage automatisiert speziell die Erstellung von:

Voraussetzungen

Die CloudFormation-Vorlage

Das folgende Skript wird verwendet, um die Erstellung der Netzwerkinfrastruktur wie oben beschrieben zu automatisieren. Der Benutzer kann die Vorlage an seine/ihre bevorzugten Bedürfnisse anpassen. Zu den zu modifizierenden Teilen gehören:

--- AWSTemplateFormatVersion: "2010-09-09" Beschreibung: Vorlage zum Erstellen unserer Testumgebung Netzwerkarchitektur mit 4 privaten Subnetzen und 2 öffentlichen Subnetzen Parameter: VPCBlock: Typ: String Beschreibung: Der CIDR-Block für die VPC Standard: 192.168.0.0/16 PrivateSubnet01Block: Typ: String Beschreibung: Der CIDR-Block für das private Subnetz 01 Standard: 192.168.1.0/26 PrivateSubnet02Block: Typ: String Beschreibung: Der CIDR-Block für das private Subnetz 02 Standard: 192.168.1.64/26 PrivateSubnet03Block: Typ: String Beschreibung: Der CIDR-Block für das private Subnetz 03 Standard: 192.168.1.128/26 PrivateSubnet04Block: Typ: String Beschreibung: Der CIDR-Block für das private Subnetz 04 Standard: 192.168.1.192/26 PublicSubnet01Block: Typ: String Beschreibung: Der CIDR-Block für das öffentliche Subnetz 01 Standard: 192.168.0.0/28 PublicSubnet02Block: Typ: String Beschreibung: Der CIDR-Block für das öffentliche Subnetz 02 Standard: 192.168.0.16/28 Ressourcen: VPC: Typ: AWS::EC2::VPC-Eigenschaften: CidrBlock: !Ref VPCBlock EnableDnsHostnames: true EnableDnsSupport: true InstanceTenancy: default Tags: - Schlüssel: Name Wert: eu-central-1-test-Environment-VPC - Schlüssel: CreatedBy Wert: Maureen Barasa - Schlüssel: Projektwert: test-blog - Schlüssel: Umgebungswert: test IGW: Typ: AWS::EC2::InternetGateway-Eigenschaften: Tags: - Schlüssel: Name Wert: eu-central-1-test-Environment-IGW - Schlüssel: CreatedBy Wert: Maureen Barasa - Schlüssel: Projektwert: test-blog - Schlüssel: Umgebung Wert: test VPCGatewayAttachment: Typ: AWS::EC2::VPCGatewayAttachment Eigenschaften: InternetGatewayId: !Ref IGW VpcId: !Ref VPC NatGateway01: DependsOn: - PublicSubnet01 - VPCGatewayAttachment Type: AWS::EC2::NatGateway Properties: AllocationId: eipalloc-**************** SubnetId: !Ref PublicSubnet01 Tags: - Schlüssel: Name Wert: eu-central-1-test-Environment-NatGateway01 - Schlüssel: CreatedBy Wert: Maureen Barasa - Schlüssel: Projektwert: test-blog - Schlüssel: Umgebung Wert: test NatGateway02: DependsOn: - PublicSubnet02 - VPCGatewayAttachment-Typ: AWS::EC2::NatGateway-Eigenschaften: AllocationId: eipalloc-******************** SubnetId: !Ref PublicSubnet02 Tags: - Schlüssel: Name Wert: eu-central-1-test-Environment-NatGateway02 - Schlüssel: CreatedBy Wert: Maureen Barasa - Schlüssel: Projektwert: test-blog - Schlüssel: Umgebungswert: test PublicRouteTable: Typ: AWS ::EC2::RouteTable-Eigenschaften: VpcId: !Ref-VPC-Tags: - Schlüssel: Name Wert: eu-central-1-test-Environment-PublicRouteTable - Schlüssel: CreatedBy Wert: Maureen Barasa - Schlüssel: Projektwert: test-blog - Schlüssel: Umgebungswert: test PrivateRouteTable01: Typ: AWS ::EC2::RouteTable-Eigenschaften: VpcId: !Ref-VPC-Tags: - Schlüssel: Name Wert: eu-central-1-test-Environment-PrivateRouteTable01 - Schlüssel: CreatedBy Wert: Maureen Barasa - Schlüssel: Projektwert: test-blog - Schlüssel: Umgebungswert: test PrivateRouteTable02: Typ: AWS ::EC2::RouteTable-Eigenschaften: VpcId: !Ref-VPC-Tags: - Schlüssel: Name Wert: eu-central-1-test-Environment-PrivateRouteTable02 - Schlüssel: CreatedBy Wert: Maureen Barasa - Schlüssel: Projektwert: test-blog - Schlüssel: Umgebungswert: test PublicRoute: DependsOn: VPCGatewayAttachment Typ: AWS::EC2::Route-Eigenschaften: RouteTableId: !Ref PublicRouteTable DestinationCidrBlock: 0.0.0.0/0 Gateway-ID: !Ref IGW PrivateRoute01: Abhängig von: - VPCGatewayAttachment - NatGateway01 Typ: AWS::EC2::Route-Eigenschaften: RouteTableId: !Ref PrivateRouteTable01 DestinationCidrBlock: 0.0.0.0/0 NatGatewayId: !Ref NatGateway01 PrivateRoute02: DependsOn: - VPCGatewayAttachment - NatGateway02 Typ: AWS::EC2::Route-Eigenschaften: RouteTableId: !Ref PrivateRouteTable02 DestinationCidrBlock: 0.0.0.0/0 NatGatewayId: !Ref NatGateway02 PrivateSubnet01: Typ: AWS::EC2::Subnetzeigenschaften: AvailabilityZone: eu-central-1a CidrBlock: !Ref PrivateSubnet01Block VpcId: !Ref-VPC-Tags: - Schlüssel: Name Wert: eu-central-1-test-Environment-PrivateSubnet01 - Schlüssel: CreatedBy Wert: Maureen Barasa - Schlüssel: Projektwert: test-blog - Schlüssel: Umgebungswert: test PrivateSubnet02: Typ: AWS ::EC2::Subnetzeigenschaften: AvailabilityZone: eu-central-1b CidrBlock: !Ref PrivateSubnet02Block VpcId: !Ref-VPC-Tags: - Schlüssel: Name Wert: eu-central-1-test-Environment-PrivateSubnet02 - Schlüssel: CreatedBy Wert: Maureen Barasa - Schlüssel: Projektwert: test-blog - Schlüssel: Umgebungswert: test PrivateSubnet03: Typ: AWS ::EC2::Subnetzeigenschaften: AvailabilityZone: eu-central-1a CidrBlock: !Ref PrivateSubnet03Block VpcId: !Ref-VPC-Tags: - Schlüssel: Name Wert: eu-central-1-test-Environment-PrivateSubnet03 - Schlüssel: CreatedBy Wert: Maureen Barasa - Schlüssel: Projektwert: test-blog - Schlüssel: Umgebungswert: test PrivateSubnet04: Typ: AWS ::EC2::Subnetzeigenschaften: AvailabilityZone: eu-central-1b CidrBlock: !Ref PrivateSubnet04Block VpcId: !Ref-VPC-Tags: - Schlüssel: Name Wert: eu-central-1-test-Environment-PrivateSubnet04 - Schlüssel: CreatedBy Wert: Maureen Barasa - Schlüssel: Projektwert: test-blog - Schlüssel: Umgebungswert: test PublicSubnet01: Typ: AWS ::EC2::Subnetzeigenschaften: MapPublicIpOnLaunch: true AvailabilityZone: eu-central-1a CidrBlock: !Ref PublicSubnet01Block VpcId: !Ref-VPC-Tags: - Schlüssel: Name Wert: eu-central-1-test-Environment-PublicSubnet01 - Schlüssel: CreatedBy Wert: Maureen Barasa - Schlüssel: Projektwert: test-blog - Schlüssel: Umgebungswert: test PublicSubnet02: Typ: AWS ::EC2::Subnetzeigenschaften: MapPublicIpOnLaunch: true AvailabilityZone: eu-central-1b CidrBlock: !Ref PublicSubnet02Block VpcId: !Ref-VPC-Tags: - Schlüssel: Name Wert: eu-central-1-test-Environment-PublicSubnet02 - Schlüssel: CreatedBy Wert: Maureen Barasa - Schlüssel: Projektwert: test-blog - Schlüssel: Umgebungswert: test PublicSubnet01RouteTableAssociation: Typ: AWS ::EC2::SubnetRouteTableAssociation-Eigenschaften: SubnetId: !Ref PublicSubnet01 RouteTableId: !Ref PublicRouteTable PublicSubnet02RouteTableAssociation: Typ: AWS::EC2::SubnetRouteTableAssociation Eigenschaften: SubnetId: !Ref PublicSubnet02 RouteTableId: !Ref PublicRouteTable PrivateSubnet01RouteTableAssociation: Typ: AWS::EC2::SubnetRouteTableAssociation Eigenschaften: SubnetId: !Ref PrivateSubnet01 RouteTableId: !Ref PrivateRouteTable01 PrivateSubnet02RouteTableAssociation: Typ: AWS::EC2::SubnetRouteTableAssociation-Eigenschaften: SubnetId: !Ref PrivateSubnet02 RouteTableId: !Ref PrivateRouteTable02 PrivateSubnet03RouteTableAssociation: Typ: AWS::EC2::SubnetRouteTableAssociation-Eigenschaften: SubnetId: !Ref PrivateSubnet03 RouteTableId: !Ref PrivateRouteTable01 PrivateSubnet04RouteTableAssociation: Typ: AWS::EC2::SubnetRouteTableAssociation-Eigenschaften: SubnetId: !Ref PrivateSubnet04 RouteTableId: !Ref PrivateRouteTable02 Ausgaben: PublicSubnet01Id: Beschreibung: ID des öffentlichen Subnetzes 01 in der VPC Wert: !Ref PublicSubnet01 Export: Name: !Sub "$AWS::StackName-PublicSubnet01Id" PublicSubnet02Id: Beschreibung: Public Subnet 02 ID in the VPC Value: !Ref PublicSubnet02 Export: Name: !Sub "$AWS::StackName-PublicSubnet02Id" PrivateSubne01tId: Beschreibung: Private Subnet 01 ID in der VPC Wert: !Ref PrivateSubnet01 Export: Name: !Sub "$AWS::StackName-PrivateSubnetId" PrivateSubne02tId: Beschreibung: Private Subnet 02 ID in der VPC Wert: !Ref PrivateSubnet02 Export: Name: !Sub "$AWS::StackName-PrivateSubnet02Id" PrivateSubne03tId: Beschreibung: Private Subnet 03 ID in der VPC Wert: !Ref PrivateSubnet03 Export: Name: !Sub "$AWS::StackName-PrivateSubnet03Id" PrivateSubne04tId: Beschreibung: Private Subnetz-IDs im VPC-Wert: !Ref PrivateSubnet04 Export: Name: !Sub "$AWS::StackName-PrivateSubnet04Id" VpcId: Beschreibung: Der VPC-ID-Wert: !VPC-Referenzexport: Name: !Sub "$AWS::StackName-VPCID"

Die Vorlage/das Skript erklärt

Unsere Vorlage besteht aus drei Abschnitten:

Der Parameterbereich: In diesem Abschnitt können Benutzer benutzerdefinierte Werte für die Ressourcen eingeben, die sie erstellen. Es ist am besten für die Verwendung mit dynamischen Werten geeignet. Diese Werte, die sich regelmäßig in Ihrer Vorlage ändern.

Der Ressourcenbereich: In diesem Abschnitt kann der Benutzer die AWS-Ressourcen definieren, die er mithilfe der Vorlage erstellen möchte.

Der Ausgabebereich: Der Abschnitt enthält die Namen der erstellten Ressourcen. Sollten diese Ressourcen zur Verwendung auf anderen Stapeln exportiert werden müssen, bietet der Ausgabeabschnitt diese Option über die Exportsitzung.

Erstellen Sie einen Stapel, um die Vorlage auszuführen

Sobald Sie mit der Bearbeitung Ihres Skripts/Ihrer Vorlage fertig sind, melden Sie sich bei Ihrem AWS Cloud-Konto an. Suchen Sie unter Dienste nach CloudFormation. Klicken Sie dann in der CloudFormation-Konsole auf Stapel erstellen, wie in der Abbildung unten gezeigt.

CloudFormation-Stack erstellen

Wählen Sie im Dropdown-Menü Stack mit neuen Ressourcen erstellen. Wie unten bild.

CloudFormation-Stack mit neuen Ressourcen erstellen

Wählen Sie im Fenster Stapel erstellen die Option Vorlage hochladen upload. Wählen Sie dann die Datei/das Skript aus, die Sie im obigen Abschnitt erstellt haben. Weiter klicken.

Laden Sie die CloudFormation-Vorlage hoch

Das sich öffnende Fenster ermöglicht dem Benutzer die Eingabe des Stapelnamens und der Vorlagenparameter. Hier kann der Benutzer entscheiden, die Standardwerte der Vorlage in seine eigenen benutzerdefinierten Werte zu ändern. Wenn Sie fertig sind, klicken Sie auf Weiter.

Geben Sie den Stack-Namen und die Parameter ein

Konfigurieren Sie im folgenden Fenster die Stapeloptionen. Dazu gehören die Tags, die Stack-Richtlinie, die Rollback-Konfigurationen usw. Wenn Sie fertig sind, klicken Sie auf Weiter. Dies öffnet ein Überprüfungsfenster, um alle zuvor vorgenommenen Konfigurationen zu überprüfen. Wenn der Benutzer zufrieden ist, kann er dann auf Stapel erstellen klicken.

Während die Ressourcen mit der Vorlage erstellt werden, kann der Benutzer außerdem die Ereignisse in der CloudFormation-Konsole verfolgen. Siehe Bild unten.

Stack-Erstellungsereignisse ansehen

Wenn die Vorlagenerstellung abgeschlossen ist, haben Sie alle Ressourcen für diese Vorlage erstellt. Ihre Netzwerkarchitektur ist jetzt fertig.

Wichtige Links

https://docs.aws.Amazonas.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html

https://docs.aws.Amazonas.com/AWSCloudFormation/latest/UserGuide/cfn-ug.pdf

Glückliches Bauen

Weitere Artikel zu AWS:

So streamen Sie Protokolle in AWS von CloudWatch zu ElasticSearch

Einrichten eines Elasticsearch-Clusters mit Kibana auf AWS

Gewähren Sie Entwicklern Zugriff auf den EKS Kubernetes-Cluster

Installieren Sie Istio Service Mesh im EKS Kubernetes-Cluster

So beheben Sie die Benachrichtigung Ihre Outlook-Kontoeinstellungen sind veraltet
Die Benachrichtigung Ihre Outlook-Kontoeinstellungen sind veraltet kann aus verschiedenen Gründen passieren. In diesem Artikel haben wir versucht, fas...
So entfernen Sie das UAC-Schild von einem Symbol auf Ihrem Desktop
Sind alle Anwendungssymbole unten rechts auf Ihrem Desktop mit einem Schild versehen?? Wenn Sie diese Schilde auf Ihren Symbolen sehen, besteht die Mö...
So aktivieren und deaktivieren Sie den Energiesparmodus in Windows 10
Der Batteriesparmodus kann verwendet werden, um Strom zu sparen, wenn der Akku des Systems fast leer ist. Nehmen wir an, wir haben einen langen Tag un...