Creación de una aplicación web sin servidor con capacidades de IA con AWS Amplify
Este artículo es una guía profesional para crear una aplicación web sin servidor utilizando AWS Amplify y capacidades de inteligencia artificial.

Creación de una aplicación web sin servidor con capacidades de IA con AWS Amplify

Este artículo le enseña a crear una aplicación web sin servidor que aprovecha las capacidades de IA generativa mediante AWS Amplify y otros servicios de AWS. Analiza la seguridad, la optimización de costos y la selección de la ubicación del centro de datos.
0 acciones
0
0
0
0

 

Arquitectura general

Esta guía proporciona una arquitectura sugerida para crear una aplicación web. Sin servidor que aprovecha las capacidades de IA generativa. El objetivo es combinar AWS Amplify para el front-end y CI/CD con servicios sin servidor de AWS para el back-end para crear una solución escalable, segura y fácil de mantener.

  • Interfaz: React o Next.js alojado en Alojamiento de AWS Amplify +CDN (CloudFront).
  • Autenticación: Amazon Cognito (registro/inicio de sesión + federación).
  • API: API Gateway (REST/HTTP) o AppSync (GraphQL) que enruta solicitudes a Lambda.
  • Lógica generativa: Lambda (Node/Python) que envía la solicitud al modelo generativo: el modelo puede ser administrado (OpenAI/Hugging Face/Bedrock) o auto hospedado en un servidor GPU con Triton/TorchServe.
  • Almacenamiento: S3 para archivos, DynamoDB o RDS para metadatos/sesiones.
  • Seguridad y Red: WAF, Shield Advanced, IAM con privilegios mínimos, Secrets Manager.
  • CDN y almacenamiento en caché: CloudFront + Lambda@Edge o encabezados de almacenamiento en caché para mejorar la latencia y reducir costos.

 

Pasos prácticos para crear una aplicación (paso a paso)

 

1. Preparación del entorno de desarrollo

Instala las herramientas básicas que necesitas: Node.js, npm y la CLI de AWS Amplify. Luego, clona el repositorio del proyecto e instala las dependencias.

curl -sL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs
npm install -g @aws-amplify/cli
git clone <repo>
cd <repo>
npm install

Configure la AWS CLI y Amplify e inicialice el proyecto Amplify:

aws configure
amplify configure
amplify init

 

2. Añadir autenticación con Cognito

Con Amplify, puedes añadir autenticación rápidamente. Las opciones incluyen configuración predeterminada o personalización manual. Usa la federación con Google/Facebook si es necesario y habilita las reglas de contraseña, la autenticación multifactor (MFA) y la verificación de correo electrónico.

amplify add auth
# choose default or manual configuration
amplify push

 

3. Cree una API sin servidor (REST o GraphQL)

Agregue API con Amplify; puede elegir REST con Lambda o GraphQL con AppSync + DynamoDB.

amplify add api
# choose REST and Lambda function template
amplify push

O para GraphQL:

amplify add api
# choose GraphQL + DynamoDB
amplify push

 

4. Escribir una Lambda que interactúe con el modelo de IA Generativa

Lambda actúa como interfaz entre el frontend y el modelo generativo. Si utiliza un servicio externo como OpenAI, mantenga la clave API segura y envíe la solicitud a través de Lambda.

const fetch = require('node-fetch');
exports.handler = async (event) => {
  const prompt = JSON.parse(event.body).prompt;
  const apiKey = process.env.OPENAI_API_KEY;
  const res = await fetch('https://api.openai.com/v1/chat/completions', {
    method: 'POST',
    headers: { 'Authorization': `Bearer ${apiKey}`, 'Content-Type': 'application/json' },
    body: JSON.stringify({
      model: 'gpt-4o-mini',
      messages: [{ role: 'user', content: prompt }]
    })
  });
  const data = await res.json();
  return { statusCode: 200, body: JSON.stringify(data) };
};
[p class=”wp-block-paragraph”]Para cifrar la clave, utilice Administrador de secretos de AWS O bien, use variables de entorno con cifrado. Restrinja el rol de IAM de la función Lambda para que tenga acceso de solo lectura al secreto especificado.

Si aloja el modelo en su servidor GPU, Lambda o el servicio backend enviarán la solicitud a su punto final:

const res = await fetch('https://gpu.example.com/inference', {
  method: 'POST',
  headers: { 'Authorization': `Bearer ${process.env.MODEL_TOKEN}`, 'Content-Type': 'application/json' },
  body: JSON.stringify({ inputs: prompt })
});

 

5. Implementación de transmisión/tiempo real (opcional)

Para respuestas largas o tokens de streaming, use WebSocket o eventos enviados por el servidor. En AWS, puede usar suscripciones de API Gateway WebSocket o AppSync.

 

6. Hospedaje frontend con Amplify Hosting y CI/CD

Amplify Hosting le permite iniciar CI/CD desde un repositorio Git; cada envío a una rama específica activa una compilación y una implementación automáticas.

amplify hosting add
amplify publish

 

Políticas de seguridad, gestión de claves y IAM

 

Gestión de secretos

De Administrador de secretos de AWS Se utiliza para almacenar claves de API y secretos. El rol de IAM para Lambda solo debe incluir acceso de lectura al secreto especificado.

 

Políticas de IAM de muestra

Un ejemplo de política mínima que permite a Lambda leer un secreto específico:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "secretsmanager:GetSecretValue",
      "Resource": "arn:aws:secretsmanager:region:acct-id:secret:myOpenAIKey"
    }
  ]
}

 

Protección contra ataques y seguridad del contenido

Para proteger la aplicación:

  • Activación AWS WAF Para bloquear solicitudes maliciosas.
  • Uso de Escudo de AWS (Estándar por defecto, para mayor protección que Shield Advanced).
  • A nivel de API, aproveche las limitaciones de velocidad y los planes de uso en API Gateway.
  • Moderación de contenido Para obtener resultados productivos: revise y filtre las respuestas con modelos de moderación (OpenAI/HuggingFace).

 

Elegir la ubicación de un centro de datos y comparar la latencia y el cumplimiento

Elegir la región correcta es importante según la distribución de usuarios y los requisitos legales. Consejos comunes:

  • nosotros-este-1: Rápido a América del Norte y costos más bajos para servicios básicos.
  • eu-oeste-1: Adecuado para Europa con leyes de privacidad más estrictas.
  • ap-sureste-1 / ap-noreste-1: Regiones asiáticas para usuarios de ese continente.

Para usuarios distribuidos, utilice CDN (CloudFront) y distribuya el modelo en múltiples regiones o inferencia de borde.

Si es necesario Latencia muy baja O bien, si tiene control total sobre los datos, puede alojar el modelo en el servidor GPU de la empresa en más de 85 ubicaciones, lo que proporciona los beneficios de latencia reducida, control de datos y capacidades anti-DDoS de hardware.

 

Alojamiento de modelos: GPU en la nube vs. API administrada (ventajas y desventajas)

Comparación general entre servicios administrados y autoalojados en GPU:

  • Administrado (OpenAI/Bedrock/Hugging Face):
    • Ventajas: Mantenimiento cero, actualizaciones sencillas del modelo, acceso rápido.
    • Desventajas: Costo por solicitud, preocupaciones de privacidad.
  • Autoalojado en GPU:
    • Ventajas: Costo fijo del servidor, control total, configuraciones dedicadas, uso de nuestros servidores gráficos para renderizado e IA.
    • Desventajas: Necesidad de gestión y monitorización, escalabilidad manual.

Recomendación: Utilice Managed para PoC; migre al servidor GPU para necesidades de alto volumen y baja latencia.

 

Optimización del rendimiento y de los costes

  • Extensión: Almacene en caché las salidas no confidenciales en CloudFront o Redis/ElastiCache.
  • Selección de modelo: Utilice el modelo más pequeño posible para las necesidades reales (destiladas o cuantificadas).
  • Límite Lambda: Para inferencias largas, utilice ECS/EKS o un servidor GPU, ya que Lambda tiene limitaciones de tiempo/CPU.
  • Escucha: CloudWatch para registros y métricas, X-Ray para seguimiento.
  • Ahorro de costes: Reserve o utilice instancias reservadas o servidores GPU dedicados para inferencia a largo plazo.

 

Ejemplo de configuración del proxy inverso de Nginx a Triton en la GPU

Si el modelo se ejecuta en un servidor GPU, puede configurar un proxy inverso con Nginx:

server {
    listen 443 ssl;
    server_name ai.example.com;
    location / {
      proxy_pass http://127.0.0.1:8000;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
    }
  }

 

Consejos finales de seguridad y privacidad

Algunos consejos prácticos para proteger los datos y cumplir la ley:

  • Registro sensible: Evite almacenar mensajes confidenciales directamente o cifrarlos.
  • Retención de datos: Revise los requisitos de GDPR/PDPA; utilice ubicaciones específicas (residencia de datos) si es necesario.
  • Entrada/Salida: Utilice la validación y la desinfección para evitar la inyección rápida y la exfiltración de datos.

 

Ejemplos de aplicaciones y escenarios

  • Aplicación de creación de contenidos y edición de textos con sugerencias y resúmenes.
  • Chatbot inteligente con contexto de sesión almacenado en DynamoDB.
  • Herramienta de codificación inteligente para desarrolladores con sugerencias de autocompletar y refactorización.
  • Herramientas de renderizado híbrido de IA que utilizan el servidor GPU para procesar imágenes y vídeos.

 

Consejos prácticos para instalarse en nuestra empresa (con más de 85 ubicaciones)

Consejos prácticos para reducir la latencia y optimizar la experiencia del usuario a nivel global:

  • Para los usuarios de Europa, Asia o América Latina, utilice ubicaciones cercanas para reducir la latencia p99.
  • Para comerciar y jugar, utilice un VPS dedicado para comerciar y jugar con Anti-DDoS y BGP Anycast para reducir el ping y la pérdida de paquetes.
  • Utilice GPU Cloud para entrenar e inferir modelos grandes para optimizar los costos y la latencia.
  • Aprovecha la red y CDN para distribuir contenidos y reducir los tiempos de carga.

 

Resumen rápido previo al lanzamiento y lista de verificación

  • Amplify Hosting y CI están activos.
  • Cognito está configurado para autenticación y MFA está habilitado si es necesario.
  • Lambda segura con acceso mínimo y Secrets Manager configurado.
  • Se aplican WAF y limitación de velocidad a la API.
  • Se debe habilitar la CDN y el almacenamiento en caché para reducir el uso y la latencia.
  • La ubicación adecuada se selecciona en función de los usuarios objetivo y las necesidades legales.
  • Se configura un programa de monitoreo y alerta (CloudWatch + Slack/Email).
  • Se deben realizar pruebas de carga y penetración antes del lanzamiento público.

 

Opciones de soporte técnico y consultoría

Para ayudarte a elegir la mejor combinación de región, GPU y red, puedes usar planes de hosting y servidores gráficos en más de 85 ubicaciones. El equipo técnico puede asesorarte sobre la migración de modelos y la configuración de CI/CD.

 

Preguntas frecuentes

También te puede gustar