Exemplo: VPC para servidores Web e de banco de dados - Amazon Virtual Private Cloud

Exemplo: VPC para servidores Web e de banco de dados

Este exemplo demonstra como criar uma VPC que pode ser usada em uma arquitetura com dois níveis em um ambiente de produção. Para melhorar a resiliência, os servidores serão implantados em duas zonas de disponibilidade.

Visão geral

O diagrama a seguir fornece uma visão geral dos recursos incluídos neste exemplo. A VPC tem sub-redes públicas e sub-redes privadas em duas zonas de disponibilidade. Os servidores Web são executados nas sub-redes públicas e recebem tráfego dos clientes por meio de um balanceador de carga. O grupo de segurança dos servidores Web permite tráfego do balanceador de carga. Os servidores de banco de dados são executados nas sub-redes privadas e recebem tráfego dos servidores Web. O grupo de segurança dos servidores de banco de dados permite tráfego dos servidores Web. Os servidores de banco de dados podem se conectar ao Amazon S3 usando um endpoint da VPC de gateway.

Uma VPC com sub-redes em duas zonas de disponibilidade.

Roteamento

Quando essa VPC é criada usando a console da Amazon VPC, criamos uma tabela de rotas para as sub-redes públicas com rotas locais e rotas para o gateway da Internet e uma tabela de rotas para cada sub-rede privada com rotas locais e uma rota para o endpoint da VPC de gateway.

Veja a seguir um exemplo de tabela de rotas para sub-redes públicas com rotas para IPv4 e IPv6. Se você criar sub-redes somente IPv4 em vez de sub-redes de pilha dupla, sua tabela de rotas terá somente as rotas IPv4.

Destination (Destino) Destino
10.0.0.0/16 local
2001:db8:1234:1a00::/56 local
0.0.0.0/0 igw-id
::/0 igw-id

Veja a seguir um exemplo de tabela de rotas para as sub-redes privadas com rotas locais para IPv4 e IPv6. Se você criou sub-redes somente IPv4, a tabela de rotas terá somente a rota IPv4. A última rota envia tráfego destinado ao Amazon S3 para o endpoint da VPC de gateway.

Destination (Destino) Destino
10.0.0.0/16 local
2001:db8:1234:1a00::/56 local
s3-prefix-list-id s3-gateway-id

Segurança

Para este exemplo de configuração, crie um grupo de segurança para o balanceador de carga, um grupo de segurança para os servidores Web e um grupo de segurança para os servidores de banco de dados.

Load balancer

O grupo de segurança do Application Load Balancer ou Network Load Balancer deve permitir tráfego de entrada de clientes na porta do receptor do balanceador de carga. Para aceitar tráfego de qualquer lugar na Internet, especifique 0.0.0.0/0 como origem. O grupo de segurança do balanceador de carga também deve permitir tráfego de saída do balanceador de carga para as instâncias de destino na porta do receptor da instância e na porta de verificação de integridade.

Servidores da web

As regras de grupos de segurança a seguir permitem que os servidores Web recebam tráfego HTTP e HTTPS do balanceador de carga. Opcionalmente, é possível permitir que os servidores Web recebam tráfego SSH ou RDP da sua rede. Os servidores Web podem enviar tráfego SQL ou MySQL para um servidor de banco de dados.

Entrada
Origem Protocolo Intervalo de portas Descrição
ID do grupo de segurança para o balanceador de carga TCP 80 Permite acesso HTTP de entrada do balanceador de carga
ID do grupo de segurança para o balanceador de carga TCP 443 Permite acesso HTTPS de entrada do balanceador de carga
Intervalo de endereços IPv4 públicos da sua rede TCP 22 (Opcional) Permite acesso SSH de entrada de endereços IP IPv4 na sua rede
Intervalo de endereços IPv6 da sua rede TCP 22 (Opcional) Permite acesso SSH de entrada de endereços IP IPv6 na sua rede
Intervalo de endereços IPv4 públicos da sua rede TCP 3389 (Opcional) Permite acesso RDP de entrada de endereços IP IPv4 na sua rede
Intervalo de endereços IPv6 da sua rede TCP 3389 (Opcional) Permite acesso RDP de entrada de endereços IP IPv6 na sua rede
Saída
Destino Protocolo Intervalo de portas Descrição
ID do grupo de segurança para instâncias que executam o Microsoft SQL Server

TCP

1433

Permite acesso de saída do Microsoft SQL Server aos servidores de banco de dados

ID do grupo de segurança para instâncias que executam MySQL

TCP

3306

Permite acesso de saída do MySQL aos servidores de banco de dados

Servidores de banco de dados

As regras de grupo de segurança a seguir permitem que os servidores de banco de dados recebam solicitações de leitura e gravação dos servidores Web.

Entrada
Origem Protocolo Intervalo de portas Comentários
ID do grupo de segurança do servidor Web TCP 1433 Permite acesso de entrada ao Microsoft SQL Server proveniente dos servidores Web
ID do grupo de segurança do servidor Web TCP 3306 Permite acesso de entrada ao MySQL Server proveniente dos servidores Web
Saída
Destino Protocolo Intervalo de portas Comentários
0.0.0.0/0 TCP 80 Permite acesso HTTP de saída à Internet via IPv4
0.0.0.0/0 TCP 443 Permite acesso HTTPS de saída à Internet via IPv4

Para obter mais informações sobre grupos de segurança para instâncias de banco de dados do RDS, consulte Controlar acesso com grupos de segurança no Manual do usuário do Amazon RDS.

Criar a VPC

Use o procedimento a seguir para criar uma VPC com uma sub-rede pública e uma sub-rede privada em duas zonas de disponibilidade.

Como criar a VPC
  1. Abra o console da Amazon VPC em https://console.aws.amazon.com/vpc/.

  2. No painel, escolha Criar VPC.

  3. Em Resources to create (Recursos a serem criados), escolha VPC and more (VPC e mais).

  4. Configurar a VPC:

    1. Mantenha a opção Geração automática de tags de nome selecionada para criar tags de nome para os recursos da VPC ou desmarque-a para fornecer suas próprias tags de nome para os recursos da VPC.

    2. Em Bloco CIDR IPv4, é possível manter a sugestão padrão ou inserir o bloco CIDR exigido por sua aplicação ou rede. Para ter mais informações, consulte Blocos CIDR da VPC.

    3. (Opcional) Se a sua aplicação se comunica usando endereços IPv6, escolha Bloco CIDR IPv6, Bloco CIDR IPv6 fornecido pela Amazon.

    4. Escolha uma opção de Locação. Essa opção define se as instâncias do EC2 que você executa na VPC serão executadas em hardware compartilhado com outras Contas da AWS ou em hardware dedicado somente para seu uso. Se você escolher que a locação da VPC seja Default, as instâncias do EC2 executadas nessa VPC usarão o atributo de locação especificado quando você executar a instância. Para obter mais informações, consulte Iniciar uma instância usando parâmetros definidos no Guia do usuário do Amazon EC2. Se você escolher a locação da VPC para ser Dedicated, as instâncias sempre serão executadas como Instâncias dedicadas no hardware dedicado ao seu uso.

  5. Configurar as sub-redes:

    1. Em Número de zonas de disponibilidade, escolha 2, para que você possa iniciar instâncias em duas zonas de disponibilidade para aumentar a resiliência.

    2. Em Number of public subnets (Número de sub-redes públicas), escolha 2.

    3. Em Number of private subnets (Número de sub-redes privadas), escolha 2.

    4. É possível manter os blocos CIDR padrão para a sub-rede pública ou, alternativamente, expandir Personalizar blocos CIDR da sub-rede e inserir um bloco CIDR. Para ter mais informações, consulte Blocos CIDR de sub-redes.

  6. Em Gateways NAT, mantenha o valor padrão, Nenhum.

  7. Para Endpoints da VPC, mantenha o valor padrão, Gateway do S3. Embora não haja efeito a menos que você acesse um bucket do S3, não há custo para habilitar esse endpoint da VPC.

  8. Em Opções de DNS, mantenha ambas as opções selecionadas. Como resultado, seus servidores Web receberão nomes de host DNS públicos que correspondem aos seus endereços IP públicos.

  9. Escolha Criar VPC.

Implantar o aplicativo

Idealmente, você já testou seus servidores Web e servidores de banco de dados em um ambiente de desenvolvimento ou teste e criou os scripts ou imagens que usará para implantar sua aplicação no ambiente de produção.

É possível usar instâncias do EC2 para seus servidores Web. Há várias formas de implantar instâncias do EC2. Por exemplo:

Para a aumentar a disponibilidade, é possível usar o Amazon EC2 Auto Scaling para implantar servidores em várias zonas de disponibilidade e manter a capacidade mínima de servidor exigida por sua aplicação.

O Elastic Load Balancing pode ser usado para distribuir tráfego uniformemente entre seus servidores. É possível anexar o balanceador de carga a um grupo do Auto Scaling.

Você pode usar instâncias do EC2 para seus servidores de banco de dados ou um de nossos tipos de banco de dados com propósito específico. Para obter mais informações, consulte Bancos de dados na AWS: como escolher.

Testar a configuração

Após concluir a implantação da aplicação, você poderá testá-la. Se a aplicação não conseguir enviar ou receber o tráfego esperado, você poderá usar o Reachability Analyzer para obter ajuda para solucionar problemas. Por exemplo, o Reachability Analyzer pode identificar problemas de configuração com suas tabelas de rotas ou grupos de segurança. Para obter mais informações, consulte o Guia do Analisador de Acessabilidade.

Limpeza

Quando essa configuração não for mais necessária, você poderá excluí-la. Antes de excluir a VPC, é necessário terminar as instâncias e excluir o balanceador de carga. Para ter mais informações, consulte Excluir a VPC:.