가상 면접 사례로 배우는 대규모 시스템 설계 기초 (System Design Interview) - 저 : 알렉스 쉬, 역 : 이병준 을 읽고 정리한 글입니다.
2장의 내용은 아직 아는게 적어서 그런것인지 내용도 많지 않고 크게 와닿지 않아, 짧게 정리합니다.
- 개략적인 규모 추정을 효과적으로 하는데 필요한 기본기
[목차]
개략적인 규모 추정
- 2의 제곱수
- 응답지연 값
- 가용성에 관계된 수치들
- 트위터 시스템 설계 예시
📌 2장 - 개략적인 규모 추정
1. 개략적인 규모 추정(back-of-the-envelope estimation)이란
- 보편적으로 통용되는 성능 수치상에서 사고 실험(thought experiments)를 행하여 추정치를 계산하는 행위
- 즉, 어떤 설계가 요구사항에 부합할 것인지를 보기 위한 것
ex) 트위터 시스템을 설계해주세요, 뉴스 피드 시스템을 설계해주세요
2. 2의 제곱수
- 제대로 된 분산 시스템 데이터 계산 결과를 얻으려면 데이터 볼륨의 단위를 2의 제곱수로 표현하는 방법을 알아야 한다.
- 최소 단위는 1바이트이며, 8비트로 구성된다.
3. 응답 지연 값 (latency)
- 구글의 제프 딘이 2010년에 「통상적인 컴퓨터에서 구현된 연산들의 응답지연값」을 공개하였다.
- 더 빠른 컴퓨터가 등장하면서 더 이상 유효하지 않은 값도 있지만, 여전히 컴퓨터 연산들의 처리 속도가 어느 정도인지 짐작할 수 있도록 해준다.
4. 가용성에 관계된 수치들
고가용성이란 (high availability)
- 시스템이 오랜 시간 동안 지속적을 중단 없이 운영될 수 있는 능력
- 고가용성을 표현하는 값은 퍼센트(%)로 표현한다.
- 100%는 시스템이 단 한 번도 중단된 적이 없었음을 의미한다.
- 대부분의 서비스는 99%에서 100% 사이의 값을 갖는다.
SLA(Service Level Agreement 란
- 서비스 사업자가 보편적으로 사용하는 용어로,서비스 사업자와 고객 사이에 맺어진 합의를 의미한다.
- 이 합의에는 서비스 사업자가 제공하는 서비스의 가용시간이 공식적으로 기술되어 있다.
- 아마존, 구글, 마이크로소프트 같은 사업자는 99% 이상의 SLA를 제공한다.
- 가용시간은 관습적으로 숫자 9를 사용해 표시한다.
- 9가 많으면 많을수록 좋다고 생각하면 된다.
5. 트위터 QPS와 저장소 요구량 추정
- 트위터의 시스템을 가정하여 QPS (초당 처리 쿼리) 와 요구되는 저장소 용량을 구해보자!
가정
- 월간 능동 사용자(monthly active user)는 3억(300million) 명입니다.
- 50%의 사용자가 트위터를 매일 사용합니다.
- 평균적으로 각 사용자는 매일 2건의 트윗을 올립니다.
- 미디어를 포함하는 트윗은 10% 정도입니다.
- 데이터는 5년간 보관됩니다.
추정
QPS(Query Per Second) 추정치
- 일간 능동 사용자(Daily Active User, DAU) = 3억 X 50% = 1.5억(150million)
- QPS = 1.5억 X 2트윗/24시간/3600초 = 약 3500
- 최대 QPS(Peek QPS) = 2 X QPS = 약 7000
미디어 저장을 위한 저장소 요구량
- 평균 트윗 크기
- tweet_id에 64바이트
- 텍스트에 140바이트
- 미디어에 1MB
- 미디어 저장소 요구량: 1.5억 X 2 X 10% X 1MB = 30TB/일
- 5년간 미디어를 보관하기 위한 저장소 요구량: 30TB X 365 X 5 = 약 55PB
끝!!
'📗 개발자 책 읽기 > 가상 면접 사례로 배우는 대규모 시스템 설계 기초' 카테고리의 다른 글
[System Design Interview] 06. ⚙️ 키-값 저장소 (비 관계형 데이터베이스) 설계하기(1) - CAP 이론 정리 (2) | 2023.01.16 |
---|---|
[System Design Interview] 05. ⚙️ 안정해시란? (0) | 2023.01.10 |
[System Design Interview] 04. 트래픽 처리율 제한 장치의 설계 (rate limiter)❗️❗️ (2) | 2023.01.06 |
[System Design Interview] 03. 시스템 설계 면접 공략법 ❗️ (0) | 2022.12.29 |
[System Design Interview] 01. 사용자 수에 따른 규모 확장성 - 인프라 확장 (0) | 2022.12.19 |