- 사용자 수에 따른 규모 확장성 12022년 07월 21일
- starryeye
- 작성자
- 2022.07.21.:35
[가상 면접 사례로 배우는 대규모 시스템 설계 기초] 책을 정리하면서
자체적으로 좀 더 내용을 추가 하였습니다.
단일 서버
모든 컴포넌트가 단 한 대의 서버에서 실행되는 시스템
(웹 앱, 데이터 베이스, 캐시 등)
데이터 베이스
사용자가 늘면 서버 하나로는 충분하지 않아 여러 서버를 두어야 한다.
두가지 용도의 서버로 나누어 보자.
웹/모바일 트래픽 처리 용, 데이터 베이스 용
이렇게 웹 계층과 데이터 계층을 나누게 되면 독립적으로 확장해 나갈 수 있다.
수직적 규모 확장 vs 수평적 규모 확장
수직적 규모 확장
: 스케일 업, 서버에 고사양 자원(CPU, RAM)을 추가하여 그 서버 자체의 성능을 개선
- 성능을 무한대로 끌어 올릴 수는 없어 한계점이 명확하다.
- Single Point of Failure(SPOF)에 대해 취약하다.
- 자동복구 방안, 다중화 방안 제시 못함
수평적 규모 확장
: 스케일 아웃, 더 많은 서버를 추가하여 성능을 개선
- 하나의 서버가 다운되더라도 다른 서버로 대처 가능하다.
로드 밸런서
로드 밸런서는 부하 분산 집합에 속한 웹 서버들에게 트래픽 부하를 고르게 분산 하는 역할을 한다.
DNS가 공개 IP 주소로 매핑 시켜주면, 로드 밸런서가 부하 분산 및 장애에 따른 대응의 역할을 수행하며
적절하게 사설 IP로 요청하게 된다.
부하가 많으면 더 많은 서버를 두면 된다.
알고리즘
- 라운드 로빈
- 순서대로.. 돌아가며..
- 가중 라운드 로빈
- 서버 별, 가중치를 두어 가중치가 높은 서버에 우선 배분
- 트래픽 처리 능력이 서버별로 다를 경우에 사용
- IP 해시 방식
- IP 주소를 해싱하여 서버에 매핑한다.
- 항상 동일한 서버에 매핑될 것이다...
- 최소 연결 방식
- 가장 적은 트래픽을 가진(가장 적은 연결 상태) 서버에 매핑
- 최소 리스폰 타임
- 서버의 연결 상태와 응답 시간을 고려하여 트래픽 배분
'대규모 시스템 설계' 카테고리의 다른 글
안정 해시 설계 1 (0) 2022.09.03 사용자 수에 따른 규모 확장성 5 (0) 2022.07.23 사용자 수에 따른 규모 확장성 4 (0) 2022.07.23 사용자 수에 따른 규모 확장성 3 (0) 2022.07.22 사용자 수에 따른 규모 확장성 2 (0) 2022.07.22 다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)