Habilitando o acesso à VPC para tráfego de saída - AWS App Runner

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Habilitando o acesso à VPC para tráfego de saída

Por padrão, seu AWS App Runner aplicativo pode enviar mensagens para endpoints públicos. Isso inclui suas próprias soluções e qualquer outro site público ou serviço da web. Serviços da AWS Seu aplicativo pode até mesmo enviar mensagens para endpoints públicos de aplicativos que são executados em uma VPC a partir da Amazon Virtual Private Cloud (Amazon VPC). Se você não configurar uma VPC ao iniciar seu ambiente, o App Runner usará a VPC padrão, que é pública.

Você pode optar por iniciar seu ambiente em uma VPC personalizada para personalizar as configurações de rede e segurança para o tráfego de saída. Você pode habilitar seu AWS App Runner serviço para acessar aplicativos que são executados em uma VPC privada a partir da Amazon Virtual Private Cloud (Amazon VPC). Depois de fazer isso, seu aplicativo pode se conectar e enviar mensagens para outros aplicativos hospedados em uma Amazon Virtual Private Cloud (Amazon VPC). Exemplos são um banco de dados Amazon RDS ElastiCache, Amazon e outros serviços privados hospedados em uma VPC privada.

Conector VPC

Você pode associar seu serviço a uma VPC criando um VPC endpoint a partir do console do App Runner, chamado VPC Connector. Para criar um conector VPC, especifique a VPC, uma ou mais sub-redes e, opcionalmente, um ou mais grupos de segurança. Depois de configurar um conector VPC, você pode usá-lo com um ou mais serviços do App Runner.

Latência única

Se você configurar seu serviço App Runner com um conector VPC personalizado para tráfego de saída, ele poderá ter uma latência de inicialização única de dois a cinco minutos. O processo de inicialização espera até que o conector VPC esteja pronto para se conectar a outros recursos antes de definir o status do serviço como Executando. Você pode configurar um serviço com um conector VPC personalizado ao criá-lo pela primeira vez ou pode fazer isso depois, fazendo uma atualização do serviço.

Observe que, se você reutilizar a mesma configuração do conector VPC para outro serviço, não haverá latência. A configuração do conector VPC é baseada na combinação de grupo de segurança e sub-rede. Para uma determinada configuração de conector VPC, a latência só acontece uma vez, durante a criação inicial das ENIs (interfaces de rede elástica) do VPC Connector Hyperplane.

Mais sobre conectores VPC personalizados e Hyperplane AWS

Os conectores VPC no App Runner são baseados no AWS Hyperplane, o sistema de rede interno da Amazon que está por trás de vários AWS recursos, como Network Load Balancer, NAT Gateway e AWS. PrivateLink A tecnologia AWS Hyperplane fornece recursos de alto rendimento e baixa latência, além de um maior grau de compartilhamento. Uma ENI de hiperplano é criada em suas sub-redes quando você cria um conector VPC e o associa ao seu serviço. A configuração do conector VPC é baseada em uma combinação de grupo de segurança e sub-rede, e você pode referenciar o mesmo conector VPC em vários serviços do App Runner. Como resultado, os ENIs subjacentes do Hyperplane são compartilhados entre os serviços do App Runner. Esse compartilhamento é viável, mesmo quando você aumenta o número de tarefas necessárias para lidar com a carga da solicitação e resulta em uma utilização mais eficiente do espaço IP em sua VPC. Para obter mais informações, consulte Análise aprofundada sobre a rede VPC do AWS App Runner no blog do AWS Container.

Sub-rede

Cada sub-rede está em uma zona de disponibilidade específica. Para alta disponibilidade, recomendamos que você selecione sub-redes em pelo menos três zonas de disponibilidade. Se a região tiver menos de três zonas de disponibilidade, recomendamos que você selecione suas sub-redes em todas as zonas de disponibilidade suportadas.

Ao selecionar uma sub-rede para sua VPC, certifique-se de escolher uma sub-rede privada, não uma sub-rede pública. Isso ocorre porque, quando você cria um conector VPC, o serviço App Runner cria um Hyperplane ENI em cada uma das sub-redes. Cada Hyperplane ENI recebe apenas um endereço IP privado e é marcado com uma tag da AWSAppRunnerManagedchave. Se você escolher uma sub-rede pública, ocorrerão erros ao executar o serviço App Runner. No entanto, se seu serviço precisar acessar alguns serviços que estão na Internet ou em outros serviços públicos Serviços da AWS, consulteConsiderações ao selecionar uma sub-rede .

Considerações ao selecionar uma sub-rede

  • Quando você conecta seu serviço a uma VPC, o tráfego de saída não tem acesso à Internet pública. Todo o tráfego de saída do seu aplicativo é direcionado pela VPC à qual seu serviço está conectado. Todas as regras de rede da VPC se aplicam ao tráfego de saída do seu aplicativo. Isso significa que seus serviços não podem acessar a Internet pública e as AWS APIs. Para obter acesso, faça o seguinte:

    • Conecte as sub-redes à Internet por meio de um gateway NAT.

    • Configure endpoints VPC para os Serviços da AWS que você deseja acessar. Seu serviço permanece dentro da Amazon VPC usando. AWS PrivateLink

  • Algumas zonas de disponibilidade em algumas Regiões da AWS não oferecem suporte às sub-redes que podem ser usadas com os serviços do App Runner. Se você escolher sub-redes nessas zonas de disponibilidade, seu serviço não será criado ou atualizado. Para essas situações, o App Runner fornece uma mensagem de erro detalhada apontando para as sub-redes e zonas de disponibilidade não suportadas. Quando isso ocorrer, solucione o problema removendo as sub-redes não suportadas da sua solicitação e tente novamente.

Grupo de segurança

Opcionalmente, você pode especificar os grupos de segurança que o App Runner usa para acessar AWS nas sub-redes especificadas. Se você não especificar grupos de segurança, o App Runner usa o grupo de segurança padrão da VPC. O grupo de segurança padrão permite todo o tráfego de saída.

Adicionar um grupo de segurança fornece uma camada adicional de segurança aos conectores VCP, oferecendo mais controle sobre o tráfego da rede. O conector VPC é usado somente para comunicação externa do seu aplicativo. Você usa regras de saída para permitir a comunicação com os endpoints de destino desejados. Você também deve garantir que todos os grupos de segurança associados ao recurso de destino tenham as regras de entrada apropriadas. Caso contrário, esses recursos não aceitarão tráfego proveniente dos grupos de segurança do VPC Connector.

nota

Quando você associa seu serviço a uma VPC, o tráfego a seguir não é afetado:

  • Tráfego de entrada — As mensagens recebidas pelo seu aplicativo não são afetadas por uma VPC associada. As mensagens são roteadas por meio do nome de domínio público associado ao seu serviço e não interagem com a VPC.

  • Tráfego do App Runner — O App Runner gerencia várias ações em seu nome, como extrair código-fonte e imagens, enviar registros e recuperar segredos. O tráfego que essas ações geram não é roteado pela sua VPC.

Para saber mais sobre como AWS App Runner se integra à Amazon VPC, AWS consulte App Runner VPC Networking.

nota

Para tráfego de saída, o App Runner atualmente suporta apenas IPv4.

Gerenciar o acesso à VPC

nota

Se você criar um conector VPC de tráfego de saída para um serviço, o processo de inicialização do serviço a seguir terá uma latência única. Você pode definir essa configuração para um novo serviço ao criá-lo, ou posteriormente, com uma atualização de serviço. Para obter mais informações, consulte Latência única o capítulo Networking with App Runner deste guia.

Gerencie o acesso à VPC para seus serviços do App Runner usando um dos seguintes métodos:

App Runner console

Ao criar um serviço usando o console do App Runner ou ao atualizar sua configuração posteriormente, você pode optar por configurar seu tráfego de saída. Procure a seção Configuração de rede na página do console. Para tráfego de rede de saída, escolha uma das seguintes opções:

  • Acesso público: para associar seu serviço a endpoints públicos de outros Serviços da AWS.

  • VPC personalizada: para associar seu serviço a uma VPC da Amazon VPC. Seu aplicativo pode se conectar e enviar mensagens para outros aplicativos hospedados em uma Amazon VPC.

Para habilitar a VPC personalizada
  1. Abra o console do App Runner e, na lista Regiões, selecione seu Região da AWS.

  2. Vá para a seção Rede em Configurar serviço.

    Página de configuração do console do App Runner mostrando as opções de rede
  3. Escolha VPC personalizada para tráfego de rede de saída.

  4. No painel de navegação, escolha Conector VPC.

    Se você criou os conectores VPC, o console exibirá uma lista de conectores VPC na sua conta. Você pode escolher um conector VPC existente e escolher Avançar para revisar sua configuração. Em seguida, vá para a última etapa. Como alternativa, você pode adicionar um novo conector VPC usando as etapas a seguir.

  5. Escolha Adicionar novo para criar um novo conector VPC para seu serviço.

    Em seguida, a caixa de diálogo Adicionar novo conector VPC é aberta.

    Console do App Runner mostrando a caixa de diálogo Adicionar novo conector VPC
  6. Insira um nome para seu conector VPC e selecione o VPC necessário na lista disponível.

  7. Para Sub-redes, selecione uma sub-rede para cada zona de disponibilidade a partir da qual você planeja acessar o serviço App Runner. Para melhor disponibilidade, escolha três sub-redes. Ou, se houver menos de três sub-redes, escolha todas as sub-redes disponíveis.

    nota

    Certifique-se de atribuir sub-redes privadas ao conector VPC. Se você atribuir sub-redes públicas ao conector VPC, seu serviço não será criado ou revertido automaticamente durante uma atualização.

  8. (Opcional) Em Grupo de segurança, selecione os grupos de segurança a serem associados às interfaces de rede do endpoint.

  9. (Opcional) Para adicionar uma tag, escolha Adicionar nova tag e insira a chave e o valor da tag.

  10. Escolha Adicionar.

    Os detalhes do conector VPC que você criou aparecem em Conector VPC.

  11. Escolha Avançar para revisar sua configuração e, em seguida, escolha Criar e implantar.

    O App Runner cria um recurso de conector VPC para você e o associa ao seu serviço. Se o serviço for criado com sucesso, o console mostrará o painel do serviço, com uma visão geral do novo serviço.

App Runner API or AWS CLI

Ao chamar as ações da API CreateServiceou UpdateServiceApp Runner, use o EgressConfiguration membro do NetworkConfiguration parâmetro para especificar um recurso de conector VPC para seu serviço.

Use as seguintes ações da API App Runner para gerenciar seus recursos do VPC Connector.

  • CreateVpcConnector— Cria um novo conector VPC.

  • ListVpcConnectors— Retorna uma lista dos conectores VPC associados ao seu. Conta da AWS A lista inclui descrições completas.

  • DescribeVpcConnector— Retorna uma descrição completa de um conector VPC.

  • DeleteVpcConnector— Exclui um conector VPC. Se você atingir a cota de conectores VPC para o seu Conta da AWS, talvez seja necessário excluir conectores VPC desnecessários.

Para implantar um aplicativo no App Runner que tenha acesso de saída a uma VPC, primeiro você deve criar um conector VPC. Você pode fazer isso especificando uma ou mais sub-redes e grupos de segurança para associar ao aplicativo. Em seguida, você pode referenciar o conector VPC no Create ou UpdateServicepor meio da CLI, conforme ilustrado no exemplo a seguir:

cat > vpc-connector.json <<EOF { "VpcConnectorName": "my-vpc-connector", "Subnets": [ "subnet-a", "subnet-b", "subnet-c" ], "SecurityGroups": [ "sg-1", "sg-2" ] } EOF aws apprunner create-vpc-connector \ --cli-input-json file:///vpc-connector.json cat > service.json <<EOF { "ServiceName": "my-vpc-connected-service", "SourceConfiguration": { "ImageRepository": { "ImageIdentifier": "<ecr-image-identifier> ", "ImageConfiguration": { "Port": "8000" }, "ImageRepositoryType": "ECR" } }, "NetworkConfiguration": { "EgressConfiguration": { "EgressType": "VPC", "VpcConnectorArn": "arn:aws:apprunner:..../my-vpc-connector" } } } EOF aws apprunner create-service \ --cli-input-json file:///service.js