Configure a verificação de estado ativa para a comutação por falha regional com a PSC

Esta página aplica-se ao Apigee, mas não ao Apigee Hybrid.

Veja a documentação do Apigee Edge.

Este documento explica como usar o Apigee para configurar a verificação de estado ativa quando usa o Private Service Connect (PSC) para o encaminhamento de rede a montante (tráfego de clientes para o Apigee). A verificação de estado ativa é útil para evitar a perda de tráfego de rede em caso de falha regional.

Vista geral

Se planeia usar o PSC para o encaminhamento de rede a norte do Apigee, siga as instruções neste documento para configurar a verificação de estado ativa. Neste momento, o PSC não suporta a monitorização ativa da verificação de estado, mas pode modificar a configuração do Apigee para usar um grupo de instâncias gerido (MIG), que fornece a capacidade de verificação de estado ativa.

Pode usar a deteção de valores atípicos para a monitorização do estado da conta. No entanto, durante falhas regionais, pode perder periodicamente alguma quantidade de tráfego, uma vez que a deteção de valores atípicos usa o tráfego em tempo real como indicadores. A deteção de valores atípicos encaminha novamente parte do tráfego em direto periodicamente para verificar o estado da região com falhas.

A Figura 1 mostra a arquitetura proposta. Um ponto final de serviço estabelece ligação à associação de serviço na instância do Apigee, e um MIG encaminha o tráfego para o ponto final de serviço. Ativa a monitorização da verificação de funcionamento no MIG.

Figura 1. Arquitetura do Apigee para verificação de estado ativa sem interligação de VPCs.

Abordagem de verificação de funcionamento baseada no MIG

Pré-requisitos

Pode aplicar a técnica descrita neste documento a instalações do Apigee que usam o peering de VPC ou não usam o peering de VPC. No entanto, no caso de uma instalação com peering de VPCs, a técnica de verificação de estado ativa descrita aqui só se aplica se estiver a usar o PSC para a sua configuração de encaminhamento.

Antes de realizar os passos nesta secção:

  • Para instalações de intercâmbio não VPC:
    1. Conclua os passos de aprovisionamento do Apigee de 1 a 6 para instalações baseadas em subscrição ou instalações de pagamento conforme o uso. Neste momento, a única opção é realizar estes passos através da interface de linhas de comando.
    2. Ignore o passo 7: configure o encaminhamento e, em alternativa, siga os passos seguintes.
  • Para instalações de interligação de VPCs que usam o PSC para encaminhamento:
    1. Conclua os passos de aprovisionamento do Apigee de 1 a 7 para instalações baseadas em subscrição ou instalações de pagamento conforme o uso. Neste momento, a única opção é realizar estes passos através da interface de linhas de comando.
    2. Ignore o passo 8: configure o encaminhamento e, em alternativa, siga os passos seguintes.

1. Configure um ponto final de serviço do PSC para a associação do serviço Apigee

Neste passo, cria um ponto final de serviço do PSC que aponta para a associação de serviço na instância do Apigee:

  1. Obtenha a associação de serviço da instância do Apigee que criou anteriormente:
    curl -i -X GET -H "Authorization: Bearer $AUTH" \
      "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances"

    Na saída de exemplo seguinte, o valor serviceAttachment é apresentado a negrito:

    {
      "instances": [
        {
          "name": "us-west1",
          "location": "us-west1",
          "host": "10.82.192.2",
          "port": "443",
          "createdAt": "1645731488019",
          "lastModifiedAt": "1646504754219",
          "diskEncryptionKeyName": "projects/my-project/locations/us-west1/keyRings/us-west1/cryptoKeys/dek",
          "state": "ACTIVE",
          "peeringCidrRange": "SLASH_22",
          "runtimeVersion": "1-7-0-20220228-190814",
          "ipRange": "10.82.192.0/22,10.82.196.0/28",
          "consumerAcceptList": [
            "875609189304"
          ],
          "serviceAttachment": "projects/bfac74a67a320c43a12p-tp/regions/us-west1/serviceAttachments/apigee-us-west1-crw1"
        }
      ]
    }
  2. Crie um ponto final de serviço do PSC que aponte para a associação do serviço que obteve do corpo da resposta da instância no passo anterior, conforme explicado em Crie um ponto final do Private Service Connect.

2. Configure um MIG que aponte para o ponto final do serviço

Neste passo, cria um MIG que encaminha o tráfego para o ponto final do serviço. Em seguida, pode ativar a verificação de estado ativa no MIG.

2A. Ative o acesso privado à Google para uma sub-rede da sua rede VPC

Para ativar o acesso privado à Google para uma sub-rede da sua rede VPC, siga os passos indicados em Ativar o acesso privado à Google.

2B. Defina variáveis de ambiente

As instruções nesta secção usam variáveis de ambiente para fazer referência a strings usadas repetidamente. Recomendamos que defina estas opções antes de continuar:

MIG_NAME=YOUR_MIG_NAME  # A name you provide for the MIG
VPC_NAME=default       # If you are using a shared VPC, use the shared VPC name
VPC_SUBNET=default     # Private Google Access must be enabled for this subnet
REGION=RUNTIME_REGION        # The same region as your Apigee runtime instance
SERVICE_ENDPOINT_IP=YOUR_SERVICE_ENDPOINT_IP.  ## The endpoint IP of the service endpoint you just created

Vai usar estas variáveis várias vezes durante os processos restantes. Se quiser configurar várias regiões, crie variáveis com valores específicos para cada região.

2C. Crie um grupo de instâncias geridas

Neste passo, cria e configura um grupo de instâncias geridas (MIG).

  1. Crie um modelo de instância executando o seguinte comando.
    gcloud compute instance-templates create $MIG_NAME \
    --project $PROJECT_ID \
    --region $REGION \
    --network $VPC_NAME \
    --subnet $VPC_SUBNET \
    --tags=https-server,apigee-mig-proxy,gke-apigee-proxy \
    --machine-type e2-medium --image-family debian-12 \
    --image-project debian-cloud --boot-disk-size 20GB \
    --no-address \
    --metadata ENDPOINT=$SERVICE_ENDPOINT_IP,startup-script-url=gs://apigee-5g-saas/apigee-envoy-proxy-release/latest/conf/startup-script.sh

    Como pode ver neste comando, as máquinas são do tipo e2-medium. Executam o Debian 12 e têm 20 GB de disco. O script startup-script.sh configura o MIG para encaminhar o tráfego de entrada do balanceador de carga para a instância do Apigee.

  2. Crie um grupo de instâncias gerido executando o seguinte comando:
    gcloud compute instance-groups managed create $MIG_NAME \
    --project $PROJECT_ID --base-instance-name apigee-mig \
    --size 2 --template $MIG_NAME --region $REGION
  3. Configure o dimensionamento automático para o grupo executando o seguinte comando:
    gcloud compute instance-groups managed set-autoscaling $MIG_NAME \
    --project $PROJECT_ID --region $REGION --max-num-replicas 3 \
    --target-cpu-utilization 0.75 --cool-down-period 90
  4. Defina uma porta com nome executando o seguinte comando:
    gcloud compute instance-groups managed set-named-ports $MIG_NAME \
    --project $PROJECT_ID --region $REGION --named-ports https:443

3. Configure o balanceador de carga com a monitorização da verificação de funcionamento

Nos passos seguintes, configura um balanceador de carga com monitorização de verificações de funcionamento.

3A. Crie um certificado SSL e uma chave para o balanceador de carga

Só tem de criar as credenciais uma vez, quer esteja a fazer a instalação em regiões únicas ou múltiplas. Num passo posterior, vai associar estas credenciais ao proxy HTTPS de destino do balanceador de carga.

Pode criar as credenciais com:

Para mais informações sobre a criação e a utilização de certificados SSL para o balanceador de carga do Google Cloud, consulte os artigos Certificados SSL e Vista geral dos certificados SSL.

No exemplo seguinte, criamos um certificado SSL gerido pela Google:

  1. Crie estas variáveis de ambiente:
    CERTIFICATE_NAME=YOUR_CERT_NAME
    DOMAIN_HOSTNAME=YOUR_DOMAIN_HOSTNAME 

    Defina DOMAIN_HOSTNAME para um nome de anfitrião de domínio válido que tenha registado. Num passo posterior, vai obter o endereço IP do balanceador de carga e atualizar o registo A do domínio para apontar para esse endereço. Por exemplo, o nome do anfitrião de um domínio pode ter o seguinte aspeto: foo.example.com.

  2. Execute o comando gcloud compute ssl-certificates create:
    gcloud compute ssl-certificates create $CERTIFICATE_NAME \
    --domains=$DOMAIN_HOSTNAME \
    --project $PROJECT_ID \
    --global

    O aprovisionamento do certificado pode demorar até uma hora. Para verificar o estado do aprovisionamento, execute este comando:

    gcloud compute ssl-certificates describe $CERTIFICATE_NAME \
    --global \
    --format="get(name,managed.status, managed.Status)"

3B. Crie uma verificação de funcionamento

  1. Crie uma verificação de funcionamento:
    gcloud compute health-checks create https HEALTH_CHECK_NAME \
    --project $PROJECT_ID --port 443 --global \
    --request-path /healthz/ingress

    Vai usar esta verificação do estado para garantir que o serviço de back-end está em execução. Para configurar verificações de funcionamento mais avançadas num proxy específico, consulte Realizar verificações de funcionamento.

  2. Crie um serviço de back-end:
    gcloud compute backend-services create PROXY_BACKEND_NAME \
    --project $PROJECT_ID \
    --protocol HTTPS \
    --health-checks HEALTH_CHECK_NAME \
    --port-name https \
    --timeout 302s \
    --connection-draining-timeout 300s \
    --global
  3. Adicione o MIG ao seu serviço de back-end com o seguinte comando:
    gcloud compute backend-services add-backend PROXY_BACKEND_NAME \
    --project $PROJECT_ID --instance-group $MIG_NAME \
    --instance-group-region $REGION \
    --balancing-mode UTILIZATION --max-utilization 0.8 --global
  4. Crie um mapa de URLs de balanceamento de carga com o seguinte comando:
    gcloud compute url-maps create MIG_PROXY_MAP_NAME \
    --project $PROJECT_ID --default-service PROXY_BACKEND_NAME
  5. Crie um proxy HTTPS de destino de balanceamento de carga com o seguinte comando:
    gcloud compute target-https-proxies create MIG_HTTPS_PROXY_NAME \
    --project $PROJECT_ID --url-map MIG_PROXY_MAP_NAME \
    --ssl-certificates $CERTIFICATE_NAME

3C. Obtenha um endereço IP reservado e crie regras de firewall

Tem de atribuir um endereço IP ao balanceador de carga e, em seguida, criar regras que permitam ao balanceador de carga aceder ao MIG. Só tem de fazer este passo uma vez, quer esteja a fazer a instalação numa única região ou em várias regiões.

  1. Reserve um endereço IP para o balanceador de carga:
    gcloud compute addresses create ADDRESSES_NAME \
    --project $PROJECT_ID \
    --ip-version=IPV4 \
    --global
  2. Crie uma regra de encaminhamento global com o seguinte comando:
    gcloud compute forwarding-rules create FORWARDING_RULE_NAME \
    --project $PROJECT_ID --address ADDRESSES_NAME --global \
    --target-https-proxy MIG_HTTPS_PROXY_NAME --ports 443
  3. Obtenha o endereço IP reservado executando o seguinte comando:
    gcloud compute addresses describe ADDRESSES_NAME \
    --project $PROJECT_ID --format="get(address)" --global
  4. Passo importante: aceda ao site, ao anfitrião de DNS ou ao ISP onde os seus registos de DNS são geridos e certifique-se de que o registo de DNS do seu domínio é resolvido para o endereço IP do balanceador de carga do Google Cloud. Este endereço é o valor de IP devolvido no último passo. Para mais detalhes, consulte o artigo Atualize os registos A e AAAA do DNS para apontarem para o endereço IP do balanceador de carga.
  5. Crie uma regra de firewall que permita ao balanceador de carga aceder ao MIG através do seguinte comando:
    gcloud compute firewall-rules create FIREWALL_RULE_NAME \
    --description "Allow incoming from GLB on TCP port 443 to Apigee Proxy" \
    --project $PROJECT_ID --network $VPC_NAME --allow=tcp:443 \
    --source-ranges=130.211.0.0/22,35.191.0.0/16 --target-tags=gke-apigee-proxy

    Tenha em atenção que os intervalos de endereços IP 130.211.0.0/22 e 35.191.0.0/16 são os intervalos de endereços IP de origem do Google Load Balancing. Esta regra de firewall permite que o Google Cloud Load Balancing faça pedidos de verificação de funcionamento ao MIG.

O aprovisionamento do Apigee está concluído. Aceda a Implemente um proxy de exemplo.