aws-solutions / virtual-waiting-room-on-aws

Virtual Waiting Room on AWS solution helps absorb and control incoming user requests to your website during an unusually large burst of traffic, usually due to a large-scale event.
Apache License 2.0
94 stars 29 forks source link
api-gateway cloudfront cloudwatch dynamodb elasticache lambda s3 vpc

🚀 Solution Landing Page | 📜 Solution Implementation Guide | 🚧 Feature request | 🐛 Bug Report

Note: If you want to use the solution without building from source, navigate to Solution Landing Page

Virtual Waiting Room on AWS

Site wrapper to absorb and control user traffic flowing into smaller web sites.

Prerequisites for Customization

Building distributable for customization

Running unit tests for customization


File Structure

├── deployment
│   ├── Dockerfile [ Used by docker_build script for building jwcrypto library ]
│   ├── virtual-waiting-room-on-aws-api-gateway-cw-logs-role.json   [ Base template for CloudWatch Logs role ] 
│   ├── virtual-waiting-room-on-aws-authorizers.json [ Base template for authorizers ]
│   ├── virtual-waiting-room-on-aws-getting-started.json [ Nested template for new users ]
│   ├── virtual-waiting-room-on-aws-openid.json    [ Base template for Open ID ]
│   ├── virtual-waiting-room-on-aws-sample-inlet-strategy.json   [ Base template for sample inlet strategy]
│   ├── virtual-waiting-room-on-aws-sample.json    [ Base template for sample site ]
│   ├── virtual-waiting-room-on-aws-swagger-private-api.json   [ Swagger file for private API ]
│   ├── virtual-waiting-room-on-aws-swagger-public-api.json    [ Swagger file for public API ]
│   ├── virtual-waiting-room-on-aws.json   [ Base template for core API ]
│   ├── build-s3-dist.sh    [ Script for building distributables and preparing the CloudFormation templates ]
│   ├── deploy.sh   [ Script for building distributables and preparing the CloudFormation templates ]
│   ├── docker_build.sh   [ Script for building jwcrypto library ]
│   ├── global-s3-assets  [ Directory for writing out CloudFormation during local build ]
│   ├── regional-s3-assets     [ Directory for writing out CloudFormation during local build ]
│   ├── requirements.txt    [ System requirements for local builds ]
│   └── run-unit-tests.sh   [ Script to run unit tests ]
├── docs
│   ├── developer-guide.md    [ Waiting room developer guide ]
│   ├── install-guide.md      [ Waiting room installation guide ]
│   ├── physical-view.drawio
│   ├── physical-view.jpg
│   ├── sequence-diagrams.drawio
│   └── software-architecture.md
└── source
    ├── control-panel    [ Source files for sample control panel ]
    ├── core-api    [ Source files for core API ]
    ├── core-api-authorizers-sample   [ Source files Authorizers ]
    ├── openid-waitingroom    [ Source files for Open ID ]
    ├── sample-inlet-strategies   [ Source files for inlet strategies ]
    ├── sample-waiting-room-site   [ Source files for sample waiting room ]
    ├── shared    [ Source files for shared library ]
    ├── token-authorizer    [ Source files for token authorizer ]
    └── tools   [ Source files for tools and helper scripts ]

Collection of operational metrics

This solution collects anonymized operational metrics to help AWS improve the quality of features of the solution. For more information, including how to disable this capability, please see the implementation guide.

External Contributors

@kght6123 for #232

License

Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. SPDX-License-Identifier: Apache-2.0