Usar Google Cloud Armor, el balanceo de carga y Cloud CDN para desplegar front-ends globales programables

Last reviewed 2025-04-02 UTC

En este documento se proporciona una arquitectura de referencia para una aplicación web alojada en Google Cloud. La arquitectura usa un frontend global que incorpora Google Cloud prácticas recomendadas para ayudarte a escalar, proteger y acelerar la entrega de tus aplicaciones orientadas a Internet. La arquitectura incluye compatibilidad con Cloud Build, así como herramientas de integración continua (CI) y entrega continua (CD) de terceros, como Jenkins y GitLab. Esta arquitectura está pensada para desarrolladores y propietarios de aplicaciones que quieran escalar sus aplicaciones con un balanceador de carga y protegerlas frente a ataques de denegación de servicio distribuido (DDoS) y ataques web con un cortafuegos de aplicaciones web (WAF).

Arquitectura

En el siguiente diagrama se muestra la arquitectura que se describe en este documento.

Arquitectura de aplicaciones web.

En esta arquitectura, la aplicación se balancea con balanceadores de carga de aplicaciones externos globales, que distribuyen el tráfico HTTP y HTTPS entre varias instancias de backend y entre varias regiones. Cloud CDN acelera las aplicaciones orientadas a Internet mediante los puntos de presencia (PoPs) perimetrales de Google y funciona con el balanceador de carga de aplicaciones externo global para distribuir contenido a los usuarios. Los back-ends están protegidos por políticas de seguridad de Google Cloud Armor que proporcionan un filtrado de capa 7. Para ello, analizan las solicitudes entrantes en busca de ataques web comunes u otros atributos de capa 7, lo que ayuda a bloquear el tráfico antes de que llegue a los servicios de back-end con balanceo de carga. La protección contra ataques DDoS volumétricos está habilitada de forma predeterminada.

Cuando un usuario solicita contenido de tu servicio, esa solicitud se envía al frontend global para aplicaciones accesibles desde Internet, que proporciona Cross-Cloud Network. Las políticas de seguridad de Cloud Armor evalúan la solicitud, empezando por las políticas de seguridad perimetrales de Cloud Armor. Si se permite la solicitud y Cloud CDN puede completarla, el contenido se recupera de la caché de Cloud Armor y se envía al usuario. Si la solicitud da como resultado un fallo de caché, las políticas de backend la evalúan y, según las reglas de la política, tu servidor backend la deniega o la completa.

Componentes de la arquitectura

El diagrama anterior incluye los siguientes componentes:

  • Balanceador de carga de aplicación externo global: este balanceador de carga de aplicación es un balanceador de carga de capa 7 basado en proxy que te permite ejecutar y escalar tus servicios. El balanceador de carga de aplicaciones distribuye el tráfico HTTP y HTTPS a backends alojados en varias Google Cloud plataformas. Application Load Balancer tiene las siguientes características:

    • Backend configurable: esta arquitectura usa dos grupos de instancias gestionados (MIGs) en diferentes regiones, pero puedes configurar cualquier backend que admita el balanceador de carga de aplicaciones externo global. Puedes usar el mismo balanceador de carga para aplicaciones de GKE, Cloud Run, Cloud Run Functions y App Engine, así como para las alojadas en las instalaciones y en otras nubes, con una configuración de backend diferente. Para obtener más información, consulta el artículo Introducción a Application Load Balancer.
    • División del tráfico: puedes usar el balanceador de carga de aplicaciones para gestionar el tráfico, incluida la gestión de versiones de software, enviando a diferentes usuarios a distintos servidores backend. En la arquitectura descrita en este documento, hay una división del tráfico simple de 60/40. Sin embargo, puedes cambiar esta división para crear esquemas de gestión del tráfico más complejos. Para obtener información sobre otras opciones de configuración, consulta los tiempos de espera y reintentos configurables y determina el modo de balanceo que prefieras.
  • Cloud CDN: la plataforma Cloud CDN actúa como caché. Se implementa con el servidor de origen para proporcionar el conjunto completo de funciones de Cloud CDN, incluidas QUIC y HTTP/2, así como controles de enrutamiento y almacenamiento en caché. Este enfoque permite que tu aplicación se escale a nivel mundial sin que el rendimiento se vea afectado, así como reducir los costes de ancho de banda y de computación del frontend. La configuración predeterminada que usa el frontend global se basa en las prácticas recomendadas de distribución de contenido y las prácticas recomendadas de seguridad web de Cloud CDN.

  • Cloud Armor: este componente incluye la protección frente a DDoS y reglas de WAF. La arquitectura tiene la siguiente configuración básica de Cloud Armor, que ayuda a mitigar los vectores de amenazas habituales:

Productos usados

Esta arquitectura de referencia usa los siguientes Google Cloud productos:

Factores del diseño

En esta sección se ofrecen directrices para ayudarte a usar este documento como punto de partida para desarrollar una arquitectura que cumpla tus requisitos específicos de seguridad, fiabilidad, eficiencia operativa, coste y rendimiento.

Seguridad, privacidad y cumplimiento

En esta sección se describen otros factores que debe tener en cuenta al usar esta arquitectura de referencia para implementar la aplicación web.

Establecer una configuración de seguridad básica

Para mejorar aún más la seguridad, la arquitectura descrita en este documento también es compatible con el plan de bases de Enterprise. Este plan ayuda a las organizaciones que usan Google Cloud a establecer una base segura para todas las cargas de trabajo futuras, incluida la configuración de Gestión de Identidades y Accesos (IAM), Cloud Key Management Service y Security Command Center.

Proteger los datos de los usuarios con Cloud CDN

En esta arquitectura, te recomendamos que no almacenes en caché contenido específico de usuarios. Para almacenar en caché los tipos de contenido HTML (text/html) y JSON (application/json), defina encabezados cache-control explícitos en la respuesta de Cloud CDN. Asegúrate de no almacenar en caché los datos de un usuario y de no mostrárselos a todos los usuarios.

Controlar el acceso a una aplicación con IAP

La arquitectura también es compatible con Identity-Aware Proxy (IAP). IAP verifica la identidad de un usuario y, a continuación, determina si se le debe permitir acceder a una aplicación. Para habilitar IAP en el balanceador de carga de aplicación en modo externo global o clásico, debes habilitarlo en los servicios de backend del balanceador de carga. Cloud Armor evalúa las solicitudes HTTP o HTTPS entrantes antes de que el balanceador de carga de aplicaciones las envíe para balancearlas. Si Cloud Armor bloquea una solicitud, IAP no la evalúa. Si Cloud Armor permite una solicitud, IAP la evalúa. La solicitud se bloquea si IAP no autentica la solicitud. Para obtener más información, consulta el artículo sobre la integración de Cloud Armor con otros productos de Google.

Optimización de costes

Como norma general, usar Cloud CDN junto con Cloud Armor puede ayudar a minimizar el efecto de los cargos por transferencia de datos salientes.

Cloud CDN

Los objetos estáticos que se sirven al cliente desde la caché no transitan por el balanceador de carga. Una estrategia de almacenamiento en caché eficaz puede reducir la cantidad de datos salientes que procesa el balanceador de carga y, por tanto, los costes.

Google Cloud Armor

Cloud Armor te ayuda a reducir los costes, ya que evita que se te cobre por el tráfico no deseado. Las solicitudes que bloquea Cloud Armor no generan una respuesta de tu aplicación, por lo que se reduce la cantidad de datos salientes que procesa el balanceador de carga. El efecto en tus costes depende del porcentaje de tráfico no deseado que se bloquea con las políticas de seguridad de Cloud Armor que implementes.

Los costes finales también pueden variar en función del número de servicios o aplicaciones que quieras proteger, del número de políticas y reglas de Cloud Armor que tengas, de la entrada y salida de caché y del volumen de datos. Para obtener más información, consulta lo siguiente:

Implementación

Para desplegar esta arquitectura de referencia, usa el ejemplo de Terraform. Para obtener más información, consulta el README. La carpeta web_app_protection_example incluye el archivo (main.tf). El código de este archivo crea la arquitectura descrita en este documento y proporciona asistencia adicional para la implementación automática.

La estructura de carpetas de la carpeta de Terraform es la siguiente:

Cuando confirmas un cambio en cualquier rama en la que se basa tu canalización, esos cambios activan una ejecución de la canalización y se integran en una nueva versión una vez que se completa. Cuando extraigas el conjunto de herramientas por primera vez, la solución se cargará en el Google Cloud proyecto que hayas elegido.

Siguientes pasos

Consulte más información sobre las prácticas recomendadas de los Google Cloud productos utilizados en esta arquitectura de referencia:

Colaboradores

Autores:

Otros colaboradores: