가상 면접 사례로 배우는 대규모 시스템 설계 기초 - 정리 15장 구글 드라이브 설계
가상 면접 사례로 배우는 대규모 시스템 설계 기초 리뷰
가상 면접 사례로 배우는 대규모 시스템 설계 기초 - 정리 15장 구글 드라이브 설계
가상 면접 사례로 배우는 대규모 시스템 설계 기초
15장 구글 드라이브 설계
- 파일 추가
- 파일 다운로드
- 여러 단말의 동기화
- 파일 갱신 이력 조회
- 파일 공유
- 파일이 편집되거나 삭제되거나 새롭게 공유될 때 알림 표시
개략적인 설계안
- 파일을 올리고 다운로드 하는 과정을 처리할 웹 서버
- 사용자 데이터, 로그인 정보, 파일 정보 등 메타데이터를 보관할 데이터베이스
- 파일을 저장할 저장소 시스템
- 사용자 단말 : 클라이언트
- 블록 저장소 서버 : 파일 블록을 클라우드 저장소에 업로드하는 서버다. 블로 저장소는 블록 수준 저장소라고 불리우며 클라우드 환경에서 데이터 파일을 저장하는 기술이다. 이 저장소는 파일을 여러개의 블록으로 나눠 저장하며, 각 블록에는 고유 해시값이 할당된다.
- 클라우드 저장소 : 블록단위로 나뉘어 클라우드 저장소에 보관됨
- 아카이빙 저장소 : 오랫동안 사용하지 않은 비활성 데이터를 저장하기 위한 저장소
- 로드밸런서 : API요청을 고르게 API서버에 분산한다.
- API서버 : 파일 업로드 외에 거의 모든 기능을 담당하는 섭
- 메타데이터 데이터베이스 : 사용자 파일 블록 버전 등 메타데이터 저장
- 캐시 : 성능을 높이기 위한 고성능 메모리 저장소
- 알림 서비스 : 특정 이벤트 발생 시 클라이언트에게 이벤트를 알리는 시스템
- 오프라인 사용자 백업 큐 : 클라이언트 접속 중이 아니라 최신 상태를 확인할 수 없을 때 느 해당 정보를 이 큐에 두어 클라이언트 접속 시 동기화 과정 진행

This post is licensed under CC BY 4.0 by the author.
