우리가 이름만 들어도 아는 유명 IT 서비스들의 화려한 웹페이지도, 예쁜 모바일 앱도 그 뒤에는 탄탄하고 강력한 분산 시스템을 기반으로 합니다. 이러한 백엔드 시스템이 부실할 경우 서비스나 앱은 그야말로 사상누각입니다. 본 세미나에서는 이러한 시스템들을 만들때 풀어야 할, 가장 기본이 되는 문제와 이슈들 12가지에 도전해봅니다.
4. 수면위로 얼마나 보이는
거지?
• 전체 부피 중 유체 위에 노출되는 부피 비율
• = 1 - (물체의 밀도 / 유체의 밀도)
• = 1 - (0.92 / 1.03) = 0.1 = 10%
• 10%의 예쁜 빙산이 바다 위에서 보이려면 90%의
거대한 빙산이 수면 아래에 존재해야 함
5. 빙산의 일각
• 이름만 들어도 아는 유명 IT 기업들
• Google, Amazon, Apple…
• Naver…
• 이들의 서비스가 만일 “일각”이라면, 수면 아래에
는 뭐가 있지?
6. 분산시스템
• 정의
• A distributed system is a collection of
independent computers that appears to its
users as a single coherent system.
7. 분산시스템
• 정의
• A distributed system is a collection of
independent computers that appears to its
users as a single coherent system.
8. 플랫폼
• 서비스마다 공통으로 필요로 하는 기반 기술
• 파일, 구조화된 데이터, 대용량 분석, 이미지 처
리, 지도, 머신러닝, …
• Software Framework + Hardware Infrastructure
• 훌륭한 서비스를 만들기 위해 잘 설계되고 견고한
부품
9. 분산 저장 시스템
• 분산 시스템
• 데이터 저장
• 파일이나 구조화된 데이터
• 플랫폼
25. 디스크 고장
• 디스크가 고장나서 데이터를 잃어버리면 큰일!
• 여러 개의 디스크에 데이터를 똑같이 저장해두자
3/12
26. 복제
• 사용자가 1개 파일을 저장하면 N개 디스크에 동시에 저
장하자.
• N-1개의 디스크 고장에도 서비스 할 수 있음
• Failure Transparency
• 데이터 안전성 vs 비용
• 복제 되어 있는 것도 잘 감추자
• Replication Transparency
3/12
27. 다시 계산
• 1 copy일 때 50,000개 디스크, 3 copy면 총
150,000개 디스크가 필요
• 서버 대수도 15,000대
3/12
70. Replication vs Erasure Code
• Replication (3 copy) : 2개 디스크가 고장나도 1개
디스크로 서비스 할 수 있음
• 3개 디스크 필요
• 디스크 고장시 추가 연산 필요 없음
7/12
71. Replication vs Erasure Code
• Erasure Code (4+2) : 2개 블럭이 없어도 임의의 4
개 블럭만 있으면 데이터를 복구할 수 있음
• 1.5배 용량만 필요
• 디스크 고장시 나머지 4개 데이터를 모두 읽어
계산을 해야 함
7/12
72. 다시 계산
• 90/10 법칙 적용
• 전체 트래픽의 90%는 최근 10%에 기록된 파일들
• 5,000대 * 0.1 * 3 = 1,500대
• 5,000대 * 0.9 * 1.5 = 6,750대
• 총 8,250대 필요
• 기존 15,000대 대비 55%수준 비용
• 동일하게 2개 디스크 장애에 대한 가용성 보장
• hot data들에게는 여전히 빠른 연산 보장
7/12
74. Globalisation
• 대륙별, 대륙내에서도 지역별로 IDC가 있음
• 이 IDC들간의 network latency 편차가 매우 큼
• 심지어 IDC간 network이 끊어질 수도 있고, IDC
자체가 파괴될 수도 있음
8/12
75. Globalisation
• 파일시스템이 여러 IDC에 나눠져 있다는 사실 조차
transparency를 제공
• 여러 IDC에 나눠 저장되는 파일들의 단일한 이름
체계는?
• 한국 사용자가 스페인에 여행을 가서 찍은 사진을 업
로드합니다.
• 이 사용자의 데이터가 한국에 있다면?
• …
8/12