

# アーキテクチャの概要
<a name="architecture-overview"></a>

 デフォルトのパラメータを使用して必須テンプレートとオプションのテンプレートでこのソリューションをデプロイすると、AWS クラウドに以下の環境が構築されます。

![AWS Virtual Waiting Room のアーキテクチャ図](http://docs.aws.amazon.com/ja_jp/solutions/latest/virtual-waiting-room-on-aws/images/virtual-waiting-room-diagram.png)


 AWS CloudFormation テンプレートは次のインフラストラクチャをデプロイします。

1.  クライアントにパブリック API コールを配信する [Amazon CloudFront](https://aws.amazon.com/cloudfront/) ディストリビューション。

1.  仮想待合室からのキューリクエストを処理し、キューの位置を追跡して、ターゲットウェブサイトへのアクセスを許可するトークンの検証をサポートする [Amazon API Gateway](https://aws.amazon.com/api-gateway/) のパブリック API リソース。

1.  キューメッセージを処理する [AWS Lambda](https://aws.amazon.com/lambda/) 関数へのトラフィックを調整する [Amazon Simple Queue Service](https://aws.amazon.com/sqs/) (Amazon SQS) キュー。この SQS キューは、リクエストごとに Lambda 関数を呼び出す代わりに、受信したリクエストのバーストをバッチ処理します。

1.  管理機能をサポートする API Gateway のプライベート API リソース。

1.  パブリック API リクエストとプライベート API リクエストを検証および処理し、適切なレスポンスを返す Lambda 関数。

1.  [Elasticache (Redis OSS)](https://aws.amazon.com/elasticache/redis/) クラスターと直接やり取りする Lambda 関数をホストする [Amazon Virtual Private Cloud](https://aws.amazon.com/vpc/) (VPC)。VPC エンドポイントにより、VPC 内の Lambda 関数はソリューション内のサービスと通信できます。さらに、NAT ゲートウェイにより、VPC の Lambda 関数は CloudFront エンドポイントに接続し、必要に応じてキャッシュを無効にできます。

1.  カスタムの [Amazon EventBridge](https://aws.amazon.com/eventbridge/) バスと連携して、ステータスアップデートを定期的にブロードキャストする Lambda 関数を呼び出す [Amazon CloudWatch](https://aws.amazon.com/cloudwatch/) ルール。

1.  トークン、キューの位置、サービングカウンターのデータを保存する [Amazon DynamoDB](https://aws.amazon.com/dynamodb/) テーブル。

1.  トークンオペレーション用のキーやその他の機密データを保存する [AWS Secrets Manager](https://aws.amazon.com/secrets-manager/)。

1. (オプション) API Gateway で使用する [AWS Identity and Access Management](https://aws.amazon.com/iam/) (IAM) ロールと Lambda オーソライザー関数で構成されるオーソライザーコンポーネント。

1. (オプション) 2 つのインレットストラテジーをサポートする [Amazon Simple Notification Service](https://aws.amazon.com/sns/) (Amazon SNS)、CloudWatch、Lambda 関数。

1. (オプション) OpenID プロバイダーがウェブサイトに対してユーザーを認証できるようにする API Gateway と Lambda 関数を備えた OpenID アダプターコンポーネント。このコンポーネントの待合室ページ用の [Amazon Simple Storage Service](https://aws.amazon.com/s3/) (Amazon S3) バケットを含む CloudFront ディストリビューション。

1. (オプション) サンプル待合室ウェブアプリケーション用の Amazon S3 オリジンバケットを含む CloudFront ディストリビューション。