Como configurar o acesso VPC sem servidor

O acesso VPC sem servidor permite que você se conecte pelo Cloud Functions ou pelo ambiente padrão do App Engine diretamente à sua rede VPC. Essa conexão possibilita que os apps do ambiente padrão do App Engine e o Cloud Functions acessem recursos na rede VPC por meio de endereços IP internos (privados). Usar endereços IP internos melhora a latência da comunicação entre seus serviços do Google Cloud e evita a exposição de recursos internos à Internet pública.

O acesso VPC sem servidor permite que o app ou a função envie solicitações a recursos da rede VPC e receba respostas a essas solicitações. A comunicação na direção oposta, em que uma VM inicia uma solicitação para um app ou uma função, exige que você use o endereço público do aplicativo ou da função. Para mais informações, consulte Acesso privado do Google.

O acesso VPC sem servidor aceita 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 redes VPC compartilhadas.

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 app ou a função no App Engine/Cloud Functions 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. Após isso, será possível configurar o app ou a função para usar o conector para tráfego de rede interno.

Ao criar um conector, você também precisa atribuir a ele um intervalo de IP que será usado para os endereços de origem do tráfego enviado pelo conector. Esse intervalo de IP precisa ser um intervalo CIDR /28 que ainda não esteja reservado na rede VPC.

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 esse conector. 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ço" para mais detalhes.

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

Lembre-se do seguinte:

  • Um conector precisa estar localizado no mesmo projeto e na mesma região que o app ou a função que se conecta a ele. Consulte a página Regiões compatíveis para ver uma lista com as regiões em que é possível criar um conector.
  • O tráfego para endereços IP internos é encaminhado por meio do conector, e o tráfego para endereços IP públicos é roteado pela Internet.
  • É possível usar o mesmo conector com vários apps ou funções, desde que estejam na mesma região.
  • Um conector pode estar localizado em uma região diferente de onde está o 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ço".

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 Serverless VPC Access 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. Selecione uma Região para o conector no respectivo campo. Ela precisa corresponder à região do seu app ou função. Consulte a página Regiões compatíveis.

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

  7. No campo Intervalo de IP, insira um intervalo de IP CIDR /28 não reservado. Os endereços nesse intervalo são usados como endereços de origem para o tráfego enviado pelo conector. Esse intervalo de IP não pode se sobrepor a nenhuma reserva de endereço IP atual na rede VPC.

  8. (Opcional) Para ter mais controle sobre a capacidade 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 Serverless VPC Access 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] é a região do conector. Ela precisa corresponder à região do seu app ou função. Consulte a página Regiões compatíveis;
    • [IP_RANGE] é um intervalo de IP CIDR /28 não reservado. Os endereços nesse intervalo são usados como endereços de origem para o tráfego enviado pelo conector. Esse intervalo de IP não pode se sobrepor a nenhuma reserva de endereço IP atual na rede VPC.

    Para mais detalhes e argumentos opcionais, consulte a página de referência da 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, siga estas instruções para recriar o conector:

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

Como excluir um conector

Antes de excluir um conector, verifique se ele não está mais sendo usado por nenhum serviço. Consulte a documentação do App Engine ou do Cloud Functions 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

Após criar um conector, é possível configurar o app ou a função no App Engine ou no Cloud Functions para usá-lo. Lembre-se de que um conector precisa estar localizado na mesma região que o aplicativo ou a função que se conecta a ele. Se você tiver vários aplicativos ou funções na mesma região, será possível usar o mesmo conector. Por exemplo, um app e uma função na mesma região podem 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 do produto relevante:

Serviços compatíveis

Os seguintes serviços são compatíveis com um conector de acesso VPC sem servidor:

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) relacionados ao acesso VPC sem servidor. Além disso, também listamos as permissões contidas em cada um deles.

Papel Descrição Permissões
Administrador de acesso VPC sem servidor
roles/vpcaccess.admin
Acesso completo a todos os recursos de acesso VPC sem servidor vpcaccess.connectors.get
vpcaccess.connectors.list
vpcaccess.connectors.use
vpcaccess.connectors.create
vpcaccess.connectors.delete
vpcaccess.operations.get
vpcaccess.operations.list
vpcaccess.locations.list
Usuário de acesso VPC sem servidor
roles/vpcaccess.user
Usuário de conectores de acesso VPC sem servidor vpcaccess.connectors.get
vpcaccess.connectors.list
vpcaccess.connectors.use
vpcaccess.operations.get
vpcaccess.operations.list
vpcaccess.locations.list
Visualizador de acesso VPC sem servidor
roles/vpcaccess.viewer
Visualizador de todos os recursos de acesso VPC sem servidor vpcaccess.connectors.get
vpcaccess.connectors.list
vpcaccess.operations.get
vpcaccess.operations.list
vpcaccess.locations.list

Geração de registros de auditoria

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

Preço

O acesso VPC sem servidor tem os preços a seguir. Os valores estão sujeitos a mudanças e podem aumentar enquanto o acesso VPC sem servidor estiver nas versões Beta ou de disponibilidade geral.

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 app/da função para o destino Cobrado de acordo com as 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.