Balanceo de cargas HTTP(S) para API Gateway

La integración de la compatibilidad de balanceo de cargas  HTTP(S) de Google Cloud para API Gateway permite que tus backends sin servidores aprovechen todas las funciones de Cloud Load Balancing. Si combinas API Gateway y el balanceo de cargas de HTTP(S) mediante un grupo de extremos de red sin servidores (NEG sin servidores), puedes hacer lo siguiente:

  • Alojar puertas de enlace con dominios de marca personalizados
  • Configurar TLS para puertas de enlace mediante certificados emitidos por una autoridad certificada preferida
  • Crear un punto de entrada común para el enrutamiento de una puerta de enlace a varios backends
  • Implementar puertas de enlace en varias regiones geográficas para una alta disponibilidad sin administrar las URL de cada región
  • Proteger las puertas de enlace con Cloud Armor
  • Aprovecha Cloud CDN para mejorar el tiempo de respuesta de la puerta de enlace.

Usa un NEG sin servidores para API Gateway

Un grupo de extremos de red (NEG) especifica un grupo de extremos de backend para un balanceador de cargas. Un NEG sin servidores es un backend que apunta a un backend sin servidores alojado en Google, como Cloud Run, App Engine o API Gateway. Un backend de NEG sin servidores para API Gateway puede representar lo siguiente:

  • Una instancia de API Gateway
  • Un grupo de puertas de enlace con la misma configuración de API

En la siguiente figura, se muestra cómo se pueden usar los NEG sin servidores en el modelo de Cloud Load Balancing:

diagrama de NEG sin servidores como backend para puertas de enlace multirregionales

Como se ilustra más arriba, varios NEG sin servidores pueden administrar un servicio de backend. Cada NEG sin servidores puede contener una sola instancia de API Gateway o usar una máscara de URL para apuntar a varias puertas de enlace. Debido a que todos los NEG que actúan como un servicio de backend se usan para el balanceo de cargas, deberían representar implementaciones de puerta de enlace equivalentes en cuanto a funcionalidad. Por ejemplo, todos los NEG deben tener la misma configuración de API implementada en cada puerta de enlace en diferentes regiones. Si un servicio de backend contiene varios NEG, el balanceador de cargas balanceará el tráfico entre estos NEG mientras minimiza la latencia de la solicitud.

Limitaciones en NEG sin servidores y API Gateway

Se deben tener en cuenta algunas limitaciones cuando se usan NEG sin servidores a fin de integrar Cloud Load Balancing para API Gateway. Sobre todo:

  • Los NEG sin servidores no pueden tener ningún extremo de red, como direcciones IP o puertos, conectados.
  • Los NEG sin servidores solo pueden apuntar a las instancias de API Gateway que residen en la misma región donde se crea el NEG.
  • Los NEG sin servidores solo pueden apuntar a las instancias de API Gateway creadas en el mismo proyecto que el balanceador de cargas mediante el backend de NEG sin servidores.
  • API Gateway aún no es compatible con la configuración de control de Ingress. Como resultado, no se puede inhabilitar el acceso a API Gateway a través de la URL de puerta de enlace generada por el servicio y garantizar que el balanceador de cargas controle todo el tráfico.

Para obtener más información sobre las restricciones relacionadas con los NEG sin servidores y los servicios de backend en general, consulta Limitaciones.

Limitaciones de los NEG sin servidores en la configuración del servicio de backend

Un servicio de backend define cómo Cloud Load Balancing distribuye el tráfico. La configuración del servicio de backend contiene un conjunto de valores, como el protocolo que se usa para conectarse a backends, varios parámetros de configuración de distribución y sesión, verificaciones de estado y tiempos de espera. En el caso de los NEG sin servidores que se usan como servicio de backend para API Gateway, esta configuración proporciona un control detallado sobre el comportamiento del balanceador de cargas.

La definición de recurso de un servicio de backend tiene las siguientes implicaciones para el diseño de balanceo de cargas:

  • Los NEG sin servidores no se pueden usar con otros tipos de NEG en el mismo servicio de backend. Por ejemplo, no puedes realizar un enrutamiento a un clúster de GKE y a una instancia de API Gateway desde el mismo servicio de backend.
  • Todos los NEG sin servidores combinados en un servicio de backend deben usar el mismo tipo de backend. Esto significa que los NEG sin servidores de API Gateway solo se pueden combinar con otros NEG sin servidores de API Gateway, los NEG sin servidores de App Engine solo se pueden combinar con los NEG sin servidores de App Engine, etcétera.
  • Un servicio de backend solo puede contener un NEG sin servidores por región.

Cuando defines una configuración del servicio de backend que se enruta a un NEG sin servidores, se aplican las siguientes limitaciones de campo:

  • No se puede especificar balancingMode
  • El campo healthCheck debe estar vacío y no se puede especificar.
  • No se pueden especificar puertos
  • Solo se admiten protocolos HTTP y HTTPS.
  • No se admiten los valores especificados en los campos relacionados con utilization o connection.

Los campos IAP, cdnPolicy y securityPolicy de la configuración del servicio de backend son válidos para los NEG sin servidores. Estos campos se pueden usar para configurar Identity-Aware Proxy, Cloud CDN y Cloud Armor, respectivamente, con tu servicio de API Gateway.

Próximos pasos