Scale up and Scale out

A.1) 스케일 업

기존의 서버를 보다 높은 사양으로 업그레이드하는 것

하드웨어적인 예를 들면, 성능이나 용량 증강을 목적으로 하나의 서버에 디스크를 추가하거나 CPU 나 메모리를 업그레이드시키는 것을 말한다.

이처럼 하나의 서버의 능력을 증강하기 때문에 수직 스케일링 (vertical scaling)/수직 확장이라고도 한다.

A.1.1) 장점

  1. 추가적인 네트워크 연결 없이 용량을 증강할 수 있다.
  2. 스케일 아웃보다 관리 비용이나 운영 이슈가 적고, 사양만 올리면 되는 것이기 때문에 비교적 쉽다.

A.1.2) 단점

  1. 성능 향상에 한계가 있으며, 성능 향상에 따른 비용부담이 크고, 서버 한 대가 부담하는 양이 많아서 single point failure 에 취약하다.
  2. 기존의 서버를 교체함으로써 성능을 올릴 때에는 서비스를 이용할 수 없는 다운타임이 불가피하다.

A.2) 스케일 아웃

장비를 추가해서 확장하는 방식

비슷한 사양의 서버를 추가로 연결해 처리할 수 있는 데이터 용량이 증가할 뿐만 아니라 기존 서버의 부하를 분담해 성능 향상의 효과를 기대할 수 있다.

서버를 추가로 확장하기 때문에 수평 스케일링 (horizontal scaling)/수평 확장이라고도 불린다.

A.2.1) 장점

  1. 확장의 유연성: 서버를 필요한 만큼만 도입해 놓고, 장기적인 용량 증가 추이를 예측할 필요 없이 그때그때 필요한 만큼 서버를 추가해 용량과 성능을 확장 (pay-as-you-grow) 할 수 있다.

A.2.2) 단점

  1. 관리의 어려움: 여러 노드를 연결해 병렬 컴퓨팅 환경을 구성하고 유지하려면 아키텍처에 대한 높은 이해도가 요구된다.
  2. 여러 노드에 부하를 균등하게 분산시키기 위해 로드 밸런싱 (load balancing) 이 필요하고, 노드를 확장할수록 문제 발생의 잠재 원인 또한 추가한 만큼 늘어나게 된다.

B) Related

C) References