대규모 시스템 설계 기초: 02. 개략적인 규모 추정
대규모 시스템 설계 기초 - 02 장을 보고 정리한 내용 입니다. 개략적인 규모 추정(back-of-the-envelope estimation) 은 보편적으로 통용되는 성능 수치상에서 사고 실험(thought experiments)을 행하여 추정치를 계산하는 행위로서, 어떤 설계가 요구사항에 부합할 것인지 보기 위한 것 이다
![대규모 시스템 설계 기초: 02. 개략적인 규모 추정](/content/images/size/w1200/2024/11/-----2024-11-03----8.01.27-1.png)
💡
개략적인 규모 추정?
개략적인 규모 추정(back-of-the-envelope estimation) 은 보편적으로 통용되는 성능 수치상에서 사고 실험(thought experiments)을 행하여 추정치를 계산하는 행위로서, 어떤 설계가 요구사항에 부합할 것인지 보기 위한 것 이다
by. 구글의 시니어 펠로(Senior Fellow)
개략적인 규모 추정(back-of-the-envelope estimation) 은 보편적으로 통용되는 성능 수치상에서 사고 실험(thought experiments)을 행하여 추정치를 계산하는 행위로서, 어떤 설계가 요구사항에 부합할 것인지 보기 위한 것 이다
by. 구글의 시니어 펠로(Senior Fellow)
개략적인 규모 추정을 효과적으로 잘 해내려면?
규모 확장성을 표현하는 데 필요한 기본기에 능숙해야 함
- 2의 제곱수
- 응답지연(Latency) 값
- 가용성에 관계된 수치
위 항목들을 기본적으로 잘 이해하고 있어야 함
2의 제곱 수
데이터의 양은 엄청나게 커질 수 있으나 계산법은 기본을 크게 벗어나지 않는다
- 최소 단위: 1Byte(8bit) (CPU 에서 할당 가능한 최소 단위)
- ASCII 문자 하나가 차지하는 메모리 크기는 1Byte
아래는 흔히 쓰는 데이터 볼륨 표
![](https://blog.pollra.com/content/images/2024/11/-----2024-11-03----7.25.36.png)
응답 지연 값
아래의 표는 2010년에 통상적인 컴퓨터에서 구현된 연산들의 응답 지연 값이다
대략적인 이해를 위해서만 참고하자. (현대의 컴퓨터는 2010년도 보다 빨라졌기 때문에 아래의 값을 신용하기엔 너무 많은 세월이 지났다)
![](https://blog.pollra.com/content/images/2024/11/-----2024-11-03----7.30.29.png)
https://norvig.com/21-days.html?ref=blog.pollra.com#answers
- 메모리는 빠르지만 디스크는 아직도 느리다
- 디스크 탐색(seek)은 가능한 한 피하라
- 단순한 압축 알고리즘은 빠르다
- 데이터를 인터넷으로 전송하기 전에 가능하면 압축하라
가용성에 관계된 수치들
- 고용성: 시스템이 오랜 시간 동안 지속적으로 중단 없이 운영될 수 있는 능력
- SLA(Service Level Agreement): 서비스 사업자와 고객 사이에 맺어진 합의
![](https://blog.pollra.com/content/images/2024/11/-----2024-11-04----8.04.52.png)
가정
- 월간 능동 사용자(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억 × 2 트윗 / 24시간 / 3600초 = 약 3500
- 최대 QPS(Peek QPS) = 2 x QPS = 약 7000
미디어 저장을 위한 저장소 요구량
- 평균 트윗 크기
- tweet_id에 64바이트
- 텍스트에 140 바이트
- 미디어에 1MB
- 미디어 저장소 요구량: 1.5억 x 2 x 10% x 1 MB = 30TB / 일
- 5년간 미디어를 보관하기 위한 저장소 요구량: 30TB x 365 x 5 = 약 55PB
팁
- 규모 추정을 물어보는 이유: 문제 해결 능력을 보기 위해
- 근사치를 활용한 계산
- 면접장에서 복잡한 계산은 어려움.(시간 낭비)
- 계산 결과의 정확함을 평가하는 것이 아님.
- 99987/9.1 같은 값은 100,000/10 으로 간소화
- 가정의 기록
- 단위를 붙여야 함
- 단위에 대해 까먹을 가능성
QPS
,최대 QPS
,저장소 요구량
,캐시 요구량
,서버 수 추정
같은 항목의 계산을 연습 해 보자