콘텐츠로 이동

접속 대기열

접속 대기열(대기실)은 출시, 티켓 판매, 갑작스러운 트래픽 급증 때도 사이트가 버티게 해 줍니다. Corvus는 서비스가 감당할 수 있는 만큼만 방문자를 들여보내고, 나머지는 순서대로 기다리게 합니다. 기다리는 방문자에게는 자기 순번이 표시된 페이지가 8개 언어로 보이며, 페이지는 저절로 새로 고쳐집니다.

접속 대기열

설정하기

  1. 접속 대기열을 열고 접속 대기열 추가를 누릅니다.
  2. 정원(아래 참고)을 정하고 저장합니다.
  3. 프록시 호스트를 열고 접속 대기열에서 대기열을 고릅니다. 접속 대기열 적용 경로를 /로 하면 사이트 전체를, /event로 하면 그 부분만 보호합니다.

프록시 호스트 입력 화면의 접속 대기열

설정 항목

접속 대기열 입력 화면

설정 의미
최대 동시 입장자 수 동시에 안에 들어와 있을 수 있는 방문자 수
초당 입장 제한 1초에 새로 들여보내는 방문자 수(0이면 자리가 나는 즉시)
무활동 만료 이 시간 동안 요청이 없으면 방문자의 자리를 반납합니다
입장 차례 유효 시간 차례가 온 방문자는 이 시간 안에 들어와야 합니다. 놓치더라도(예: 백그라운드 탭) 대기 이탈 판정 시간 안에 다시 확인하면 줄 맨 앞으로 돌아갑니다
대기 이탈 판정 이 시간 동안 응답이 없는 대기 방문자를 대기열에서 뺍니다(새 대기열의 기본값 5분: 휴대폰은 백그라운드 페이지를 멈추므로, 잠깐 다른 앱을 쓰고 돌아와도 순서가 유지됩니다)
캐시 DB 장애 시 모두 통과(fail-open, 가용성 우선) 또는 접속 차단(fail-closed, 정원 보호)
최대 대기 인원 이를 넘으면 새 방문자에게 나중에 다시 오라고 안내합니다(0이면 무제한)
IP당 대기열 진입 IP 하나가 1분에 새로 만들 수 있는 대기열 진입 수
입장권을 접속 네트워크에 묶기 같은 네트워크에서만 입장권이 통하므로 다른 사람과 공유할 수 없습니다. 네트워크를 바꾼 방문자는 다시 줄을 섭니다

정원 정하기

부하 테스트에서 서비스가 무리 없이 처리한 동시 사용자 수로 시작하고, 이벤트 중에는 대시보드의 입장과 대기 인원을 지켜보세요.

이벤트 중에는

  • 대시보드와 접속 대기열 페이지에서 입장·대기 인원을 실시간으로 볼 수 있습니다. 입장 수는 확보된 자리 수입니다. 차례가 와서 들어오는 중인 방문자와, 페이지를 닫지 않고 떠난 방문자(비활성 만료 시간이 지날 때까지)도 포함됩니다.
  • 긴급 해제는 모든 방문자를 바로 통과시킵니다. 예를 들어 급증이 끝났을 때 씁니다. 대기 페이지에 남아 있던 방문자도 자동으로 들어갑니다. 다시 켜기를 누르면 대기열이 다시 동작합니다.
  • 캐시 DB가 다시 시작되면(예: Corvus 업그레이드) 이미 입장한 방문자는 그대로 입장 상태를 유지하고, 대기열은 먼저 확인 요청을 보낸 방문자부터 다시 쌓입니다.
  • 대기 인원이 늘어나면 알림으로 알려 줄 수 있습니다.

API와 앱

보호 경로 아래의 페이지, 이미지, API 호출은 모두 입장권이 필요합니다. 브라우저는 대기 페이지에서 기다리는 동안 입장권(쿠키)을 자동으로 받습니다. fetch/XHR 호출이나 앱처럼 대기 페이지를 보여 줄 수 없는 요청은 기다리는 동안 Retry-After 헤더와 작은 JSON 본문이 담긴 429 Too Many Requests를 받습니다. 이 응답은 서버 오류로 집계되지 않습니다.

다른 사이트의 클라이언트

HTTPS에서는 대기열 쿠키가 SameSite=None이라, 다른 사이트를 거쳐 돌아오는 방문자(예: 결제 대행사의 3-D Secure 인증)도 순서를 유지합니다. 일반 HTTP에서는 SameSite=Lax라 이런 경우 다시 대기합니다. 다른 사이트의 웹 앱(예: app.example.org이 api.example.com을 호출)은 자격 증명을 함께 보내야 합니다(credentials: "include"). 그렇지 않다면 사람이 브라우저로 여는 경로만 보호하거나, API는 대기열이 없는 호스트에 두세요.