개발자 준비/네트워크

[서버] (5) 스케일 어빌리티

osul_world 2021. 12. 13. 16:04
728x90

[서버] (5) 스케일 어빌리티


 

스케일 어빌리티

서버컴퓨터에는 보통 웹 서버 + 웹 어플리케이션 + DB가 설치되어 동작한다.

서버를 운용하다 보면 과한 트래픽이나 리소스 사용으로 서버 컴퓨터에 부하가 걸리는 경우가 발생할것이다.

 

스케일 아웃 & 스케일 업 으로 이를 해결할수있다.

image

 

스케일 업

  • 서버 장비를 더 좋은 사양의 장비로 교체하는 것

 

스케일 아웃

  • 분산 컴퓨팅의 개념을 이용해 서버의 역할을 여러대의 컴퓨터로 나누어 처리하는 것

 

앞서 서버는 웹 서버 + 웹 어플리케이션 + DB가 함께 설치 되어 운용된다고 했다.

한 컴퓨터에서 3개의 역할이 함께 리소스를 공유하며 운용된다.

서비스가 커지고 트래픽이 커지면 서버 부하가 발생할것이다.

 

보통은 DB에서 가장 많은 리소스를 소모 함으로 서버 부하의 주 원인이다.

image

스케일 업으로 해결되지 않아 서버 컴퓨터를 1대 더 대여해서 DB만 운용하도록 분리한다.

서버 컴퓨터끼리는 네트워크 통신을 사용해 통신한다.

image

서비스 규모가 더 커짐에 따라 웹 에플리케이션도 분리했다. 총 3대의 서버컴퓨터를 이용해 운용한다.

image

DB가 더 커져서 컴퓨터 1대를 더 대여해서 DB서버를 읽기 전용 쓰기 전용으로 분리했다.

image

웹 서버도 여러개로 분리했다.

이와같이 여러대의 컴퓨터로 서버의 역할을 분산해서 기능을 향상시키는 기법을 스케일 아웃이라고 한다.

 

Load Balancer & DNS

DNS

  • 클라이언트는 DNS(Domain Name Server)를 통해 분산된 웹 서버중 하나로 접속한다.
  • 모든 클라이언트는 DNS IP를 알고있다.
  • DNS는 접속하고자하는 웹 서버 IP를 랜덤하게 알려준다.

image

 

Load Balancer

  • 클라이언트는 Load Balancer 라는 경유지를 통해 트래픽이 낮은 웹 서버로 접속하게 된다.
  • 클라우드 컴퓨팅은 기본적으로 Load Balancer 를 사용한다.
  • 트래픽이 너무 커지면 클라우드 컴퓨팅이 서버를 알아서 분산해준다.

image

 

Reference


성장 - 생활코딩 (opentutorials.org)

728x90