가상 면접 사례로 배우는 대규모 시스템 설계 기초 14

키-값 저장소 설계

가상 면접 사례로 배우는 대규모 시스템 설계 기초 "키-값 저장소 설계"을 요약한 내용입니다. 키-값 저장소는 키-값 데이터베이스라고 불리는 비 관계형 데이터베이스 이다. 저장되는 값은 고유 식별자를 키로 가져야한다. 키와 값 사이의 이런 연결 관계를 “키-값” 쌍이라고 지칭한다. 키-값 쌍에서의 키는 이율해야하며 해당 키에 매달린 값은 키를 통해서만 접근 가능 키는 일반 텍스트 or 해시 값일 수 있다. 성능상 키는 짧을 수록 좋다 ex) 일반 텍스트 키 : last_logged_in_at ex) 해시 키 : 253DDEC4 키-값 쌍에서 값은 문자열 or 리스트 or 객체일 수 있다. 키-값 저장소로 널리 알려진 것 아마존 다이나모 memcached 레디스 문제 이해 및 설계 범위 확정 완벽한 설계란..

안정 해시 설계

가상 면접 사례로 배우는 대규모 시스템 설계 기초 "안정 해시 설계"을 요약한 내용입니다. 수평적 규모 확장을 달성하기 위해서는 요청 또는 데이터를 서버에 균등하게 나누는 것이 중요 해시 기술이 풀려고 하는 문제부터 좀더 자세히 살펴보기 해시 키 재배치 문제 N개의 캐시 서버가 균등하게 부하를 나누는 방법으로 해시 함수를 사용한다. serverIndex = hash(key) % N 특정 키가 보관된 서버를 알아내기 위해, 나머지연산을 적용 hash(key0) % 4 == 1 서버 1에 접속하여 보관된 데이터를 가져올 수 있다. n번 서버가 장애가 발생할 경우 서버 풀의 크기는 3으로 변한다 모듈러 연산에 의해 서버의 인덱스가 달라지는 문제가 발생 대부분 캐시 클라이언트가 데이터가 없는 서버에 접속하게 되..

처리율 제한 장치의 설계

가상 면접 사례로 배우는 대규모 시스템 설계 기초 "처리율 제한 장치의 설계"을 요약한 내용입니다. 클라이언트 또는 서비스가 보내는 트래픽의 처리율을 제어하기 위한 장치 특정 기간 내에 전송되는 클라이언트의 요청 횟수를 제한 정의된 임계치를 넘어서면 추가로 도달한 모든 호출은 처리가 중단됨 ex) 초당 2회 이상 새 글을 올릴 수 없다.ex) 같은 디바이스로는 주당 2회 이상 리워드 요청을 할 수 없다. ex) 같은 IP 주소로 하루에 10개 이상의 계정을 생성할 수 없다. 처리율 제한 장치를 두면 좋은 점 처리율 제한 장치를 두면 DoS 공격에 대한 자원 고갈을 방지 할 수 있음 대형 IT 기업들이 공개한 API에는 대부분 처리율 제한 장치를 가지고 있음 트위터는 3시간 동안 300개의 트윗만 올릴 수..

사용자 수에 따른 규모 확장성

가상 면접 사례로 배우는 대규모 시스템 설계 기초 "사용자 수에 따른 규모 확장성"을 요약한 내용입니다. 이번 장에서는 한 명의 사용자를 지원하는 시스템에서 시작하여 최종적으로는 몇백만 사용자를 지원하는 시스템을 설계해볼 것이다. 규모 확장성와 관계된 설계 문제를 푸는 데 쓰일 유용한 지식들을 마스터할 수 있을 것이다. 단일 서버 모든 컴포넌트가 단 한대의 서버에서 실행되는 간단한 시스템부터 설계해 보자 [그림 1-1] 웹, 앱, 데이터베이스, 캐시 등이 전부 서버 한 대에서 실행된다. 사용자 요청 처리 흐름부터 살펴보자 [그림 1-2] 사용자는 도메인 이름을 이용하여 웹사이트에 접속한다. DNS 조회 결과로 IP 주소가 반환된다. 해당 IP 주소로 HTTP 요청이 전달 된다. 요청을 받은 웹 서버는 H..