Esta página se aplica à Apigee, mas não à Apigee híbrida.
Confira a documentação da Apigee Edge.
Neste documento, você verá como configurar um host de nuvem privada virtual (VPC) compartilhada e anexar projetos separados de serviço de destino de back-end da Apigee. As redes VPC compartilhadas permitem implementar uma infraestrutura de rede centralizada e gerenciada com o Google Cloud. É possível usar uma única rede VPC em um projeto host para conectar recursos de vários projetos de serviço.
Benefício da VPC compartilhada
O ambiente de execução da Apigee (em execução em uma VPC gerenciada pelo Google) está em peering com sua VPC. Nessa topologia, o endpoint do ambiente de execução da Apigee pode se comunicar com a rede VPC, como mostrado no diagrama a seguir:
Consulte também a visão geral da arquitetura da Apigee.
Em muitos cenários, a topologia descrita acima é muito simples, porque a rede VPC faz parte de um único projeto do Google Cloud, e muitas organizações querem seguir as práticas recomendadas das hierarquias de recursos e separar a infraestrutura em vários projetos. Imagine uma topologia de rede em que temos o projeto de locatário da Apigee em peering com uma rede VPC, mas com back-ends internos localizados na VPC de outro projeto. Conforme mostrado neste diagrama:
Se você fizer o peering da VPC da Apigee com a VPC de back-end, como mostra o diagrama, o back-end poderá ser acessado na rede VPC da Apigee e vice-versa, porque o peering de rede é simétrico. No entanto, o projeto de locatário da Apigee só pode se comunicar com a VPC da Apigee, já que o peering não é transitivo, conforme descrito na documentação de peering de VPC. Para que isso aconteça, implante mais proxies na sua VPC da Apigee para encaminhar tráfego com o link de peering para a VPC de back-end. No entanto, essa abordagem adiciona sobrecarga operacional e manutenção extra.
A VPC compartilhada oferece uma solução para o problema descrito acima. A VPC compartilhada permite estabelecer conectividade entre o ambiente de execução da Apigee e os back-ends localizados em outros projetos do Google Cloud na mesma organização sem componentes de rede adicionais.
Como configurar uma VPC compartilhada com a Apigee
Nesta seção, explicamos como anexar um projeto de serviço da VPC da Apigee a um host da VPC compartilhada. As sub-redes definidas no projeto host são compartilhadas com os projetos de serviço. Em uma seção posterior, explicaremos como criar uma segunda sub-rede para serviços de back-end implantados em um segundo projeto de serviço VPC. O diagrama a seguir mostra a arquitetura resultante:
A Apigee fornece um script de provisionamento para simplificar a criação da topologia necessária. Siga as etapas nesta seção para fazer o download e usar o script de provisionamento para configurar a Apigee X com uma VPC compartilhada.
Pré-requisitos
- Veja os conceitos discutidos em Visão geral da VPC compartilhada. É importante entender os conceitos de projeto host e projeto de serviço.
- Crie um novo projeto do Google Cloud que você possa configurar para a VPC compartilhada. Este é o projeto host. Consulte Como criar e gerenciar projetos.
- Siga as etapas em Como provisionar a VPC compartilhada para provisionar o projeto para a VPC compartilhada. Você precisa ser um administrador da organização ou ter recebido papéis administrativos de gerenciamento de identidade e acesso (IAM) apropriados para ativar o projeto host para a VPC compartilhada.
- Crie um segundo projeto do Google Cloud. Este é um projeto de serviço. Posteriormente, você o anexará ao projeto host.
Faça o download do script
A Apigee fornece um script de provisionamento para simplificar a criação da topologia necessária. Você precisa extrair o script pelo GitHub:
- Clone o projeto do GitHub que contém o script:
git clone https://github.com/apigee/devrel.git
- Acesse o seguinte diretório no projeto:
cd devrel/tools/apigee-x-trial-provision
- Configure as variáveis de ambiente a seguir:
export HOST_PROJECT=HOST_PROJECT_ID
export SERVICE_PROJECT=SERVICE_PROJECT_ID
Em que:
HOST_PROJECT_ID
é o ID do projeto host da VPC compartilhada que você criou como um dos pré-requisitos.SERVICE_PROJECT_ID
é o ID do projeto de serviço do Google Cloud que você criou nos pré-requisitos.
Configurar o projeto host
- Configure as variáveis de ambiente a seguir:
YOUR_SHARED_VPC
é o nome da sua rede VPC compartilhada.YOUR_SHARED_SUBNET
é o nome da sua sub-rede da VPC compartilhada.CIDR_BLOCK
é o bloco CIDR da VPC da Apigee. Por exemplo,10.111.0.0/23
.- Para configurar o peering e o firewall da VPC da Apigee, execute o script com estas opções:
./apigee-x-trial-provision.sh \ -p $HOST_PROJECT --shared-vpc-host-config --peering-cidr $PEERING_CIDR
O script configura o projeto host. A saída será semelhante à seguinte, em que
NETWORK
eSUBNET
representam os caminhos totalmente qualificados no projeto host:export NETWORK=projects/$HOST_PROJECT/global/networks/$NETWORK
export SUBNET=projects/$HOST_PROJECT/regions/us-west1/subnetworks/$SUBNET
- Exporte as variáveis retornadas na saída.
export NETWORK=YOUR_SHARED_VPCexport SUBNET=YOUR_SHARED_SUBNET
export PEERING_CIDR=CIDR_BLOCK
Em que:
Configurar o projeto de serviço
Nesta etapa, você configura o projeto de serviço. Quando o script for concluído, ele criará e implantará um proxy de API de amostra no ambiente da Apigee que poderá ser usado para testar o provisionamento.
- Execute o script
apigee-x-trial-provision.sh
uma segunda vez para provisionar o projeto de serviço com as configurações de rede compartilhadas:./apigee-x-trial-provision.sh \ -p $SERVICE_PROJECT
O script cria um proxy de amostra no ambiente da Apigee e imprime um comando curl em
STDOUT
que você pode chamar para testar o provisionamento. - Chame o proxy de API de teste. Exemplo:
curl -v https://10-111-111-111.nip.io/hello-world
Configurar outro projeto de serviço para serviços de back-end
Recomendamos separar a infraestrutura do Google Cloud em vários projetos. Veja uma hierarquia de recursos para sua zona de destino do Google Cloud. Nesta seção, explicamos como implantar um serviço de back-end em um projeto de serviço separado e anexá-lo ao host da VPC compartilhada. A Apigee pode usar o serviço de back-end como um destino de proxy da API, porque o projeto de serviço da Apigee e o projeto de serviço de back-end estão anexados ao host da VPC compartilhada.
Pré-requisitos
Para realizar essas etapas, presumimos que você tenha sua VPC compartilhada já configurada e compartilhada com o projeto de serviço de back-end, conforme descrito em Como configurar a VPC compartilhada.
Configurar o projeto de serviço
Nesta seção, você testará um serviço de back-end em outra sub-rede VPC compartilhada, criará uma segunda sub-rede no projeto host e usará o endereço IP RFC1918 particular como o URL de destino para os proxies de API da Apigee.
- No seu projeto de serviço de back-end, execute o comando a seguir para ver todas as
sub-redes compartilhadas disponíveis:
gcloud compute networks subnets list-usable --project $HOST_PROJECT --format yaml
Exemplo de saída:
ipCidrRange: 10.0.0.0/20 network: https://www.googleapis.com/compute/v1/projects/my-svpc-hub/global/networks/hub-vpc subnetwork: https://www.googleapis.com/compute/v1/projects/my-svpc-hub/regions/europe-west1/subnetworks/sub1
- Crie estas variáveis de ambiente:
BACKEND_SERVICE_PROJECT=PROJECT_ID
SHARED_VPC_SUBNET=SUBNET
Em que:
PROJECT_ID
é o nome do projeto de serviço que você criou para os serviços de back-end.SUBNET
é uma das saídas de sub-redes do comando anterior.
- Para criar um serviço
httpbin
de back-end no projeto para fins de teste, use o comando a seguir:gcloud compute --project=$BACKEND_SERVICE_PROJECT instances create-with-container httpbin \ --machine-type=e2-small --subnet=$SHARED_VPC_SUBNET \ --image-project=cos-cloud --image-family=cos-stable --boot-disk-size=10GB \ --container-image=kennethreitz/httpbin --container-restart-policy=always --tags http-server
- Crie e implante um proxy de API da Apigee seguindo as etapas em Criar um proxy de API.
- Consiga o endereço IP interno da máquina virtual (VM) em que o serviço de destino está sendo executado.
Você usará esse IP na próxima etapa para chamar o proxy de API de teste:
gcloud compute instances list --filter=name=httpbin
- Para testar a configuração, chame o proxy. Use o endereço IP interno da VM
que você recebeu na etapa anterior. No exemplo a seguir, presumimos que você nomeou
o caminho base do proxy como
/myproxy
. Exemplo:curl -v https://INTERNAL_IP/myproxy
Essa chamada de API retorna
Hello, Guest!
.