Conectividad privada para aplicaciones de IA generativa compatibles con RAG

En este documento, se proporciona una arquitectura de referencia que puedes usar para proteger la infraestructura de red de las aplicaciones con generación aumentada (RAG). Por lo general, una arquitectura de RAG contiene subsistemas separados para controlar los flujos de procesamiento de datos y recuperación de contenido. Esta arquitectura de referencia muestra cómo usar la VPC compartida para realizar las siguientes acciones:

  • Crea una separación entre los subsistemas con permisos de Identity and Access Management (IAM).
  • Conecta los componentes de la aplicación con direcciones IP privadas.

El público previsto para este documento incluye arquitectos, desarrolladores y administradores de redes y seguridad. En este documento, se supone que tienes conocimientos básicos de redes. En este documento, no se describe la creación de una aplicación basada en RAG.

Arquitectura

En el siguiente diagrama, se muestra la arquitectura de redes que se presenta en este documento:

Arquitectura de redes para aplicaciones con RAG. Conexiones y flujo de tráfico para la arquitectura de redes

La arquitectura del diagrama anterior muestra los siguientes componentes:

Componente Objetivo
Red externa, ya sea local o en otra nube
  • Proporciona conectividad de red a los ingenieros de datos que suben datos sin procesar de RAG.
  • Finaliza la conectividad de red externa.
  • Aloja routers externos.
  • Proporciona conectividad al extremo de Private Service Connect en la red de nube privada virtual (VPC) de Google Cloud enrutamiento.
  • Contiene servidores DNS que apuntan al extremo de Private Service Connect.
Proyecto de enrutamiento
  • Aloja la red de VPC de enrutamiento, que se conecta a la red externa a través de una conexión de Cloud Interconnect o VPN con alta disponibilidad.
  • Aloja un concentrador de Network Connectivity Center que conecta la red externa, la red de VPC de enrutamiento y las redes de VPC compartida.
  • Aloja un extremo de Private Service Connect que se conecta a un extremo regional de Cloud Storage. Este endpoint permite que los ingenieros de datos suban datos de RAG al bucket de Cloud Storage.
Proyecto host de VPC compartida de RAG Aloja una red de VPC compartida que aloja el balanceador de cargas del servicio de frontend y cualquier otro servicio que necesite una red de VPC. Todos los proyectos de servicio tienen acceso a esa red de VPC compartida.
Proyecto de servicio de transferencia de datos

Contiene un bucket de Cloud Storage para la entrada de datos sin procesar. Contiene el subsistema de transferencia de datos, que incluye los siguientes componentes:

  • Procesamiento de transferencia: Lee los datos sin procesar y los procesa.
  • Salida de la transferencia: Escribe en el almacén de datos final.
Proyecto de servicio de entrega

Contiene el subsistema de entrega, que incluye los siguientes componentes que proporcionan los servicios y las funciones para la inferencia y la interacción:

  • Es el almacén de datos de RAG que contiene el resultado del subsistema de transferencia de datos.
  • Procesos de entrega que alimentan el modelo combinando la consulta de inferencia con datos del almacén de datos de RAG.
  • Es el modelo que usa el subsistema de procesamiento para crear vectores a partir de los datos de RAG subidos y procesar la solicitud del usuario final.
Proyecto de servicio de frontend

Contiene el subsistema de entrega, que es un balanceador de cargas frente a un servicio de interacción del usuario que se ejecuta en Cloud Run o Google Kubernetes Engine (GKE).

El proyecto también contiene Google Cloud Armor, que ayuda a limitar el acceso a tu servicio. Si quieres proporcionar acceso desde Internet, puedes agregar un balanceador de cargas de aplicaciones externo regional.

Perímetro de los Controles del servicio de VPC Ayuda a proteger contra el robo de datos. Los datos almacenados en buckets de Cloud Storage no se pueden copiar a ningún lugar fuera del perímetro, y las operaciones del plano de control están protegidas.

En las siguientes secciones, se describen las conexiones y los flujos de tráfico que se encuentran en la arquitectura.

Conexiones entre componentes

En esta sección, se describen las conexiones entre los componentes y las redes de esta arquitectura.

Red externa a la red de VPC de enrutamiento

Las redes externas se conectan a la red de VPC de enrutamiento Google Cloud a través de Cloud Interconnect o VPN de alta disponibilidad, que son radios híbridos de un centro de Network Connectivity Center.

Los Cloud Routers en la red de VPC de enrutamiento y los routers externos en la red externa intercambian rutas del Protocolo de puerta de enlace fronteriza (BGP):

  • Los routers de las redes externas anuncian las rutas para las subredes externas al Cloud Router de la VPC de enrutamiento. Puedes expresar la preferencia de las rutas con las métricas y los atributos de BGP.
  • Los Cloud Routers en la red de VPC de enrutamiento anuncian las rutas para los prefijos en las VPC de Google Clouda las redes externas.

Enruta la red de VPC a la red de VPC compartida

Conectas la red de VPC de enrutamiento y la red de VPC de RAG con los radios de VPC de Network Connectivity Center del concentrador de Network Connectivity Center. El concentrador también aloja las VPCs satélite híbridas en la red externa.

De recurso a recurso dentro de la red de VPC compartida

En este diseño, un bucket de Cloud Storage recibe datos de la red externa. Las solicitudes de inferencia llegan a través de un balanceador de cargas de aplicaciones interno regional. Para el resto del sistema, tienes las siguientes opciones:

  • Aloja todo en la infraestructura de SaaS de Google, como los buckets de Cloud Storage, Vertex AI, Cloud Run y Pub/Sub. En este caso, los componentes se comunican a través de la infraestructura privada de Google.
  • Aloja todo en cargas de trabajo que se ejecutan en VMs de Compute Engine, clústeres de GKE, bases de datos de Cloud SQL o en otros componentes que se ejecutan en redes de VPC. En este caso, los sistemas se comunican a través de direcciones IP privadas en las redes que vinculas a través de Network Connectivity Center o el intercambio de tráfico entre redes de VPC.
  • Usar una combinación de servicios completamente administrados, de plataforma y de infraestructura En este caso, puedes establecer conexiones entre una red de VPC y un servicio completamente administrado con los siguientes métodos:
    • Acceso privado a Google: Con este método, las cargas de trabajo que no tienen direcciones IP externas y que se ejecutan en redes de VPC pueden acceder a las APIs de Google. Este acceso se produce de forma interna a través de la infraestructura de Google, y este proceso no expone dicho tráfico a Internet.
    • Private Service Connect: Con este método, puedes crear un extremo en tu proyecto de servicio para servicios como AlloyDB para PostgreSQL que se alojan en redes de VPC administradas.

Red externa al balanceador de cargas del servicio de frontend

El extremo del balanceador de cargas de aplicaciones interno regional es una dirección IP en la red de RAG. La red de RAG, la red de enrutamiento y las conexiones híbridas a la red externa son radios del mismo concentrador de Network Connectivity Center. Por lo tanto, puedes indicarle a Network Connectivity Center que exporte todos los rangos secundarios del radio al concentrador, que luego los vuelve a exportar a las otras redes de radio. Luego, los usuarios finales del sistema pueden acceder al servicio balanceado desde la red externa.

Flujos de tráfico

Los flujos de tráfico en esta arquitectura de referencia incluyen un flujo de datos de RAG y un flujo de inferencia.

Flujo de población de RAG

En este flujo, se describe cómo los datos de RAG fluyen a través del sistema, desde los ingenieros de datos hasta el almacenamiento de vectores.

  1. Desde la red externa, los ingenieros de datos suben datos sin procesar a través de la conexión de Cloud Interconnect o Cloud VPN. Los datos se suben al extremo de Private Service Connect en la red de VPC de enrutamiento.
  2. Los datos viajan a través de la infraestructura interna de Google hasta el bucket de Cloud Storage en el proyecto de servicio de transferencia de datos.
  3. Dentro del proyecto de servicio de transferencia de datos, los datos viajan entre los sistemas con uno de los siguientes métodos:

    • Acceso privado a Google
    • Extremos de Private Service Connect
    • Infraestructura directa de Google

    El método depende de si los sistemas están alojados en redes de VPC deGoogle Cloud o directamente enGoogle Cloud. Como parte de este flujo, el subsistema de transferencia de datos alimenta al modelo con datos de RAG fragmentados, que produce vectores para cada fragmento.

  4. El subsistema de transferencia de datos escribe los datos vectoriales y los datos fragmentados en el almacén de datos adecuado.

Flujo de inferencia

En este flujo, se describen las solicitudes de los clientes.

  1. Desde la red externa, un cliente envía una solicitud a la dirección IP del servicio.
  2. La solicitud viaja a través de la conexión de Cloud Interconnect o de Cloud VPN a la red de VPC de enrutamiento.
  3. La solicitud viaja a través de la conexión del radio de VPC a la red de VPC de RAG.
  4. La solicitud del cliente llega al balanceador de cargas, que la pasa al subsistema de frontend.
  5. El subsistema de frontend reenvía la solicitud al subsistema de entrega.
  6. El subsistema de entrega aumenta la solicitud con los datos contextuales pertinentes del almacén de datos.
  7. El subsistema de entrega envía la instrucción aumentada al modelo de IA, que genera una respuesta.

Productos usados

En esta arquitectura de referencia, se usan los siguientes productos Google Cloud :

  • Nube privada virtual (VPC): Es un sistema virtual que proporciona funcionalidad de red global y escalable para tus cargas de trabajo de Google Cloud . La VPC incluye el intercambio de tráfico entre redes de VPC, Private Service Connect, el acceso privado a servicios y la VPC compartida.
  • VPC compartida: Es una función de la nube privada virtual que te permite conectar recursos de varios proyectos a una red de VPC común con direcciones IP internas de esa red.
  • Private Service Connect: Es una función que permite a los consumidores acceder a servicios administrados de forma privada desde su red de VPC.
  • Acceso privado a Google: Es una función que permite que las instancias de VM sin direcciones IP externas alcancen las direcciones IP externas de las APIs y los servicios de Google.
  • Cloud Interconnect: Es un servicio que extiende tu red externa a la red de Google a través de una conexión de latencia baja y alta disponibilidad.
  • Cloud VPN: Es un servicio que extiende de forma segura tu red de intercambio de tráfico a la red de Google a través de un túnel VPN con IPsec.
  • Cloud Router: Es una oferta distribuida y completamente administrada que proporciona capacidades de emisor y receptor del Protocolo de Puerta de Enlace Fronteriza (BGP). Cloud Router funciona con Cloud Interconnect, Cloud VPN y las máquinas de routers para crear rutas dinámicas en redes de VPC según las rutas que se reciben de BGP y las que se aprenden de forma personalizada.
  • Network Connectivity Center: Es un framework de orquestación que simplifica la conectividad de red entre los recursos de radio que están conectados a un recurso de administración central llamado concentrador.
  • Controles del servicio de VPC: Es una función de redes administrada que minimiza los riesgos de robo de datos para tus recursos de Google Cloud .
  • Cloud Load Balancing: Una cartera de balanceadores de cargas escalables, globales y regionales de alto rendimiento.
  • Model Armor: Es un servicio que brinda protección para tus recursos de IA generativa y de agentes contra la inyección de instrucciones, las filtraciones de datos sensibles y el contenido dañino.
  • Google Cloud Armor: Es un servicio de seguridad de redes que ofrece reglas de firewall de aplicación web (WAF) y ayuda a proteger contra ataques de DSD y de aplicaciones.
  • Cloud Storage: Un depósito de objetos de bajo costo y sin límites para varios tipos de datos. Se puede acceder a los datos desde y hacia Google Cloud, y estos se replican en las ubicaciones para aumentar la redundancia.

Casos de uso

Esta arquitectura está diseñada para situaciones empresariales en las que las comunicaciones internas, de entrada y de salida del sistema general deben usar direcciones IP privadas y no deben atravesar Internet:

  • Entrada privada: Los datos subidos no viajan por Internet. En su lugar, aloja tu bucket de Cloud Storage detrás de un extremo de Private Service Connect en tu red de VPC de Google Cloudenrutamiento. Copias los datos de RAG a través de tu conexión de Cloud Interconnect o Cloud VPN usando solo direcciones IP privadas.
  • Conectividad privada entre servicios: Los servicios se comunican entre sí a través de las interfaces internas de Google o mediante direcciones privadas que son internas para tus redes de VPC.
  • Salida privada: No se puede acceder a los resultados de la inferencia a través de Internet, a menos que decidas configurar ese acceso. De forma predeterminada, solo los usuarios de la red externa designada pueden acceder al extremo privado de tu servicio.

Alternativas de diseño

En esta sección, se presentan enfoques alternativos de diseño de redes que puedes considerar para tu aplicación compatible con RAG en Google Cloud.

Haz que el servicio esté disponible de forma pública

En la arquitectura que se muestra en este documento, solo los usuarios de tu red interna pueden enviar consultas a tu aplicación. Si tu aplicación debe ser accesible para los clientes en Internet, usa un balanceador de cargas de aplicaciones externo regional.

Usa la puerta de enlace de inferencia de GKE

Si tu subsistema de frontend se ejecuta en GKE, puedes usar una puerta de enlace de inferencia en lugar de un balanceador de cargas de aplicaciones.

Consideraciones del diseño

En esta sección, se proporciona orientación adicional para ayudarte a implementar redes que admitan la conectividad privada para una arquitectura compatible con RAG. Esta orientación puede ayudarte a cumplir con tus requisitos específicos de seguridad y cumplimiento, confiabilidad, costo y rendimiento. La guía de esta sección no está completa. Para tu implementación en particular, es posible que debas considerar factores de diseño adicionales que no se abordan en esta sección.

Security, privacy, and compliance

En la mayoría de los casos, implementas Model Armor delante del modelo de IA para evaluar tanto las instrucciones entrantes como los resultados salientes. Model Armor ayuda a prevenir posibles riesgos y garantiza prácticas de IA responsable.

Para rechazar solicitudes inapropiadas antes de que lleguen al subsistema de entrega, puedes adjuntar Model Armor al balanceador de cargas.

Esta arquitectura usa los Controles del servicio de VPC, que ayudan a evitar el robo de datos no autorizado.

Este diseño utiliza principios de seguridad establecidos para proteger tus cargas de trabajo de RAG. Para conocer los principios y las recomendaciones de seguridad específicos de las cargas de trabajo de IA y AA, consulta la perspectiva de IA y AA: seguridad en Well-Architected Framework.

Optimización de costos

Para conocer los principios y las recomendaciones de optimización de costos específicos para las cargas de trabajo de IA y AA, consulta Perspectiva de IA y AA: Optimización de costos en el Framework de Well-Architected.

Optimización del rendimiento

Si deseas conocer los principios y las recomendaciones de optimización del rendimiento específicos para las cargas de trabajo de IA y AA, consulta Perspectiva de IA y AA: Optimización del rendimiento en Well-Architected Framework.

Implementación

En esta sección, se describen los pasos para crear tu aplicación:

  1. Identifica la región para las cargas de trabajo.
  2. Crear Google Cloud proyectos y redes de VPC
  3. Conecta tus redes externas a tu red de VPC de enrutamiento.
  4. Vincula redes con Network Connectivity Center.
  5. Identifica los componentes para la implementación de RAG y crea cuentas de servicio.
  6. Configura los Controles del servicio de VPC.
  7. Compila el subsistema de transferencia de datos.
  8. Compila el subsistema de entrega.
  9. Compila el subsistema de frontend.
  10. Haz que se pueda acceder a tu aplicación desde Internet.

Identifica la región para las cargas de trabajo

En general, te conviene colocar la conectividad, las subredes de VPC y las cargas de trabajo cerca de tus redes locales o de otros clientes de la nube. Google CloudSi quieres obtener más información para elegir una región para tus cargas de trabajo, consulta el Google Cloud Selector de regiones y las Prácticas recomendadas para seleccionar regiones de Compute Engine.

Crea Google Cloud proyectos y redes de VPC

Si tu organización ya configuró la Red entre nubes para aplicaciones distribuidas, ya deberían existir tu proyecto de enrutamiento y tu red de VPC de enrutamiento.

Crea los Google Cloud proyectos y una red de VPC en el siguiente orden:

  1. Crea el proyecto de enrutamiento.
  2. Crea la red de VPC de enrutamiento con el Acceso privado a Google habilitado.
  3. Crea el proyecto de RAG.
  4. Promueve el proyecto de RAG para que sea un proyecto host de VPC compartida.
  5. Crea el proyecto de servicio de transferencia de datos.
  6. Crea el proyecto de servicio de entrega.
  7. Crea el proyecto de servicio de frontend.
  8. Crea la red de RAG de VPC compartida con el Acceso privado a Google habilitado.
  9. Otorga permiso a los proyectos de servicio para usar la red de RAG.

Conecta tus redes externas a tu red de VPC de enrutamiento

Puedes omitir este paso si ya configuraste Cross-Cloud Network para aplicaciones distribuidas.

Configura la conectividad entre las redes externas y tu red de enrutamiento. Para comprender las tecnologías pertinentes, consulta Conectividad híbrida y externa. Para obtener orientación sobre cómo elegir un producto de conectividad, consulta Elige un producto de Conectividad de red.

  1. En el proyecto de enrutamiento, crea un concentrador de Network Connectivity Center.
  2. Agrega las conexiones de Cloud Interconnect como radios de adjunto de VLAN o agrega las conexiones de Cloud VPN como radios de VPN.
  3. Agrega la red de VPC de RAG y la red de VPC de enrutamiento al concentrador como radios de VPC.

Identifica los componentes para la implementación de RAG y crea cuentas de servicio

  1. Elige una implementación de RAG y haz una lista de los componentes que necesita.
  2. Identifica el acceso que necesita cada componente.
  3. Para cada componente, crea una cuenta de servicio con los permisos adecuados. En algunos casos, esto significa que le otorgas permiso a un componente para leer o escribir en un proyecto de servicio diferente.

Este diseño supone que usas un bucket de Cloud Storage como componente de entrada de datos y que usas un balanceador de cargas en tu frontend de inferencia. El resto del diseño puede variar según sea necesario.

Lo ideal es que cada componente se ejecute como su propia cuenta de servicio. Asegúrate de que cada componente tenga solo los permisos mínimos de IAM necesarios para realizar sus funciones requeridas. Por ejemplo, un trabajo de Cloud Run en el subsistema de transferencia de datos necesita leer desde el bucket de entrada de Cloud Storage, pero no necesita escribir en él. En este ejemplo, el proyecto de servicio que ejecuta el trabajo de Cloud Run debe tener permiso para solo leer desde el bucket, sin permiso de escritura.

Configurar los Controles del servicio de VPC

  1. Crea un perímetro de Controles del servicio de VPC alrededor de tu implementación.
  2. Configura reglas de acceso.

Compila el subsistema de transferencia de datos

El subsistema de transferencia de datos toma los datos sin procesar de los ingenieros de datos y los procesa para que los use el subsistema de entrega.

  1. En el proyecto del servicio de transferencia de datos, crea un bucket de Cloud Storage.
  2. En la red de VPC de enrutamiento, crea un extremo regional de Private Service Connect y conéctalo al bucket.
  3. En la red externa, agrega una entrada de DNS para el extremo con la dirección IP y la URL que se generaron en el paso anterior.
  4. Actualiza las reglas de firewall de red externa para permitir el acceso a la dirección IP del extremo.
  5. En el proyecto de servicio de transferencia de datos, desarrolla el resto de la canalización de transferencia según la arquitectura de RAG que elegiste.
  6. Otorga permisos de IAM para que el recurso pertinente en la canalización de transferencia pueda acceder al modelo que produce los vectores.
  7. Otorga permisos de IAM para que el recurso pertinente en la canalización de transferencia pueda escribir en el almacén de datos vectoriales.

Compila el subsistema de entrega

  1. En el proyecto de servicio de entrega, compila tu canalización de entrega.
  2. Otorga permisos de IAM para que la cuenta de servicio del sistema de frontend pueda acceder al resultado del subsistema de procesamiento.

Compila el subsistema de frontend

En esta sección, se supone que usas un balanceador de cargas de aplicaciones interno regional que utiliza un NEG sin servidores frente a Cloud Run. Sin embargo, puedes usar un balanceador de cargas y un backend diferentes.

  1. Crea el código para tu sistema de frontend.
  2. En el proyecto de servicio de frontend, implementa tu sistema de frontend balanceado por cargas, que incluye el paso opcional para configurar una política de seguridad de Cloud Armor.
  3. Configura Cloud Router en la red de VPC de enrutamiento para reenviar rutas desde la red de VPC del RAG a los routers locales. Esta configuración permite que los clientes lleguen al balanceador de cargas.
  4. En tu red externa, configura las reglas de firewall para que se pueda acceder al frontend del balanceador de cargas desde tu red externa.
  5. En tu red externa, actualiza el DNS para que apunte a la regla de reenvío del balanceador de cargas.

Haz que se pueda acceder a tu aplicación desde Internet

Esta sección es opcional.

Este diseño supone que deseas que se pueda acceder a tu servicio solo desde tu red externa, pero también puedes hacer que se pueda acceder a él desde Internet.

Para que se pueda acceder al servicio desde Internet, completa los siguientes pasos:

  1. Crea un balanceador de cargas de aplicaciones externo regional que apunte al mismo backend al que apunta el balanceador de cargas interno. Completa el paso opcional para configurar una política de seguridad de Cloud Armor.
  2. Actualiza los Controles del servicio de VPC para permitir que los clientes del servicio accedan a los servicios de backend.

¿Qué sigue?

Colaboradores

Autores:

  • Deepak Michael | Ingeniero de Atención al cliente especializado en herramientas de redes
  • Mark Schlagenhauf | Escritor técnico, Herramientas de redes

Otros colaboradores: