Información general
La solución de la sala de espera virtual de AWS permite regular las solicitudes de los usuarios que llegan al sitio web durante intensos picos de tráfico. Crea una infraestructura en la nube diseñada para liberar temporalmente la carga del tráfico de entrada al sitio web, a la vez que ofrece opciones para personalizar e integrar una sala de espera virtual. La sala funciona como una zona de espera para quienes visitan el sitio web y permite el paso del tráfico cuando hay suficiente capacidad.
Algunos ejemplos de eventos a gran escala que podrían provocar un aumento del tráfico en el sitio web son:
- Inicio de la venta de entradas para conciertos o eventos deportivos
- Remate de inventario u otra venta al por menor de gran tamaño, como el Black Friday
- Lanzamiento de un nuevo producto tras una amplia campaña de marketing
- Acceso a exámenes y asistencia a clases para pruebas y lecciones en línea
- Disponibilidad de cupos para citas médicas
- Lanzamiento de un nuevo servicio directo al cliente que requiere la creación de una cuenta y pagos
Beneficios
A los usuarios se les asigna un número de cola cuando entran en la sala de espera. Mantienen su posición en la cola y únicamente abandonan la sala de espera para ingresar al sitio de destino cuando es su turno.
Esta solución puede controlar el tráfico durante eventos a gran escala. Los picos de tráfico no saturarán los sistemas, con lo que el sitio web se mantendrá en funcionamiento para los clientes.
La solución genera tokens web JSON (JWT) firmados y con límite de tiempo, que permiten a las API del sistema descendente validar que los usuarios han pasado correctamente por la sala de espera antes de procesar cualquier solicitud.
El adaptador OpenID de la solución ofrece un conjunto de API compatibles con OpenID Connect (OIDC) que se pueden utilizar con el software de alojamiento web existente que admite proveedores de identidad de OIDC.
La solución proporciona un sitio web de muestra de sala de espera para demostrar una solución mínima y completa de sala de espera para personalizar.
Detalles técnicos
Puede implementar automáticamente esta arquitectura con la guía de implementación y la plantilla de AWS CloudFormation adjunta
Paso 1
La plantilla de AWS CloudFormation implementa una distribución de Amazon CloudFront para entregar llamadas a la API pública al cliente.
Paso 2
Recursos de la API pública de Amazon API Gateway para procesar las solicitudes de cola de la sala de espera virtual, realizar un seguimiento de las posiciones en la cola y admitir la validación de los tokens que permiten el acceso al sitio web de destino.
Paso 3
Una cola de Amazon Simple Queue Service (Amazon SQS) para regular el tráfico hacia la función de AWS Lambda que procesa los mensajes de la cola. En lugar de invocar la función de Lambda para cada solicitud, la cola de Amazon SQS agrupa por lotes las ráfagas de solicitudes entrantes.
Paso 4
Recursos de la API privada de API Gateway para admitir las funciones administrativas.
Paso 5
Funciones de Lambda para validar y procesar solicitudes de API públicas y privadas y devolver las respuestas adecuadas.
Paso 6
Amazon Virtual Private Cloud (Amazon VPC) para alojar las funciones de Lambda que interactúan directamente con el clúster de Amazon ElastiCache para Redis. Los puntos de conexión de VPC permiten que las funciones de Lambda en la VPC se comuniquen con los servicios de la solución.
Paso 7
Una regla de Amazon CloudWatch para invocar una función de Lambda que funciona con un bus de eventos personalizado de Amazon EventBridge a fin de transmitir periódicamente actualizaciones de estado.
Paso 8
Tablas de Amazon DynamoDB para almacenar datos sobre el token, la posición en la cola y el contador de servicio.
Paso 9
AWS Secrets Manager para almacenar claves para operaciones de tokens y otra información confidencial.
Paso 10 (opcional)
Componente autorizador que consiste en un rol de AWS Identity and Access Management (IAM) y una función de Lambda para validar las firmas correspondientes a las llamadas a la API. El único requisito para que el autorizador proteja la API es usar API Gateway.
Paso 11 (opcional)
Amazon Simple Notification Service (Amazon SNS), CloudWatch y funciones de Lambda para admitir dos estrategias de entrada.
Paso 12 (opcional)
Componente adaptador de OpenID con API Gateway y funciones de Lambda para permitir que un proveedor de OpenID autentique a los usuarios en el sitio web. Distribución de CloudFront con un bucket de Amazon Simple Storage Service (Amazon S3) para la página de la sala de espera correspondiente a este componente.
Paso 13 (opcional)
Una distribución de CloudFront con un bucket de origen de S3 para la aplicación web opcional de la sala de espera de muestra.
- Fecha de publicación