Erstellen einer VPC mit privaten Subnetzen und NAT-Gateways mit der AWS CLI - Amazon Virtual Private Cloud

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Erstellen einer VPC mit privaten Subnetzen und NAT-Gateways mit der AWS CLI

In diesem Tutorial wird gezeigt, wie Sie über die AWS CLI eine VPC erstellen, die Sie für Server in einer Produktionsumgebung verwenden können. Um die Resilienz zu verbessern, stellen Sie Server in zwei Availability Zones bereit und verwenden dabei eine Auto-Scaling-Gruppe und einen Application Load Balancer. Für zusätzliche Sicherheit werden Sie die Datenbankserver in privaten Subnetzen bereitstellen. Die Server empfangen Anfragen über den Load Balancer und können über NAT-Gateways eine Verbindung zum Internet herstellen. Um die Resilienz zu verbessern, stellen Sie ein NAT-Gateway in jeder Availability Zone bereit.

Das folgende Diagramm bietet einen Überblick über die genutzten Ressourcen in diesem Tutorial. Die VPC hat öffentliche Subnetze und private Subnetze in zwei Availability Zones. Jedes öffentliche Subnetz enthält ein NAT-Gateway und einen Load-Balancer-Knoten. Die Server werden in den privaten Subnetzen ausgeführt, werden mithilfe einer Auto-Scaling-Gruppe gestartet und beendet und empfangen Datenverkehr vom Load Balancer. Die Server können über das NAT-Gateway eine Verbindung zum Internet herstellen. Die Server können über einen Gateway-VPC-Endpunkt eine Verbindung zu Amazon S3 herstellen.

Eine VPC mit Subnetzen in mindestens zwei Availability Zones.

Voraussetzungen

Bevor Sie mit diesem Tutorial beginnen, brauchen Sie Folgendes:

  • Die AWS CLI muss installiert und mit Berechtigungen zum Erstellen von VPC-Ressourcen, EC2-Instances, Load Balancern und Auto-Scaling-Gruppen konfiguriert sein. Informationen zur Installation von AWS CLI finden Sie unter Installieren oder Aktualisieren der neuesten Version von AWS CLI.

  • Grundkenntnisse der VPC-Konzepte, einschließlich Subnetzen, Routing-Tabellen und Internet-Gateways.

  • Der JSON-Prozessor der jq-Befehlszeile muss installiert sein. Dies wird verwendet, um die Ausgabe von AWS CLI-Befehlen zu parsen. Informationen zum Installieren von jq finden Sie unter jq herunterladen.

  • Ausreichende Service Quotas für die zu erstellenden Ressourcen, einschließlich:

  • mindestens 2 verfügbare Elastic-IP-Adressen

  • mindestens 2 NAT-Gateways

  • mindestens 1 VPC

  • mindestens 4 Subnetze

  • mindestens 1 Application Load Balancer

Geschätzte Kosten: Für die in diesem Tutorial erstellten Ressourcen fallen Gebühren in Ihrem AWS-Konto an: NAT-Gateways: ~0,045 $ pro Stunde, zuzüglich Datenverarbeitungsgebühren Elastic-IP-Adressen: kostenlos, wenn sie mit laufenden Instances verknüpft sind, andernfalls ~0,005 $ pro Stunde EC2-Instances: variiert je nach Instance-Typ (in diesem Tutorial: t3.micro) Application Load Balancer: ~0,0225 $ pro Stunde zuzüglich Datenverarbeitungsgebühren

Erstellen der VPC und der Subnetze

Als Erstes erstellen Sie eine VPC mit dem CIDR-Block 10.0.0.0/16, der bis zu 65 536 private IP-Adressen bereitstellt.

# Create a VPC with CIDR block 10.0.0.0/16 aws ec2 create-vpc --cidr-block 10.0.0.0/16 --tag-specifications 'ResourceType=vpc,Tags=[{Key=Name,Value=ProductionVPC}]'

Daraufhin erhalten Sie ein Ergebnis, das dem hier dargestellten entspricht:

{ "Vpc": { "CidrBlock": "10.0.0.0/16", "DhcpOptionsId": "dopt-abcd1234", "State": "pending", "VpcId": "vpc-abcd1234", "OwnerId": "123456789012", "InstanceTenancy": "default", "Ipv6CidrBlockAssociationSet": [], "CidrBlockAssociationSet": [ { "AssociationId": "vpc-cidr-assoc-abcd1234", "CidrBlock": "10.0.0.0/16", "CidrBlockState": { "State": "associated" } } ], "IsDefault": false, "Tags": [ { "Key": "Name", "Value": "ProductionVPC" } ] } }

Notieren Sie sich die VPC-ID in der Ausgabe (z. B. vpc-abcd1234). Diese ID verwenden Sie in nachfolgenden Befehlen.

Als Nächstes identifizieren Sie zwei Availability Zones in Ihrer Region, um eine ausfallsichere Architektur zu erstellen.

# Get available Availability Zones aws ec2 describe-availability-zones --query 'AvailabilityZones[0:2].ZoneName' --output text

Daraufhin erhalten Sie ein Ergebnis, das dem hier dargestellten entspricht:

us-east-1a us-east-1b

Jetzt erstellen Sie vier Subnetze: zwei öffentliche Subnetze für den Load Balancer und die NAT-Gateways sowie zwei private Subnetze für Ihre Anwendungsserver. Ersetzen Sie vpc-abcd1234 durch Ihre tatsächliche VPC-ID und us-east-1a und us-east-1b durch Ihre tatsächlichen Availability Zones.

# Create public subnet in first AZ aws ec2 create-subnet \ --vpc-id vpc-abcd1234 \ --cidr-block 10.0.0.0/24 \ --availability-zone us-east-1a \ --tag-specifications 'ResourceType=subnet,Tags=[{Key=Name,Value=PublicSubnet1}]' # Create private subnet in first AZ aws ec2 create-subnet \ --vpc-id vpc-abcd1234 \ --cidr-block 10.0.1.0/24 \ --availability-zone us-east-1a \ --tag-specifications 'ResourceType=subnet,Tags=[{Key=Name,Value=PrivateSubnet1}]' # Create public subnet in second AZ aws ec2 create-subnet \ --vpc-id vpc-abcd1234 \ --cidr-block 10.0.2.0/24 \ --availability-zone us-east-1b \ --tag-specifications 'ResourceType=subnet,Tags=[{Key=Name,Value=PublicSubnet2}]' # Create private subnet in second AZ aws ec2 create-subnet \ --vpc-id vpc-abcd1234 \ --cidr-block 10.0.3.0/24 \ --availability-zone us-east-1b \ --tag-specifications 'ResourceType=subnet,Tags=[{Key=Name,Value=PrivateSubnet2}]'

Jeder Befehl gibt eine Ausgabe zurück, die die Subnetz-ID enthält. Notieren Sie sich diese IDs zur Verwendung in nachfolgenden Befehlen:

  • Öffentliches Subnetz 1: subnet-abcd1234

  • Privates Subnetz 1: subnet-abcd5678

  • Öffentliches Subnetz 2: subnet-efgh1234

  • Privates Subnetz 2: subnet-efgh5678

Erstellen und konfigurieren der Internetverbindung

In diesem Abschnitt erstellen Sie ein Internet-Gateway, das die Kommunikation zwischen Ihrer VPC und dem Internet ermöglicht, und fügen es Ihrer VPC an.

# Create an Internet Gateway aws ec2 create-internet-gateway --tag-specifications 'ResourceType=internet-gateway,Tags=[{Key=Name,Value=ProductionIGW}]'

Der Befehl gibt eine Ausgabe zurück, die die Internet-Gateway-ID enthält. Notieren Sie sich diese ID (zum Beispiel igw-abcd1234).

Fügen Sie den Internet-Gateway an Ihre VPC an. Ersetzen Sie igw-abcd1234 durch Ihre tatsächliche Internet-Gateway-ID und vpc-abcd1234 durch Ihre tatsächliche VPC-ID.

# Attach the Internet Gateway to the VPC aws ec2 attach-internet-gateway --internet-gateway-id igw-abcd1234 --vpc-id vpc-abcd1234

Als Nächstes erstellen Sie Routing-Tabellen für Ihre öffentlichen und privaten Subnetze. Ersetzen Sie vpc-abcd1234 durch Ihre tatsächliche VPC-ID.

# Create a route table for public subnets aws ec2 create-route-table --vpc-id vpc-abcd1234 --tag-specifications 'ResourceType=route-table,Tags=[{Key=Name,Value=PublicRouteTable}]' # Create route table for private subnet in first AZ aws ec2 create-route-table --vpc-id vpc-abcd1234 --tag-specifications 'ResourceType=route-table,Tags=[{Key=Name,Value=PrivateRouteTable1}]' # Create route table for private subnet in second AZ aws ec2 create-route-table --vpc-id vpc-abcd1234 --tag-specifications 'ResourceType=route-table,Tags=[{Key=Name,Value=PrivateRouteTable2}]'

Jeder Befehl gibt eine Ausgabe zurück, die die ID der Routing-Tabelle enthält. Notieren Sie sich diese IDs:

  • Öffentliche Routing-Tabelle: rtb-abcd1234

  • Private Routing-Tabelle 1: rtb-efgh1234

  • Private Routing-Tabelle 2: rtb-ijkl1234

Fügen Sie dem Internet-Gateway in der öffentlichen Routing-Tabelle eine Route hinzu, um den Internetzugang zu aktivieren. Ersetzen Sie rtb-abcd1234 durch Ihre tatsächliche Routing-Tabellen-ID und igw-abcd1234 durch Ihre tatsächliche Internet-Gateway-ID.

# Add a route to the Internet Gateway aws ec2 create-route --route-table-id rtb-abcd1234 --destination-cidr-block 0.0.0.0/0 --gateway-id igw-abcd1234

Ordnen Sie die Subnetze ihren jeweiligen Routing-Tabellen zu. Ersetzen Sie die Routing-Tabellen-IDs und die Subnetz-IDs durch Ihre tatsächlichen IDs.

# Associate public subnets with the public route table aws ec2 associate-route-table --route-table-id rtb-abcd1234 --subnet-id subnet-abcd1234 aws ec2 associate-route-table --route-table-id rtb-abcd1234 --subnet-id subnet-efgh1234 # Associate private subnets with their respective route tables aws ec2 associate-route-table --route-table-id rtb-efgh1234 --subnet-id subnet-abcd5678 aws ec2 associate-route-table --route-table-id rtb-ijkl1234 --subnet-id subnet-efgh5678

Erstellen von NAT-Gateways

Über NAT-Gateways können Instances in privaten Subnetzen eine Verbindung mit dem Internet oder anderen AWS-Services herstellen. Sie verhindern aber, dass das Internet eine Verbindung mit diesen Instances initiiert. Zuerst weisen Sie Ihren NAT-Gateways Elastic-IP-Adressen zu.

# Allocate Elastic IP for NAT Gateway in first AZ aws ec2 allocate-address --domain vpc --tag-specifications 'ResourceType=elastic-ip,Tags=[{Key=Name,Value=NAT1-EIP}]' # Allocate Elastic IP for NAT Gateway in second AZ aws ec2 allocate-address --domain vpc --tag-specifications 'ResourceType=elastic-ip,Tags=[{Key=Name,Value=NAT2-EIP}]'

Jeder Befehl gibt eine Ausgabe zurück, die die Zuweisungs-ID enthält. Notieren Sie sich diese IDs:

  • EIP 1 Zuweisungs-ID: eipalloc-abcd1234

  • EIP 2 Zuweisungs-ID: eipalloc-efgh1234

Erstellen Sie NAT-Gateways in jedem öffentlichen Subnetz. Ersetzen Sie die Subnetz-IDs und die Zuweisungs-IDs durch Ihre tatsächlichen IDs.

# Create NAT Gateway in public subnet of first AZ aws ec2 create-nat-gateway \ --subnet-id subnet-abcd1234 \ --allocation-id eipalloc-abcd1234 \ --tag-specifications 'ResourceType=natgateway,Tags=[{Key=Name,Value=NAT-Gateway1}]' # Create NAT Gateway in public subnet of second AZ aws ec2 create-nat-gateway \ --subnet-id subnet-efgh1234 \ --allocation-id eipalloc-efgh1234 \ --tag-specifications 'ResourceType=natgateway,Tags=[{Key=Name,Value=NAT-Gateway2}]'

Jeder Befehl gibt eine Ausgabe zurück, die die NAT-Gateway-ID enthält. Notieren Sie sich diese IDs:

  • NAT-Gateway 1: nat-abcd1234

  • NAT-Gateway 2: nat-efgh1234

Die Bereitstellung von NAT-Gateways dauert einige Minuten. Warten Sie, bis sie verfügbar sind, bevor Sie fortfahren. Ersetzen Sie die NAT-Gateway-IDs durch Ihre tatsächlichen IDs.

# Wait for NAT Gateways to be available aws ec2 wait nat-gateway-available --nat-gateway-ids nat-abcd1234 aws ec2 wait nat-gateway-available --nat-gateway-ids nat-efgh1234

Fügen Sie in den privaten Routing-Tabellen Routen zu den NAT-Gateways hinzu, damit Instances in privaten Subnetzen auf das Internet zugreifen können. Ersetzen Sie die Routing-Tabellen-IDs und die NAT-Gateway-IDs durch Ihre tatsächlichen IDs.

# Add route to NAT Gateway 1 in private route table 1 aws ec2 create-route \ --route-table-id rtb-efgh1234 \ --destination-cidr-block 0.0.0.0/0 \ --nat-gateway-id nat-abcd1234 # Add route to NAT Gateway 2 in private route table 2 aws ec2 create-route \ --route-table-id rtb-ijkl1234 \ --destination-cidr-block 0.0.0.0/0 \ --nat-gateway-id nat-efgh1234

Erstellen eines VPC-Endpunkts für Amazon S3

Ein VPC-Endpunkt für Amazon S3 ermöglicht Instances in Ihren privaten Subnetzen den Zugriff auf S3, ohne das NAT-Gateway zu nutzen. Dadurch werden die Datenübertragungskosten gesenkt und die Netzwerkleistung verbessert. Ersetzen Sie vpc-abcd1234 durch Ihre tatsächliche VPC-ID und die Routing-Tabellen-IDs durch Ihre tatsächlichen IDs.

# Get the prefix list ID for S3 in your region S3_PREFIX_LIST_ID=$(aws ec2 describe-prefix-lists --filters "Name=prefix-list-name,Values=com.amazonaws.$(aws configure get region).s3" --query 'PrefixLists[0].PrefixListId' --output text) # Create the VPC endpoint for S3 aws ec2 create-vpc-endpoint \ --vpc-id vpc-abcd1234 \ --service-name com.amazonaws.$(aws configure get region).s3 \ --route-table-ids rtb-efgh1234 rtb-ijkl1234 \ --tag-specifications 'ResourceType=vpc-endpoint,Tags=[{Key=Name,Value=S3-Endpoint}]'

Der Befehl gibt eine Ausgabe zurück, die die VPC-Endpunkt-ID enthält. Notieren Sie sich diese ID (zum Beispiel vpce-abcd1234).

Configure Security Groups (Sicherheitsgruppen konfigurieren)

Sicherheitsgruppen dienen als virtuelle Firewalls für Ihre Instances, um den ein- und ausgehenden Datenverkehr zu steuern. Erstellen Sie eine Sicherheitsgruppe für den Load Balancer, die eingehenden HTTP-Datenverkehr von überall zulässt. Ersetzen Sie vpc-abcd1234 durch Ihre tatsächliche VPC-ID.

# Create security group for the load balancer aws ec2 create-security-group \ --group-name LoadBalancerSG \ --description "Security group for the load balancer" \ --vpc-id vpc-abcd1234 \ --tag-specifications 'ResourceType=security-group,Tags=[{Key=Name,Value=LoadBalancerSG}]'

Der Befehl gibt eine Ausgabe zurück, die die Sicherheitsgruppen-ID enthält. Notieren Sie sich diese ID (zum Beispiel sg-abcd1234).

Lassen Sie eingehenden HTTP-Datenverkehr zum Load Balancer zu. Ersetzen Sie sg-abcd1234 durch die tatsächliche Sicherheitsgruppen-ID Ihres Load Balancers.

# Allow inbound HTTP traffic from anywhere aws ec2 authorize-security-group-ingress \ --group-id sg-abcd1234 \ --protocol tcp \ --port 80 \ --cidr 0.0.0.0/0

Erstellen Sie eine Sicherheitsgruppe für die Anwendungsserver, die eingehenden Datenverkehr nur vom Load Balancer zulässt. Ersetzen Sie vpc-abcd1234 durch Ihre tatsächliche VPC-ID.

# Create security group for the application servers aws ec2 create-security-group \ --group-name AppServerSG \ --description "Security group for the application servers" \ --vpc-id vpc-abcd1234 \ --tag-specifications 'ResourceType=security-group,Tags=[{Key=Name,Value=AppServerSG}]'

Der Befehl gibt eine Ausgabe zurück, die die Sicherheitsgruppen-ID enthält. Notieren Sie sich diese ID (zum Beispiel sg-efgh1234).

Lassen Sie eingehenden HTTP-Datenverkehr von der Sicherheitsgruppe des Load Balancers zu den Anwendungsservern zu. Ersetzen Sie sg-efgh1234 durch die tatsächliche Sicherheitsgruppen-ID Ihres Anwendungsservers und sg-abcd1234 durch die tatsächliche Sicherheitsgruppen-ID Ihres Load Balancers.

# Allow inbound HTTP traffic from the load balancer security group aws ec2 authorize-security-group-ingress \ --group-id sg-efgh1234 \ --protocol tcp \ --port 80 \ --source-group sg-abcd1234

Erstellen einer Startvorlage für EC2-Instances

Eine Startvorlage enthält die Konfigurationsinformationen zum Starten einer Instance, z. B. die AMI-ID, den Instance-Typ und die Sicherheitsgruppen. Erstellen Sie zunächst ein Benutzerdatenskript, das beim Start der Instance ausgeführt wird.

cat > user-data.sh << 'EOF' #!/bin/bash yum update -y yum install -y httpd systemctl start httpd systemctl enable httpd echo "<h1>Hello from $(hostname -f) in $(curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone)</h1>" > /var/www/html/index.html EOF

Codieren Sie das Benutzerdatenskript in Base64.

USER_DATA=$(base64 -w 0 user-data.sh)

Rufen Sie die ID des neuesten Amazon-Linux-2-AMI ab.

# Get the latest Amazon Linux 2 AMI ID aws ec2 describe-images --owners amazon --filters "Name=name,Values=amzn2-ami-hvm-*-x86_64-gp2" "Name=state,Values=available" --query 'sort_by(Images, &CreationDate)[-1].ImageId' --output text

Erstellen Sie eine Startvorlage mit der AMI-ID, dem Instance-Typ, der Sicherheitsgruppe und den Benutzerdaten. Ersetzen Sie sg-efgh1234 durch die tatsächliche Sicherheitsgruppen-ID Ihres Anwendungsservers und $AMI_ID und $USER_DATA durch die Werte, die in den vorherigen Befehlen zurückgegeben wurden.

# Create a launch template aws ec2 create-launch-template \ --launch-template-name AppServerTemplate \ --version-description "Initial version" \ --tag-specifications 'ResourceType=launch-template,Tags=[{Key=Name,Value=AppServerTemplate}]' \ --launch-template-data '{ "NetworkInterfaces": [{ "DeviceIndex": 0, "Groups": ["sg-efgh1234"], "DeleteOnTermination": true }], "ImageId": "ami-abcd1234", "InstanceType": "t3.micro", "UserData": "IyEvYmluL2Jhc2gKeXVtIHVwZGF0ZSAteQp5dW0gaW5zdGFsbCAteSBodHRwZApzeXN0ZW1jdGwgc3RhcnQgaHR0cGQKc3lzdGVtY3RsIGVuYWJsZSBodHRwZAplY2hvICI8aDE+SGVsbG8gZnJvbSAkKGhvc3RuYW1lIC1mKSBpbiAkKGN1cmwgLXMgaHR0cDovLzE2OS4yNTQuMTY5LjI1NC9sYXRlc3QvbWV0YS1kYXRhL3BsYWNlbWVudC9hdmFpbGFiaWxpdHktem9uZSk8L2gxPiIgPiAvdmFyL3d3dy9odG1sL2luZGV4Lmh0bWw=", "TagSpecifications": [{ "ResourceType": "instance", "Tags": [{ "Key": "Name", "Value": "AppServer" }] }] }'

Erstellen eines Load Balancers und einer Zielgruppe

Eine Zielgruppe leitet Anforderungen über das Protokoll und die Port-Nummer, die Sie angeben, an registrierte Ziele wie EC2-Instances weiter. Erstellen Sie eine Zielgruppe für Ihre Anwendungsserver. Ersetzen Sie vpc-abcd1234 durch Ihre tatsächliche VPC-ID.

# Create a target group aws elbv2 create-target-group \ --name AppTargetGroup \ --protocol HTTP \ --port 80 \ --vpc-id vpc-abcd1234 \ --target-type instance \ --health-check-protocol HTTP \ --health-check-path / \ --health-check-port traffic-port

Der Befehl gibt eine Ausgabe zurück, die den Zielgruppen-ARN enthält. Notieren Sie sich diesen ARN (zum Beispiel arn:aws:elasticloadbalancing:us-east-1:123456789012:targetgroup/AppTargetGroup/abcd1234).

Erstellen Sie einen Application Load Balancer in den öffentlichen Subnetzen. Ersetzen Sie die Subnetz- und Sicherheitsgruppen-IDs durch Ihre tatsächlichen IDs.

# Create a load balancer aws elbv2 create-load-balancer \ --name AppLoadBalancer \ --subnets subnet-abcd1234 subnet-efgh1234 \ --security-groups sg-abcd1234 \ --tags Key=Name,Value=AppLoadBalancer

Der Befehl gibt eine Ausgabe zurück, die den Load-Balancer-ARN enthält. Notieren Sie sich diesen ARN (zum Beispiel arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/app/AppLoadBalancer/abcd1234).

Warten Sie, bis der Load Balancer aktiv ist, und fahren Sie dann fort. Ersetzen Sie arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/app/AppLoadBalancer/abcd1234 durch den tatsächlichen ARN Ihres Load Balancers.

# Wait for load balancer to be active aws elbv2 wait load-balancer-available \ --load-balancer-arns arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/app/AppLoadBalancer/abcd1234

Erstellen Sie einen Listener für den Load Balancer, der HTTP-Datenverkehr an die Zielgruppe weiterleitet. Ersetzen Sie den Load-Balancer-ARN und den Zielgruppen-ARN durch Ihre tatsächlichen ARNs.

# Create a listener aws elbv2 create-listener \ --load-balancer-arn arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/app/AppLoadBalancer/abcd1234 \ --protocol HTTP \ --port 80 \ --default-actions Type=forward,TargetGroupArn=arn:aws:elasticloadbalancing:us-east-1:123456789012:targetgroup/AppTargetGroup/abcd1234

Erstellen einer Auto-Scaling-Gruppe

Eine Auto-Scaling-Gruppe enthält eine Sammlung von EC2-Instances, die zur automatischen Skalierung und Verwaltung als logische Gruppierung behandelt werden. Erstellen Sie eine Auto-Scaling-Gruppe, die die Startvorlage verwendet und Instances in die privaten Subnetze platziert. Ersetzen Sie die Subnetz-IDs und den Zielgruppen-ARN durch Ihre tatsächlichen Werte.

# Create an Auto Scaling group aws autoscaling create-auto-scaling-group \ --auto-scaling-group-name AppAutoScalingGroup \ --launch-template LaunchTemplateName=AppServerTemplate,Version='$Latest' \ --min-size 2 \ --max-size 4 \ --desired-capacity 2 \ --vpc-zone-identifier "subnet-abcd5678,subnet-efgh5678" \ --target-group-arns arn:aws:elasticloadbalancing:us-east-1:123456789012:targetgroup/AppTargetGroup/abcd1234 \ --health-check-type ELB \ --health-check-grace-period 300 \ --tags Key=Name,Value=AppServer,PropagateAtLaunch=true

Testen Sie Ihre Konfiguration

Nachdem die Auto-Scaling-Gruppe Instances gestartet hat und diese die Zustandsprüfungen bestanden haben, können Sie Ihren Load Balancer testen. Rufen Sie den DNS-Namen des Load Balancers ab. Ersetzen Sie den Load-Balancer-ARN durch Ihren tatsächlichen ARN.

# Get the DNS name of the load balancer aws elbv2 describe-load-balancers \ --load-balancer-arns arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/app/AppLoadBalancer/abcd1234 \ --query "LoadBalancers[0].DNSName" \ --output text

Verwenden Sie curl, um die Anwendung mit dem Namen des Load Balancers zu testen.

curl http://LoadBalancerName

Wenn Sie die Seite mehrmals aktualisieren, sollten Sie Antworten von verschiedenen Instances in verschiedenen Availability Zones sehen.

Bereinigen von Ressourcen

Wenn Sie mit diesem Tutorial fertig sind, sollten Sie alle Ressourcen löschen, damit keine weiteren Gebühren anfallen. Ersetzen Sie alle IDs durch Ihre tatsächlichen Ressourcen-IDs.

# Delete the Auto Scaling group aws autoscaling delete-auto-scaling-group \ --auto-scaling-group-name AppAutoScalingGroup \ --force-delete # Wait for the Auto Scaling group to be deleted sleep 60 # Delete the load balancer aws elbv2 delete-load-balancer \ --load-balancer-arn arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/app/AppLoadBalancer/abcd1234 # Wait for the load balancer to be deleted sleep 30 # Delete the target group aws elbv2 delete-target-group \ --target-group-arn arn:aws:elasticloadbalancing:us-east-1:123456789012:targetgroup/AppTargetGroup/abcd1234 # Delete the launch template aws ec2 delete-launch-template \ --launch-template-name AppServerTemplate # Delete the NAT Gateways aws ec2 delete-nat-gateway --nat-gateway-id nat-abcd1234 aws ec2 delete-nat-gateway --nat-gateway-id nat-efgh1234 # Wait for the NAT Gateways to be deleted sleep 90 # Release the Elastic IPs aws ec2 release-address --allocation-id eipalloc-abcd1234 aws ec2 release-address --allocation-id eipalloc-efgh1234 # Delete the VPC endpoint aws ec2 delete-vpc-endpoints --vpc-endpoint-ids vpce-abcd1234 # Wait for security group dependencies to clear sleep 30 # Delete the security groups aws ec2 delete-security-group --group-id sg-efgh1234 aws ec2 delete-security-group --group-id sg-abcd1234 # Detach the Internet Gateway aws ec2 detach-internet-gateway --internet-gateway-id igw-abcd1234 --vpc-id vpc-abcd1234 # Delete the Internet Gateway aws ec2 delete-internet-gateway --internet-gateway-id igw-abcd1234 # Delete the route tables aws ec2 delete-route-table --route-table-id rtb-efgh1234 aws ec2 delete-route-table --route-table-id rtb-ijkl1234 aws ec2 delete-route-table --route-table-id rtb-abcd1234 # Delete the subnets aws ec2 delete-subnet --subnet-id subnet-abcd1234 aws ec2 delete-subnet --subnet-id subnet-efgh1234 aws ec2 delete-subnet --subnet-id subnet-abcd5678 aws ec2 delete-subnet --subnet-id subnet-efgh5678 # Delete the VPC aws ec2 delete-vpc --vpc-id vpc-abcd1234

Nächste Schritte

Nachdem Sie eine VPC mit privaten Subnetzen und NAT-Gateways erstellt haben, können Sie sich die folgenden Themen ansehen: