Criação de uma VPC que contém sub-redes privadas e gateways NAT usando a AWS CLI
Este tutorial demonstra como criar uma VPC que pode ser usada para servidores em um ambiente de produção, usando a AWS CLI. Para melhorar a resiliência, você implantará servidores em duas zonas de disponibilidade, com o uso de um grupo do Auto Scaling e de um Application Load Balancer. Para maior segurança, os servidores serão implantados em sub-redes privadas. Os servidores receberão solicitações por meio do balanceador de carga e poderão estabelecer conexões com a internet usando gateways NAT. Para melhorar a resiliência, você implantará um gateway NAT em cada zona de disponibilidade.
O diagrama apresentado a seguir fornece uma visão geral dos recursos incluídos neste tutorial. A VPC tem sub-redes públicas e sub-redes privadas em duas zonas de disponibilidade. Cada sub-rede pública contém um gateway NAT e um nó balanceador de carga. Os servidores executados nas sub-redes privadas são executados e encerrados usando um grupo do Auto Scaling e recebem tráfego do balanceador de carga. Os servidores podem se conectar à Internet usando o gateway NAT. Os servidores podem se conectar ao Amazon S3 usando um endpoint da VPC de gateway.

Pré-requisitos
Antes de iniciar este tutorial, será necessário:
-
Ter a AWS CLI instalada e configurada com permissões para criar recursos da VPC, instâncias do EC2, balanceadores de carga e grupos do Auto Scaling. Para obter informações sobre como instalar a AWS CLI, consulte Instalar ou atualizar para a versão mais recente da AWS CLI.
-
Ter conhecimento básico dos conceitos da VPC, incluindo sub-redes, tabelas de rotas e gateways da internet.
-
Ter o processador JSON para a linha de comando
jq
instalado. Esse processor é usado para analisar a saída dos comandos da AWS CLI. Para obter mais informações sobre a instalação do jq, consulte Download jq. -
Ter cotas de serviço suficientes para os recursos que você criará, incluindo:
-
No mínimo, dois endereços IP elásticos disponíveis
-
No mínimo, dois gateways NAT
-
No mínimo, uma VPC
-
No mínimo, quatro sub-redes
-
No mínimo, um Application Load Balancer
Custo estimado: os recursos criados neste tutorial incorrerão em cobranças em sua conta da AWS: Gateways NAT: custo de, aproximadamente, USD 0,045 por hora, acrescido de cobranças por processamento de dados | Endereços IP elásticos: gratuitos quando estão associados a instâncias em execução e com um custo de, aproximadamente, USD 0,005 por hora quando não associados | Instâncias do EC2: custo varia conforme o tipo de instância (o tipo t3.micro é usado neste tutorial) | Application Load Balancer: custo de, aproximadamente, USD 0,0225 por hora, acrescido de cobranças por processamento de dados.
Criação da VPC e das sub-redes
Primeiro, você criará uma VPC com um bloco CIDR de 10.0.0.0/16, que possibilita a alocação de até 65.536 endereços IP privados.
# 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}]'
Esse comando retorna uma saída semelhante à seguinte:
{ "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" } ] } }
Anote o ID da VPC apresentado na saída (por exemplo, vpc-abcd1234
). Você usará esse ID nos próximos comandos.
Em seguida, você identificará duas zonas de disponibilidade em sua região para criar uma arquitetura resiliente.
# Get available Availability Zones aws ec2 describe-availability-zones --query 'AvailabilityZones[0:2].ZoneName' --output text
Esse comando retorna uma saída semelhante à seguinte:
us-east-1a us-east-1b
Agora, crie quatro sub-redes: duas sub-redes públicas, destinadas ao balanceador de carga e aos gateways NAT, e duas sub-redes privadas, destinadas aos servidores de aplicações. Certifique-se de substituir vpc-abcd1234
pelo ID correspondente à VPC, e us-east-1a
e us-east-1b
pelas zonas de disponibilidade correspondentes.
# 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}]'
Cada comando retorna uma saída que contém o ID da sub-rede. Anote esses IDs para uso nos próximos comandos:
-
Sub-rede pública 1:
subnet-abcd1234
-
Sub-rede privada 1:
subnet-abcd5678
-
Sub-rede pública 2:
subnet-efgh1234
-
Sub-rede privada 2:
subnet-efgh5678
Criação e configuração da conectividade com a internet
Nesta seção, você criará um gateway da internet para permitir a comunicação entre a VPC e a internet, e o anexará à sua VPC.
# Create an Internet Gateway aws ec2 create-internet-gateway --tag-specifications 'ResourceType=internet-gateway,Tags=[{Key=Name,Value=ProductionIGW}]'
O comando retorna uma saída que contém o ID do gateway da internet. Anote esse ID (por exemplo, igw-abcd1234
).
Anexe o gateway da internet à VPC. Certifique-se de substituir igw-abcd1234
pelo ID correspondente ao gateway da internet e vpc-abcd1234
pelo ID correspondente à VPC.
# Attach the Internet Gateway to the VPC aws ec2 attach-internet-gateway --internet-gateway-id igw-abcd1234 --vpc-id vpc-abcd1234
Em seguida, crie tabelas de rotas para as sub-redes públicas e privadas. Certifique-se de substituir vpc-abcd1234
pelo ID correspondente à VPC.
# 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}]'
Cada comando retorna uma saída que contém o ID da tabela de rotas. Anote esses IDs:
-
Tabela de rotas pública:
rtb-abcd1234
-
Tabela de rotas privada 1:
rtb-efgh1234
-
Tabela de rotas privada 2:
rtb-ijkl1234
Adicione uma rota para o gateway da internet na tabela de rotas pública com o objetivo de habilitar o acesso à internet. Certifique-se de substituir rtb-abcd1234
pelo ID correspondente à tabela de rotas pública e igw-abcd1234
pelo ID correspondente ao gateway da internet.
# 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
Associe as sub-redes às respectivas tabelas de rotas. Certifique-se de substituir os IDs da tabela de rotas e da sub-rede pelos valores correspondentes aos seus 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
Criação de gateways NAT
Os gateways NAT permitem que instâncias localizadas em sub-redes privadas estabeleçam conexões com a internet ou com outros serviços da AWS, mas impedem tentativas de conexões iniciadas pela internet para essas instâncias. Primeiro, aloque endereços IP elásticos para os gateways NAT.
# 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}]'
Cada comando retorna uma saída que contém o ID da alocação. Anote esses IDs:
-
ID da alocação do EIP 1:
eipalloc-abcd1234
-
ID da alocação do EIP 2:
eipalloc-efgh1234
Crie gateways NAT em cada uma das sub-redes públicas. Certifique-se de substituir os IDs da sub-rede e da alocação pelos valores correspondentes aos seus 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}]'
Cada comando retorna uma saída que contém o ID do gateway NAT. Anote esses IDs:
-
Gateway NAT 1:
nat-abcd1234
-
Gateway NAT 2:
nat-efgh1234
Os gateways NAT demoram alguns minutos para serem provisionados. Antes de prosseguir, aguarde a confirmação de que os gateways estão disponíveis. Certifique-se de substituir os IDs do gateway NAT pelos valores correspondentes aos seus 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
Adicione rotas para os gateways NAT nas tabelas de rotas privadas com a finalidade de habilitar o acesso à internet para instâncias em sub-redes privadas. Certifique-se de substituir os IDs da tabela de rotas e do gateway NAT pelos valores correspondentes aos seus 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
Criação de um endpoint da VPC para o Amazon S3
Um endpoint da VPC para o Amazon S3 permite que as instâncias localizadas em sub-redes privadas acessem o S3 diretamente, sem a necessidade de usar o gateway NAT, o que reduz os custos de transferência de dados e melhora a performance da rede. Certifique-se de substituir vpc-abcd1234
pelo ID correspondente à VPC e os IDs da tabela de rotas pelos valores correspondentes aos seus 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}]'
O comando retorna uma saída que contém o ID do endpoint da VPC. Anote esse ID (por exemplo, vpce-abcd1234
).
Configurar grupos de segurança
Os grupos de segurança funcionam como firewalls virtuais para as instâncias com a finalidade de controlar o tráfego de entrada e de saída. Crie um grupo de segurança para o balanceador de carga que permita o tráfego HTTP de entrada proveniente de qualquer origem. Certifique-se de substituir vpc-abcd1234
pelo ID correspondente à VPC.
# 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}]'
O comando retorna uma saída que contém o ID do grupo de segurança. Anote esse ID (por exemplo, sg-abcd1234
).
Permita o tráfego HTTP de entrada para o balanceador de carga. Certifique-se de substituir sg-abcd1234
pelo ID correspondente ao grupo de segurança do balanceador de carga.
# 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
Crie um grupo de segurança para os servidores de aplicações que permita tráfego de entrada proveniente somente do balanceador de carga. Certifique-se de substituir vpc-abcd1234
pelo ID correspondente à VPC.
# 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}]'
O comando retorna uma saída que contém o ID do grupo de segurança. Anote esse ID (por exemplo, sg-efgh1234
).
Permita o tráfego HTTP de entrada, proveniente do grupo de segurança do balanceador de carga, para os servidores de aplicações. Certifique-se de substituir sg-efgh1234
pelo ID correspondente ao grupo de segurança do servidor de aplicações e sg-abcd1234
pelo ID correspondente ao grupo de segurança do balanceador de carga.
# 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
Criação de um modelo de inicialização para instâncias do EC2
Um modelo de inicialização contém as informações de configuração necessárias para iniciar uma instância, como o ID da AMI, o tipo de instância e os grupos de segurança. Primeiro, crie um script de dados do usuário que será executado no momento da inicialização da instância.
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
Realize a codificação do script de dados do usuário usando base64.
USER_DATA=$(base64 -w 0 user-data.sh)
Obtenha o ID da versão mais atual da AMI do Amazon Linux 2.
# 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
Crie um modelo de inicialização com o ID da AMI, o tipo de instância, o grupo de segurança e os dados do usuário. Certifique-se de substituir sg-efgh1234
pelo ID correspondente ao grupo de segurança do servidor de aplicações, e $AMI_ID
e $USER_DATA
pelos valores obtidos dos comandos anteriores.
# 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" }] }] }'
Criação de um balanceador de carga e de um grupo de destino
Um grupo de destino encaminha as solicitações para os destinos registrados, como as instâncias do EC2, com base no protocolo e na porta especificados por você. Crie um grupo de destino para os servidores de aplicações. Certifique-se de substituir vpc-abcd1234
pelo ID correspondente à VPC.
# 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
O comando retorna uma saída que contém o ARN do grupo de destino. Anote esse ARN (por exemplo, arn:aws:elasticloadbalancing:us-east-1:123456789012:targetgroup/AppTargetGroup/abcd1234
).
Crie um Application Load Balancer nas sub-redes públicas. Certifique-se de substituir os IDs da sub-rede e do grupo de segurança pelos valores correspondentes aos seus 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
O comando retorna uma saída que contém o ARN do balanceador de carga. Anote esse ARN (por exemplo, arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/app/AppLoadBalancer/abcd1234
).
Antes de prosseguir, aguarde a confirmação de que o balanceador de carga está ativo. Certifique-se de substituir arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/app/AppLoadBalancer/abcd1234
pelo ARN correspondente ao balanceador de carga.
# 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
Crie um receptor para o balanceador de carga que tenha a função de redirecionar o tráfego HTTP ao grupo de destino. Certifique-se de substituir o ARN do balanceador de carga e do grupo de destino pelos valores correspondentes aos seus 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
Criar um grupo do Auto Scaling
Um grupo do Auto Scaling contém um conjunto de instâncias do EC2 que são tratadas como um agrupamento lógico para fins de gerenciamento e escalabilidade automática. Crie um grupo do Auto Scaling que use o modelo de inicialização e aloque as instâncias nas sub-redes privadas. Certifique-se de substituir os IDs da sub-rede e o ARN do grupo de destino pelos valores correspondentes aos IDs e ao ARN.
# 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
Testar a configuração
Assim que o grupo do Auto Scaling realizar a inicialização das instâncias e elas forem aprovadas nas verificações de integridade, você poderá executar testes no balanceador de carga. Obtenha o nome de DNS do balanceador de carga. Certifique-se de substituir o ARN do balanceador de carga pelo valor correspondente ao seu 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)
Use o comando “curl” para realizar testes na aplicação usando o nome do balanceador de carga.
curl http://LoadBalancerName
Ao recarregar a página repetidamente, é esperado que você receba respostas provenientes de instâncias distintas localizadas em diferentes zonas de disponibilidade.
Limpar recursos
Após finalizar este tutorial, é importante excluir todos os recursos para não incorrer em cobranças. Certifique-se de substituir todos os IDs pelos valores correspondentes aos IDs de recursos.
# 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
Próximas etapas
Agora que você criou uma VPC com sub-redes privadas e gateways NAT, pode desejar explorar os seguintes tópicos relacionados: