대규모 시스템 설계 기초 (2) – 개략적인 규모 추정
책을 봅시다
http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9788966263158&orderClick=&Kc=
개략적인 규모 추정
- 개략적인 규모 추정은 보편적으로 통용되는 수치상에서 사고 실험을 행하여 추정치를 계산하는 행위로써, 어떤 설계가 요구사항에 부합 할 것인지 보기 위한 것
2의 제곱수
- 데이터 볼륨은 2의 제곱으로 표현
응답지연 값
- ns, ms 등으로 표현.
보편적인 사실
- 메모리는 빠르지만 , 디스크는 느리다.
- 디스크 탐색은 가능한 한 피하라.
- 단순한 압축 알고리즘은 빠르다.
- 데이터를 인터넷으로 전송하기 전에 가능한 압축.
- 데이터 센터는 보통 여러 지역에 분산되어있고 센터들간 데이터 전송엔 시간이 걸린다.
가용성
- 고가용성은 시스템이 오랜 시간동안 지속적으로 중단없이 서비스 될수 있는 능력을 지칭하는 용어.
- 대부분의 서비스는 99%~100%의 값을 가진다.
- 9의 갯수가 많아질수록 좋다. 99% < 99.9% < 99.9999%
가정을 통한 저장소 요구량 추정 예
가정
- 월간 능동자 : 3억
- 50% 사용자가 트위터를 매일 사용
- 평균적으로 각 사용자는 매일 2건의 트윗을 남김
- 미디어를 포함하는 트윗은 10%
- 데이터는 5년간 보관
추정
QPS (Query per Second) 추정
- 일간 능동 사용자 추정 = 월간 능동자(3억) * 매일 사용하는 사람(50%) = 1.5억
- QPS = 일간 능동 사용자(1.5억) * 2트윗 / 24 시간 / 3600초 = 3500 건
- 최대 QPS = 2 * QPS = 7000건
필요 저장소 추정
- 평균 트윗 크기 ( tweet_id : 64byte, text : 140byte, media : 1MB)
- 미디어 저장소 요구량 : 일간 능동 사용자(1.5억) * 평균 매일 트윗 건수(2건) * 미디어포함 트윗 (10%) * media(1MB) = 30TB
- 5년간 미디어를 보관하기 위한 저장소요구량 : 30TB * 365 * 5 = 55PB
면접에서 규모추정과 관련된 질문을 받는다면 가장 중요한 것은 문제를 풀어나가는 절차.
문제해결 능력이다.
- 근사치를 활용한 계산을 하자 : 정확한 값을 계산하길 원하는 질문이 아니다.
- 가정 들은 적어두어 확인하지.
- 단위를 붙여서 모호함을 제거하자
- 많이 출제되는 문제는 QPS, 최대 QPS, 저장소 요구량. 캐시 요구량, 서버 수 등의 추정이다.