Configurar la comprobación del estado activa para la conmutación por error regional con PSC

Esta página se aplica a Apigee, pero no a Apigee Hybrid.

Consulta la documentación de Apigee Edge.

En este documento se explica cómo usar Apigee para configurar la comprobación de estado activa cuando se usa Private Service Connect (PSC) para el enrutamiento de red de entrada (tráfico de clientes a Apigee). La comprobación del estado activa es útil para evitar la pérdida de tráfico de red en caso de que se produzca un fallo regional.

Información general

Si tiene previsto usar PSC para el enrutamiento de red de Apigee hacia el norte, siga las instrucciones de este documento para configurar la comprobación de estado activa. Por el momento, PSC no admite la monitorización activa de comprobaciones de estado, pero puedes modificar la configuración de Apigee para usar un grupo de instancias gestionado (MIG), que sí ofrece la función de comprobación de estado activa.

Puedes usar la detección de anomalías para monitorizar el estado de salud. Sin embargo, durante los fallos regionales, es posible que pierdas una cierta cantidad de tráfico periódicamente, ya que la detección de anomalías usa el tráfico en tiempo real como indicador. La detección de valores atípicos redirige periódicamente parte del tráfico activo para comprobar el estado de la región con errores.

En la figura 1 se muestra la arquitectura propuesta. Un punto final de servicio se conecta al adjunto de servicio de la instancia de Apigee y un MIG proxyiza el tráfico al punto final de servicio. Habilita la monitorización de comprobaciones de estado en el MIG.

Imagen 1. Arquitectura de Apigee para la comprobación de estado activa sin el peering de VPC.

Método de comprobación del estado basado en MIGs

Requisitos previos

Puedes aplicar la técnica descrita en este documento a las instalaciones de Apigee que usen o no el emparejamiento de VPCs. Sin embargo, en el caso de una instalación de VPC emparejada, la técnica de comprobación del estado activo que se describe aquí solo se aplica si usas PSC para tu configuración de enrutamiento.

Antes de seguir los pasos de esta sección:

  • En las instalaciones que no usan el emparejamiento de VPC:
    1. Completa los pasos del 1 al 6 del aprovisionamiento de Apigee para las instalaciones basadas en suscripciones o las instalaciones de pago por uso. Por el momento, la única opción es seguir estos pasos con la interfaz de línea de comandos.
    2. Sáltate el paso 7 (Configura el enrutamiento) y sigue estos pasos.
  • En las instalaciones de emparejamiento de VPC que usan PSC para el enrutamiento:
    1. Completa los pasos del 1 al 7 del aprovisionamiento de Apigee para las instalaciones basadas en suscripciones o de pago por uso. Por el momento, la única opción es seguir estos pasos con la interfaz de línea de comandos.
    2. Omite el paso 8 (Configurar el enrutamiento) y sigue estos pasos.

1. Configurar un endpoint de servicio de PSC para la vinculación de servicio de Apigee

En este paso, creará un endpoint de servicio de PSC que apunte a la vinculación de servicio de la instancia de Apigee:

  1. Obtén el adjunto de servicio de la instancia de Apigee que has creado anteriormente:
    curl -i -X GET -H "Authorization: Bearer $AUTH" \
      "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID/instances"

    En el siguiente ejemplo de salida, el valor serviceAttachment se muestra en negrita:

    {
      "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. Crea un endpoint de servicio de PSC que apunte a la vinculación de servicio que has obtenido del cuerpo de la respuesta de la instancia en el paso anterior, tal como se explica en Crear un endpoint de Private Service Connect.

2. Configurar un MIG que apunte al endpoint del servicio

En este paso, creará un MIG que proxy el tráfico al endpoint de servicio. A continuación, puede habilitar la comprobación de estado activa en el MIG.

2A. Habilitar el acceso privado de Google en una subred de tu red de VPC

Para habilitar la función Acceso privado de Google en una subred de tu red de VPC, sigue los pasos que se indican en el artículo sobre cómo habilitar Acceso privado de Google.

2B. Establece variables de entorno:

En las instrucciones de esta sección se usan variables de entorno para hacer referencia a cadenas que se usan repetidamente. Te recomendamos que los definas 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

Usarás estas variables varias veces durante los procesos restantes. Si quieres configurar varias regiones, crea variables con valores específicos para cada región.

2C. Crear un grupo de instancias gestionado

En este paso, creará y configurará un grupo de instancias gestionado (MIG).

  1. Crea una plantilla de instancia ejecutando el siguiente 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 puedes ver en este comando, las máquinas son de tipo e2-medium. Ejecutan Debian 12 y tienen 20 GB de disco. La secuencia de comandos startup-script.sh configura el MIG para enrutar el tráfico entrante del balanceador de carga a la instancia de Apigee.

  2. Crea un grupo de instancias gestionado ejecutando el siguiente 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. Configura el autoescalado del grupo ejecutando el siguiente 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. Define un puerto con nombre ejecutando el siguiente comando:
    gcloud compute instance-groups managed set-named-ports $MIG_NAME \
    --project $PROJECT_ID --region $REGION --named-ports https:443

3. Configurar el balanceador de carga con la monitorización de comprobaciones de estado

En los pasos siguientes, configurará un balanceador de carga con monitorización de comprobación del estado.

3A. Crear un certificado y una clave SSL para el balanceador de carga

Solo tienes que crear las credenciales una vez, tanto si vas a instalar el servicio en una región como en varias. En un paso posterior, asociará estas credenciales con el proxy HTTPS de destino del balanceador de carga.

Puedes crear las credenciales con:

Para obtener más información sobre cómo crear y usar certificados SSL para el balanceador de carga de Google Cloud, consulta Certificados SSL y Información general sobre los certificados SSL.

En el siguiente ejemplo, creamos un certificado SSL gestionado por Google:

  1. Crea estas variables de entorno:
    CERTIFICATE_NAME=YOUR_CERT_NAME
    DOMAIN_HOSTNAME=YOUR_DOMAIN_HOSTNAME 

    Asigna a DOMAIN_HOSTNAME un nombre de host de dominio válido que hayas registrado. En un paso posterior, obtendrás la dirección IP del balanceador de carga y actualizarás el registro A del dominio para que apunte a esa dirección. Por ejemplo, el nombre de host de un dominio podría tener este aspecto: foo.example.com.

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

    El certificado puede tardar hasta una hora en aprovisionarse. Para comprobar el estado del aprovisionamiento, ejecuta este comando:

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

3B. Crear una comprobación del estado

  1. Crea una comprobación del estado:
    gcloud compute health-checks create https HEALTH_CHECK_NAME \
    --project $PROJECT_ID --port 443 --global \
    --request-path /healthz/ingress

    Usará esta comprobación del estado para asegurarse de que el servicio de backend se está ejecutando. Para configurar comprobaciones del estado más avanzadas en un proxy específico, consulta Realizar comprobaciones del estado.

  2. Crea un servicio de backend:
    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. Añade el MIG a tu servicio de backend con el siguiente 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. Crea un mapa de URLs de balanceo de carga con el siguiente comando:
    gcloud compute url-maps create MIG_PROXY_MAP_NAME \
    --project $PROJECT_ID --default-service PROXY_BACKEND_NAME
  5. Crea un proxy HTTPS de destino de balanceo de carga con el siguiente 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. Obtener una dirección IP reservada y crear reglas de cortafuegos

Debes asignar una dirección IP al balanceador de carga y, a continuación, crear reglas que permitan que el balanceador de carga acceda al MIG. Solo tiene que seguir este paso una vez, tanto si va a instalar el servicio en una sola región como en varias.

  1. Reserva una dirección IP para el balanceador de carga:
    gcloud compute addresses create ADDRESSES_NAME \
    --project $PROJECT_ID \
    --ip-version=IPV4 \
    --global
  2. Crea una regla de reenvío global con el siguiente 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. Para obtener la dirección IP reservada, ejecuta el siguiente comando:
    gcloud compute addresses describe ADDRESSES_NAME \
    --project $PROJECT_ID --format="get(address)" --global
  4. Paso importante: Ve al sitio, al host de DNS o al ISP donde se gestionan tus registros DNS y asegúrate de que el registro DNS de tu dominio se resuelva en la dirección IP del balanceador de carga de Google Cloud. Esta dirección es el valor de IP devuelto en el último paso. Para obtener más información, consulta el artículo Actualizar los registros A y AAAA de DNS para que apunten a la dirección IP del balanceador de carga.
  5. Crea una regla de cortafuegos que permita que el balanceador de carga acceda al MIG mediante el siguiente 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

    Ten en cuenta que los intervalos de direcciones IP 130.211.0.0/22 y 35.191.0.0/16 son los intervalos de direcciones IP de origen de Google Load Balancing. Esta regla de cortafuegos permite que Google Cloud Load Balancing haga solicitudes de comprobación del estado a la MIG.

El aprovisionamiento de Apigee se ha completado. Ve a Despliega un proxy de ejemplo.