본문 바로가기

개발/서버

Scale-up(스케일업) 과 Scale-out(스케일아웃) 의 비교

배경

  • 100만명의 동시 접속자를 한 대의 서버가 감당할 수 있을까? 불가능할 것이다. 서버의 성능을 높이려면 어떻게 해야 할까?
  • 여기 두 가지 방법이 있다!
scale-up vs scale-out

방법1. Scale-up (스케일 업)

  • 더 성능이 좋은 하드웨어(CPU, RAM)를 사용한다. 즉, 서버 자체의 성능을 높이는 것이다. '수직 확장'이라고도 한다.
  • 장점
    • 관리, 운영 측면에서 편리하다.
    • 구조가 단순하다.
  • 단점
    • 하드웨어의 한계로 성능 확장에 한계가 있다.
    • 서버 증가에 따라 비용 증가 폭이 커서 일반적으로 비싸다.
    • 한 대의 서버에 부하가 집중되므로 장애 발생 시 영향이 크다.
      • SPOF (single point of failure, 단일 장애점)
        : 시스템 구성 요소 중에서, 동작하지 않으면 전체 시스템이 중단되는 요소
      • 스케일업에서는 서버에 SPOF 이 존재하게 되므로 서비스 안정성, 신뢰성 측면에서 좋지 않다.
  • 활용 예시
    • 데이터베이스 : 데이터 정합성을 유지하기 어려우므로 스케일 업이 적합

방법2. Scale-out (스케일 아웃)

  • 서버의 대수를 여러 대로 증가시킨다. '수평 확장'이라고도 한다.
  • 장점
    • 확장이 유연하다.
    • 비교적 비용이 저렴하다.
    • 여러 대의 서버가 분산 처리하기 때문에 장애 발생 시 영향이 적다.
  • 단점
    • 병렬 컴퓨팅으로 설계, 구현이 어렵다.
    • 직렬화되어야 하는 부분이 존재
  • 활용 예시
    • 웹 서버 : 데이터 정합성 유지가 어렵지 않고, 스케일업으로는 해결되지 않는 경우가 많으므로 스케일 아웃이 적합

결론

  • 각 방법의 장단점을 이해하고 경우에 따라서 알맞게 활용해야 한다.

reference