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