개요
Virtual Waiting Room on AWS 솔루션은 대량 트래픽 버스트 발생 시 웹사이트로 수신되는 사용자 요청을 버퍼링할 수 있습니다. 이를 통해 웹사이트에 대한 수신 트래픽을 임시로 오프로드하는 클라우드 인프라가 생성되며, 가상 대기실을 사용자 지정하고 통합할 수 있습니다. 대기실은 웹사이트 방문자의 대기 영역으로 작동하여, 용량이 충분할 때 트래픽이 통과되도록 합니다.
웹사이트에 트래픽 급증을 발생시키는 대규모 이벤트에는 다음과 같은 경우가 있습니다.
- 콘서트 또는 스포츠 행사 티켓 판매 시작
- 블랙 프라이데이와 같은 특별 할인 또는 대량 소매 할인 행사
- 대형 마케팅 발표가 동반된 신규 제품 출시
- 온라인 시험 및 수업의 시험 접속 및 수업 출석
- 진료 예약 슬롯 해제
- 계정 생성 및 결제가 필요한 고객 직거래형 서비스 출시
장점
사용자는 대기실에 들어올 때 대기열 번호를 할당받습니다. 이렇게 하여 대기열에서 사용자의 위치가 유지되며, 순서가 돌아와야 대기실을 나가서 대상 사이트에 들어가게 됩니다.
이 솔루션은 대규모 이벤트의 트래픽을 제어할 수 있습니다. 트래픽 급증이 시스템에 과부하를 야기하지 않고 고객은 정상적으로 작동 및 실행되는 웹사이트를 사용할 수 있습니다.
이 솔루션은 서명된 시간 제한 JSON 웹 토큰(JWT)을 생성해, 요청 처리 전에 사용자가 대기실을 통과했는지를 다운스트림 시스템의 API가 검증하도록 합니다.
솔루션의 OpenID 어댑터는 기존 웹 호스팅 소프트웨어와 함께 사용할 수 있는 OpenID Connect(OIDC) 호환 API 세트를 제공하여 OIDC 자격 증명 공급자를 지원합니다.
이 솔루션은 대기실 샘플 웹사이트를 제공하여 기본적인 엔드 투 엔드 대기실 솔루션을 사용자 지정을 위한 예시로 보여줍니다.
기술 세부 정보
구현 가이드 및 함께 제공되는 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 요청을 검증 및 처리하고 적합한 응답을 반환할 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) 역할 및 Lambda 함수로 구성되어 API 호출에 대한 서명을 검증하는 권한 부여자 구성 요소. 권한 부여자가 사용자의 API를 보호하기 위해서는 API Gateway를 사용할 수만 있으면 됩니다.
11단계(선택 사항)
두 종류의 인렛 전략을 지원하는 Amazon Simple Notification Service(SNS), CloudWatch 및 Lambda 함수
12단계(선택 사항)
API Gateway 및 Lambda 함수가 포함되어 OpenID 제공자가 웹사이트에 대해 사용자를 인증할 수 있도록 하는 OpenID 어댑터 구성 요소. 이 구성 요소에 대한 대기실 페이지용 Amazon Simple Storage Service(S3) 버킷이 포함된 CloudFront 배포
13단계(선택 사항)
선택적 대기실 샘플 웹 애플리케이션용 S3 오리진 버킷이 포함된 CloudFront 배포