Configurar o acesso VPC sem servidor

O acesso VPC sem servidor permite se conectar de um ambiente sem servidor no Google Cloud (Cloud Run, App Engine ou Cloud Functions) diretamente à sua rede VPC. Essa conexão possibilita que o ambiente sem servidor acesse instâncias de VM do Compute Engine, instâncias do Memorystore e qualquer outro recurso com um endereço IP interno. Por exemplo, ela pode ser útil nos seguintes casos:

  • O Memorystore é usado para armazenar dados de um serviço sem servidor.
  • Suas cargas de trabalho sem servidor usam softwares de terceiros que você executa em uma VM do Compute Engine.
  • Você executa um serviço de back-end em um grupo de instâncias gerenciadas no Compute Engine e precisa do ambiente sem servidor para se comunicar com esse back-end sem exposição na Internet pública.
  • Seu ambiente sem servidor precisa acessar dados do banco de dados local por meio do Cloud VPN.

Com o acesso VPC sem servidor, as solicitações enviadas do seu ambiente sem servidor para endereços IP internos (conforme definido pela RFC 1918) são roteadas para sua rede VPC. Os endereços IP internos só podem ser acessados pelos serviços do Google Cloud. O uso de IP interno evita a exposição de recursos à Internet pública e melhora a latência de comunicação entre os serviços.

O acesso VPC sem servidor só permite que as solicitações sejam iniciadas pelo ambiente sem servidor. As solicitações iniciadas por uma VM precisam usar o endereço externo do serviço sem servidor. Consulte Acesso privado do Google para mais informações.

O acesso VPC sem servidor é compatível com a comunicação com redes VPC conectadas por meio do Cloud VPN e de peering de rede VPC. No entanto, esse acesso não é compatível com redes legadas ou VPC compartilhada.

Conectores de acesso VPC sem servidor

O acesso VPC sem servidor é baseado em um recurso chamado conector. Um conector processa o tráfego entre o ambiente sem servidor e a rede VPC. Ao criar um conector no seu projeto do Google Cloud, é preciso anexá-lo a uma rede VPC e região específicas. Em seguida, configure os serviços sem servidor para usar o conector para o tráfego de rede interno.

Ao criar um conector, você também atribui a ele um intervalo de IP. O tráfego enviado por meio do conector para sua rede VPC terá origem em um endereço desse intervalo. O intervalo de IP precisa ser um intervalo CIDR /28 que ainda não esteja reservado na sua rede VPC. Uma regra de firewall com prioridade 1000 é criada automaticamente na rede VPC para permitir o tráfego desse intervalo de IP para todos os destinos na rede.

O acesso VPC sem servidor provisiona automaticamente a capacidade de um conector em incrementos de 100 Mbps, dependendo da quantidade de tráfego enviada por ele. A capacidade provisionada automaticamente pode escalonar apenas verticalmente. Um conector sempre tem pelo menos 200 Mbps provisionados e não pode exceder uma capacidade de 1.000 Mbps. É possível configurar limites de capacidade mínima e máxima ao criar um conector.

Os conectores de acesso VPC sem servidor estão sujeitos a uma cobrança mensal com base no uso. Consulte a página "Preços" para mais detalhes.

Exemplo de acesso VPC sem servidor (clique para ampliar)
Exemplo de acesso VPC sem servidor (clique para ampliar)

Observações:

  • O conector precisa estar localizado no mesmo projeto e região que o serviço sem servidor que se conecta a ele. Consulte a página Regiões compatíveis para ver uma lista com os territórios em que é possível criar um conector.
  • O tráfego para endereços IP internos é roteado pelo conector. Por padrão, o tráfego para endereços IP externos é roteado pela Internet.
  • É possível usar o mesmo conector com vários serviços sem servidor.
  • Um conector pode estar localizado em uma região diferente do recurso que permite acesso entre regiões e que está recebendo o tráfego. Você é cobrado pela saída do conector. Veja mais em Preços.

Como criar um conector

Para criar um conector, use o Console do Cloud ou a ferramenta de linha de comando gcloud:

Console

  1. Verifique se a API de acesso VPC sem servidor está ativada no seu projeto:

    Ativar API

  2. Acesse a página de visão geral do acesso VPC sem servidor.

    Página do console sobre o acesso VPC sem servidor

  3. Clique em Criar conector.

  4. Insira um Nome para o conector no respectivo campo.

  5. No campo Região, selecione uma região para o conector. Ele precisa corresponder à região do serviço sem servidor. Consulte Regiões compatíveis.

  6. No campo Rede, selecione uma rede VPC para o conector.

  7. No campo Intervalo de IP, insira um intervalo de IP CIDR interno /28 não reservado. Esse intervalo de IP não pode se sobrepor a nenhuma reserva de endereço IP atual na rede VPC. Por exemplo, 10.8.0.0/28 funcionará na maioria dos novos projetos.

  8. (Opcional) Para ter controle adicional sobre a taxa de transferência do conector, edite os campos Capacidade mínima e Capacidade máxima.

  9. Clique em Criar.

Uma marca de seleção verde aparecerá ao lado do nome do conector quando ele estiver pronto para uso.

gcloud

  1. Atualize os componentes gcloud para a versão mais recente:

    gcloud components update
    
  2. Verifique se a API de acesso VPC sem servidor está ativada no seu projeto:

    gcloud services enable vpcaccess.googleapis.com
    
  3. Crie um conector com o comando:

    gcloud compute networks vpc-access connectors create [CONNECTOR_NAME] \
    --network [VPC_NETWORK] \
    --region [REGION] \
    --range [IP_RANGE]
    

    Em que:

    • [CONNECTOR_NAME] é o nome do conector;
    • [VPC_NETWORK] é a rede VPC a que seu conector será anexado;
    • [REGION] é uma região para seu conector. Ele precisa corresponder à região do serviço sem servidor. Consulte Regiões compatíveis.
    • [IP_RANGE] é um intervalo de IP interno CIDR /28 não reservado. Esse intervalo de IP não pode se sobrepor a nenhuma reserva de endereço IP atual na rede VPC. Por exemplo, 10.8.0.0/28 funcionará na maioria dos novos projetos.

    Para mais detalhes e argumentos opcionais, como controles de capacidade, consulte a referência do gcloud.

  4. Verifique se o conector está no estado READY antes de usá-lo:

    gcloud compute networks vpc-access connectors describe [CONNECTOR_NAME] --region [REGION]
    

    A saída precisa conter a linha state: READY.

Se a criação de um conector resultar em erro, tente o seguinte e recrie o conector:

  • Especifique um intervalo de IP interno RFC 1918 que não se sobreponha a nenhuma reserva de endereço IP existente na rede VPC.
  • Conceda permissão ao projeto para usar imagens de VM do Compute Engine do projeto com o ID serverless-vpc-access-images. Consulte Como configurar restrições de acesso a imagens para ver como atualizar a política da organização adequadamente.

Como excluir um conector

Antes de excluir um conector, verifique se nenhum serviço ainda usando ele. Consulte a documentação relevante do produto para informações sobre como desconectar um conector.

Console

  1. Acesse a página de visão geral do acesso VPC sem servidor.

    Página do console sobre o acesso VPC sem servidor

  2. Selecione o conector que você quer excluir.

  3. Clique em Excluir.

gcloud

Use o seguinte comando gcloud para excluir um conector:

gcloud compute networks vpc-access connectors delete [CONNECTOR_NAME] --region [REGION]

Em que:

  • [CONNECTOR_NAME] é o nome do conector que você quer excluir;
  • [REGION] é a região onde o conector está localizado.

Como configurar o serviço para usar um conector

Depois de criar um conector, é possível configurar serviços sem servidor para usá-lo. Lembre-se que um conector precisa estar localizado na mesma região do serviço que se conecta a ele. Se você tiver vários serviços na mesma região, poderá usar o mesmo conector. Por exemplo, um aplicativo do App Engine e uma Função do Cloud na mesma região poderão compartilhar um conector se precisarem se comunicar com a mesma rede VPC.

A forma como um serviço é configurado para usar um conector depende do produto. Para instruções detalhadas, consulte a documentação relevante:

Serviços compatíveis

Use o acesso VPC sem servidor para acessar uma rede VPC a partir dos seguintes serviços:

Regiões compatíveis

É possível criar um conector de acesso VPC sem servidor nas seguintes regiões:

  • us-central1
  • us-east1
  • us-east4
  • europe-west1
  • europe-west2
  • europe-west3
  • asia-northeast1
  • asia-east2
  • asia-south1

Papéis do IAM selecionados

Na tabela a seguir, descrevemos os papéis do Cloud Identity and Access Management (Cloud IAM) associados ao acesso VPC sem servidor. Consulte Papéis de acesso VPC sem servidor na documentação do Cloud IAM para ver uma lista de permissões associadas a cada papel.

Role Descrição
Administrador de acesso VPC sem servidor
roles/vpcaccess.admin
Acesso completo a todos os recursos de acesso VPC sem servidor
Usuário de acesso VPC sem servidor
roles/vpaccess.user
Pode utilizar conectores de acesso VPC sem servidor
Visualizador de acesso VPC sem servidor
roles/vpaccess.viewer
Pode ver todos os recursos de acesso VPC sem servidor

Geração de registros de auditoria

Consulte Informações sobre a geração de registros de auditoria de acesso VPC sem servidor.

Preços

O acesso VPC sem servidor tem os preços a seguir.

Recurso Preço
Conector de acesso VPC sem servidor Cobrado como uma instância f1-micro por 100 Mbps de capacidade provisionada automaticamente para o conector
Saída de rede do ambiente sem servidor para o destino Cobrado nas taxas de rede do Compute Engine

Para visualizar os custos de acesso VPC sem servidor no Console do Cloud, filtre seus relatórios de faturamento pela chave de rótulo serverless-vpc-access.