본문 바로가기

System Design17

[개략적인 규모 측정] 모든 프로그래머가 알아야 하는 응답지연 값 통상적인 컴퓨터에서 구현된 연산들의 응답지연 값 위 수들을 알기 쉽게 시각화 메모리는 빠르지만 디스크는 아직도 느립니다. 디스크 탐색(seek)은 가능한 한 피해야 합니다. 단순한 압축 알고리즘은 빠릅니다. 데이터를 인터넷으로 전송하기 전에 가능하면 압축해야 합니다. 데이터 센터는 보통 여러 지역(region)에 분산되어 있고, 센터들 간에 데이터를 주고받는 데는 시간이 걸립니다. 참조 가상 면접 사례로 배우는 대규모 시스템 설계 기초 2021. 9. 17.
[개략적인 규모 측정] 2의 제곱수 분산 시스템에서 다루는 데이터 양은 엄청나게 커질 수 있으나 그 계산법은 기본을 크게 벗어나지 않습니다. 제대로 된 계산 결과를 얻으려면 데이터 볼륨의 단위를 2의 제곱수로 표현하면 어떻게 되는지를 우선 알아야 합니다. 최소 단위는 1바이트이고, 8비트로 구성됩니다. ASCII 문자 하나가 차지하는 메모리 크기가 1바이트입니다. 흔히 쓰이는 데이터 볼륨 단위 표 참조 가상 면접 사례로 배우는 대규모 시스템 설계 기초 2021. 9. 16.
[사용자 수에 따른 규모 확장성] 백만 사용자, 그리고 그 이상 수백만 사용자 이상을 지원하려면 새로운 전략을 도입해야 하고 지속적으로 시스템을 가다듬어야 할 것입니다. 예를 들어, 시스템을 최적화하고 더 작은 단위의 서비스로 분할해야 될 수도 있습니다. 정리 시스템 규모 확장을 위한 기법들 웹 계층은 무상태 계층으로 모든 계층에 다중화 도입 가능한 한 많은 데이터를 캐시할 것 여러 데이터 센터를 지원할 것 정적 콘텐츠는 CDN을 통해 서비스할 것 데이터 계층은 샤딩을 통해 그 규모를 확장할 것 각 계층은 독립적 서비스로 분할할 것 시스템을 지속적으로 모니터링하고, 자동화 도구들을 활용할 것 참조 가상 면접 사례로 배우는 대규모 시스템 설계 기초 2021. 9. 13.
[사용자 수에 따른 규모 확장성] 데이터베이스의 규모 확장 저장할 데이터가 많아지면 데이터베이스에 대한 부하도 증가합니다. 데이터베이스의 규모를 확장하는 데는 두 가지 접근법이 있습니다. 하나는 수직적 규모 확장법이고 다른 하나는 수평적 규모 확장법입니다. 수직적 확장 스케일 업이라고 부르는 수직적 규모 확장법은 기존 서버에 더 많은, 또는 고성능의 자원(CPU, RAM,디스크 등)을 증설하는 방법입니다. 약점 데이터베이스 서버 하드웨어에는 한계가 있으므로 CPU, RAM 등을 무한 증설할 수는 없습니다. 사용자가 계속 늘어나면 한 대 서버로는 결국 감당하기 어렵게 될 것입니다. SPOF(Single Point of Failure)로 인한 위험성이 큽니다. 비용이 많이 듭니다. 고성능 서버로 갈수록 가격이 올라가게 마련입니다. 수평적 확장 샤딩(sharding).. 2021. 9. 10.