올리브영의 픽업서비스와 같은 내 주변 픽업, 해당 매장의 컨텐츠를 자체적으로 활용할 수 있는 프로모션 정보를 제공한 업스케일링 매출 방안을 제공하는 서비스 구축
(추가기능)단골매장, 쿠폰, 리뷰, 이동 거리 등 편의성 제공
도보 이동권의 최대 길이를 약 3Km로 가정, 이를 커버할 수 있는 GeoHash는 6자리
사업장은 골고루 퍼져 있지 않고 밀집되어있을 수 있다.
강남권 사업장 예시
DAU는 1억명, 등록된 사업장 수는 2억개
AWS 기반으로 고려한다.
[1단계] 시스템 사용량 추정
(1) 처리량 (읽기/쓰기 쿼리에 대한 QPS)
읽기 QPS
1억 명의 사용자가 하루에 5번씩 주변 사업장을 검색한다고 가정하면 5억 건/일의 조회 요청
각 검색 요청 시 반경 3km 내에 최소 100개에서 최대 2000개의 사업장이 반환될 수 있으므로, 평균적으로 1050개의 사업장이 검색됨
읽기 QPS는 5787 QPS (5억/86400초)로 예상
(2) 시스템에서 예상되는 지연시간(읽기/쓰기 쿼리)
읽기 쿼리: 많은 사업장을 빠르게 반환해야 하므로 100ms 이하의 응답 시간을 유지
쓰기 쿼리: 쓰기 요청은 실시간 반영이 필요하지 않으므로, 300ms 이하로 설정
(3) 읽기/쓰기 비율
읽기/쓰기 비율: 여전히 대부분의 요청은 사업장 조회이므로 읽기 97%, **쓰기 3%**의 비율로 가정
(4) 트래픽 추정치
읽기 트래픽(QPS, 데이터 볼륨): 사업장 정보 크기가 각각 2KB라고 가정하면, 평균적으로 한 번의 검색에서 1050개 사업장의 데이터를 반환하므로 한 번의 검색 요청 당 약 2MB의 데이터를 반환. 하루 5억 건의 조회 요청에 대해, 총 약 931TB/일의 트래픽이 발생할 수 있음(최대)
엥 이게 맞나?
쓰기 트래픽(QPS, 데이터 볼륨): 하루 100만 건의 쓰기 요청이 10KB의 데이터를 생성한다고 가정하면, 약 9.5GB/일의 쓰기 트래픽 예상