概要
Virtual Waiting Room on AWS ソリューションは、トラフィックが急増しているときにウェブサイトへの着信ユーザーリクエストをバッファリングするのに役立ちます。着信トラフィックを一時的にウェブサイトにオフロードするように設計されたクラウドインフラストラクチャが作成され、仮想待合室をカスタマイズおよび統合するためのオプションが提供されます。待合室は、ウェブサイトへの訪問者の待機場として機能し、十分な容量があるときにトラフィックが通過することを許可します。
ウェブサイトのトラフィックの急増を引き起こす可能性のある大規模なイベントの例は以下のとおりです。
- コンサートやスポーツイベントのチケットの販売開始
- 特売や他の大規模なセール (ブラックフライデーなど)
- 多くの人々に向けたマーケティング関連の発表を伴う新製品のリリース
- オンラインの試験や講義のための試験へのアクセスやクラスへの出席
- 診療予約枠の解放
- アカウントの作成と支払いを必要とする新しい D2C サービスの開始
利点
ユーザーには、待合室に入る際にキュー番号が割り当てられます。これらのユーザーはキューで自らの位置に留まり、順番が来たときにのみ待合室を出てターゲットサイトに入ります。
このソリューションは、大規模なイベントのトラフィックを制御できます。トラフィックの急増によってシステムに不具合は発生せず、顧客のためにウェブサイトの稼働状態は維持されます。
このソリューションは、署名された時間制限のある JSON ウェブトークン (JWT) を生成します。これにより、ダウンストリームシステムの API は、リクエストを処理する前にユーザーが待合室を正常に通過したことを検証できます。
このソリューションの OpenID アダプターには、OIDC ID プロバイダーをサポートする既存のウェブホスティングソフトウェアで使用できる一連の OpenID Connect (OIDC) 互換 API が用意されています。
このソリューションは、サンプル待合室のウェブサイトを提供し、カスタマイズするための最小限のエンドツーエンドの待合室ソリューションを示します。
技術的な詳細情報
このアーキテクチャは、実装ガイドと、付属の AWS CloudFormation テンプレートを使用して自動的にデプロイできます
ステップ 1
AWS CloudFormation テンプレートは、クライアントのパブリック API コールを配信するために、Amazon CloudFront ディストリビューションをデプロイします。
ステップ 2
仮想待合室からのキューリクエストを処理し、キューの位置を追跡し、ターゲットウェブサイトへのアクセスを許可するトークンの検証をサポートする Amazon API Gateway パブリック API リソース。
ステップ 3
キューメッセージを処理する AWS Lambda 関数へのトラフィックを規制する Amazon Simple Queue Service (Amazon SQS) キュー。各リクエストについて Lambda 関数を呼び出す代わりに、急増する着信リクエストは Amazon SQS キューによってバッチ処理されます。
ステップ 4
管理機能をサポートする API Gateway プライベート API リソース。
ステップ 5
パブリック API リクエストとプライベート API リクエストを検証および処理し、適切な応答を返す Lambda 関数。
ステップ 6
Amazon ElastiCache for Redis クラスターと直接やり取りする Lambda 関数をホストする Amazon Virtual Private Cloud (Amazon VPC)。 VPC エンドポイントは、VPC の Lambda 関数がソリューション内のサービスと通信できるようにします。
ステップ 7
カスタム Amazon EventBridge バスと連携してステータスアップデートを定期的にブロードキャストする Lambda 関数を呼び出す Amazon CloudWatch ルール。
ステップ 8
トークン、キューの位置、およびサービングカウンターのデータを保存するための Amazon DynamoDB テーブル。
ステップ 9
トークンオペレーションやその他の機密データのキーを保存する AWS Secrets Manager。
ステップ 10 (オプション)
AWS Identity and Access Management (IAM) ロールと API コールのための署名を検証する Lambda 関数で構成されるオーソライザーコンポーネント。オーソライザーが API を保護するための唯一の要件は、API Gateway を使用することです。
ステップ 11 (オプション)
2 つのインレットストラテジーをサポートする Amazon Simple Notification Service (Amazon SNS)、CloudWatch、および Lambda 関数。
ステップ 12 (オプション)
API Gateway および Lambda 関数を使用した OpenID アダプターコンポーネント。OpenID プロバイダーがウェブサイトに対してユーザーを認証できるようにします。このコンポーネントの待合室ページ用の Amazon Simple Storage Service (Amazon S3) バケットを使用した CloudFront ディストリビューション。
ステップ 13 (オプション)
オプションのサンプル待合室のウェブアプリケーション用の S3 オリジンバケットを含む CloudFront ディストリビューション。