시스템 설계

서버 설계 기초 1

두잇 두두 2024. 6. 19. 22:32
728x90

기본적인 서버 설계의 모든 것이 들어가 있는 그림입니다.

 

로드밸런서

부하 분산 집합에 속한 웹 서버들에게 트래픽 부하를 고르게 분산하는 역할입니다.

일단 ip로 접속하면 서버로 바로 가는게 아니라 로드밸런서로 갑니다.

  • 서버1 다운 시 서버 2로 전송 가능
  • 트래픽이 증가하면 새로운 서버를 만들고 자동으로 트래픽 분산

 

DB의 다중화

db는 하나만 사용하는게 아닙니다.

데이터 원본은(master)에 부(slave) db에는 사본을 저장하는 방식입니다

두 개의 역할은 쓰기 연산과 읽기 연산으로 구분됩니다.

 

쓰기 연산보다 읽기 연산이 훨씬 많이 요청됩니다

그래서 복제 db에 읽기 연산을 하고 주 데이터 서버에 쓰기를 하게 됩니다

 

메세지 큐

만약 연산이 몰린다면 서버가 과부하가 걸릴 수가 있습니다

그럴 때 메세지 큐를 통해서 연산의 속도를 늦추며 안정성을 높힐 수 있습니다

메세지 큐란 무손실을 보장하는 비동기 통신 컴포넌트입니다

예를 들어 사진 수정과 같이 오래 걸리는 작업의 경우 메세지 큐에 넣어두고 순차적으로 진행 할 수 있습니다

 

샤딩

db에 데이터가 많이 쌓이면 수평적 확장을 합니다

이때 샤딩이라는 기술이 들어 갈 수 있습니다

db에 데이터를 어디에 넣을 지 정하는 기술로 보통 %db갯수를 통해 데이터를 넣게 됩니다

이럴 때 발생 할 수 있는 문제점이

  • 데이터 재 샤딩
  • 유명인사 문제(핫스팟)
  • 조인과 비정규화

위와 같은 문제가 발생 할 수 있습니다.

이러한 문제점에 대해서는 추후에 다뤄보도록 하겠습니다.