Présentation
La solution Virtual Waiting Room sur AWS facilite la mise en mémoire tampon des demandes d'utilisateur entrantes de votre site Web lors de grands pics de trafic. Elle crée une infrastructure cloud conçue pour décharger temporairement le trafic de votre site web et propose des options pour personnaliser et intégrer une salle d'attente virtuelle. La salle d'attente fait office de zone de rétention pour les visiteurs de votre site web et laisse passer le trafic lorsque la capacité le permet.
Voici quelques exemples d'événements de grande ampleur où peut survenir un pic de trafic sur un site web :
- Le lancement des ventes de billets pour un concert ou un événement sportif
- Les soldes ou autres grandes ventes au détail tels que le Black Friday
- Le lancement d'un nouveau produit avec de larges campagnes marketing
- L'accès aux examens et la participation aux classes pour les examens et les cours en ligne
- L'ouverture de créneaux horaires pour des rendez-vous médicaux
- Le lancement d'un nouveau service B2C qui requière la création d'un compte et des paiements
Avantages
Un numéro de file d'attente est attribué aux utilisateurs dès qu'ils entrent dans la salle d'attente. Ils conservent leur position dans la file d'attente et ne quitte la salle d'attente pour entrer sur le site cible que lorsque vient leur tour.
La solution peut contrôler le trafic des événements à grande échelle. Grâce à elle, les pics de trafic ne surchargeront pas vos systèmes, ce qui vous permettra de garantir le fonctionnement de votre site web pour vos clients.
La solution génère des jetons JSON web (JWT) signés et à durée limitée, qui permettent aux API du système en aval de valider que les utilisateurs sont bien passées par la salle d'attente avant le traitement des demandes.
L'adaptateur OpenID de la solution offre un ensemble d'API compatibles avec OpenID Connect (OIDC) qui peuvent être utilisées avec le logiciel d'hébergement web existant prenant en charge les fournisseurs d'identité OIDC.
La solution fournit un site Web d'exemple de salle d'attente pour présenter une solution minimale complète de salle d'attente à personnaliser.
Détails techniques
Vous pouvez déployer automatiquement cette architecture à l'aide du guide d'implémentation et du modèle AWS CloudFormation qui l'accompagne
Étape 1
Le modèle AWS CloudFormation déploie une distribution Amazon CloudFront pour diffuser des appels d'API publiques pour le client.
Étape 2
Des ressources d'API publiques Amazon API Gateway pour traiter les demandes de file d'attente de la salle d'attente virtuelle, suivre les places de la file d'attente et prendre en charge la validation des jetons qui autorisent l'accès au site Web cible.
Étape 3
Une file d'attente Amazon Simple Queue Service (Amazon SQS) pour réguler le trafic vers la fonction AWS Lambda qui traite les messages de la file d'attente. Au lieu d'invoquer la fonction Lambda pour chaque demande, la file d'attente Amazon SQS regroupe les pics de demandes entrants.
Étape 4
Ressources d'API privées d'API Gateway pour prendre en charge les fonctions d'administration.
Étape 5
Des fonctions Lambda pour valider et traiter les demandes d'API publiques et privées et renvoyer les réponses appropriées.
Étape 6
Un Amazon Virtual Private Cloud (VPC) Amazon pour héberger les fonctions Lambda qui interagissent directement avec le cluster Amazon ElastiCache for Redis. Les points de terminaison d'un VPC permettent aux fonctions Lambda du VPC de communiquer avec les services au sein de la solution.
Étape 7
Une règle Amazon CloudWatch pour invoquer une fonction Lambda qui utilise un bus personnalisé Amazon EventBridge pour diffuser régulièrement les mises à jour de statut.
Étape 8
Les tables Amazon DynamoDB stockent les données relatives aux jetons, à la position dans la file d'attente et aux compteurs de service.
Étape 9
AWS Secrets Manager pour stocker les clés des opérations des jetons et d'autres données sensibles.
Étape 10 (facultative)
Un composant d'autorisation comprenant un rôle de gestion des identités et des accès AWS (IAM) et une fonction Lambda permettant de valider les signatures de vos appels d'API. Pour protéger votre API, la fonction d'autorisation exige uniquement que vous utilisiez une API Gateway.
Étape 11 (facultative)
Amazon Simple Notification Service (Amazon SNS), CloudWatch et des fonctions Lambda pour prendre en charge deux stratégies d'entrée.
Étape 12 (facultative)
Un composant d'adaptateur OpenID avec une API Gateway et les fonctions Lambda pour permettre à un fournisseur OpenID d'authentifier les utilisateurs sur votre site Web. Une distribution CloudFront avec un compartiment Amazon Simple Storage Service (Amazon S3) pour la page de la salle d'attente pour ce composant.
Étape 13 (facultative)
Une distribution CloudFront avec un compartiment d'origine S3 pour l'application Web de l'exemple facultatif de salle d'attente.
- Date de publication