시스템 스케일링: 더 큰 머신 또는 더 많은 머신?

발행: (2026년 5월 10일 AM 03:05 GMT+9)
5 분 소요
원문: Dev.to

Source: Dev.to

확장성(Scalability)이란?

더 큰 머신을 구매하거나 머신을 추가로 구매하여 더 많은 요청을 처리할 수 있게 하는 능력을 확장성이라고 합니다.

수직 확장 (Vertical Scaling)

수직 확장은 더 큰 머신을 사용하고 CPU, RAM, 네트워크 대역폭, 스토리지 등을 추가하여 요청을 훨씬 빠르게 처리하는 것을 의미합니다.
예시: 현재 시스템이 8코어 서버 용량 제한을 가지고 있다면, 이를 32코어 서버와 더 빠른 SSD 스토리지로 업그레이드할 수 있습니다.

장점

  • 구현이 더 쉽습니다.
  • 새로운 서버를 설치하는 것보다 하드웨어 업그레이드가 간단합니다.
  • 유지보수가 용이합니다.
  • 단일 머신만 존재하므로 로드 밸런서가 필요 없습니다.
  • 데이터 일관성을 유지하기가 쉽습니다.
  • 프로세스 간 통신이므로 속도가 빠릅니다.

단점

  • 하드웨어 한계에 도달하면 더 이상 성장할 수 없습니다.
  • 단일 장애 지점(SPOF) – 머신이 다운되면 전체 애플리케이션이 다운됩니다.

수평 확장 (Horizontal Scaling)

수평 확장은 머신을 더 많이 구매하는 것을 의미합니다. 요청은 이들 중 어느 머신으로든 전송될 수 있으며, 워크로드가 분산됩니다.
예시: 32코어 서버 하나 대신 8코어 서버 4대를 추가할 수 있습니다. 로드 밸런서가 필요합니다.

장점

  • 하나의 서버가 실패해도 요청을 다른 서버로 재지정할 수 있습니다.
  • 필요에 따라 머신을 무한히 추가할 수 있어 확장성이 뛰어납니다.
  • 예측 불가능하거나 피크 워크로드에 더 적합합니다.
  • 더 높은 복원력과 내결함성을 제공합니다.
  • 장기적으로 비용 효율적일 수 있습니다.

단점

  • 분산 시스템을 관리하는 것이 단일 서버를 관리하는 것보다 복잡하므로 유지보수가 어려워집니다.
  • 여러 서버 간 데이터 일관성을 유지하기가 더 힘듭니다.
  • 서버 간 통신이 네트워크를 통해 이루어지므로 상대적으로 느립니다.
  • 여러 서버가 동일한 데이터를 처리·업데이트하려 할 때 일관성 문제가 발생할 수 있습니다.

수직 확장 vs. 수평 확장 선택 기준

다음과 같은 경우 수직 확장을 선택하세요:

  • 데이터 일관성을 더 중시할 때
  • 빠른 프로세스 간 통신이 필요할 때
  • 설정 및 유지보수를 단순하게 하고 싶을 때

다음과 같은 경우 수평 확장을 선택하세요:

  • 확장성을 최우선으로 할 때
  • 복원력과 내결함성을 원할 때
  • 예측 불가능하거나 피크 워크로드를 지원해야 할 때

실제 적용 시 고려 사항

실제로 대부분의 시스템은 두 접근 방식을 조합하여 각각의 장점을 최대한 활용합니다. 수직 확장은 단기적으로 비용이 저렴한 편이며, 수평 확장은 장기적으로 더 비용 효율적일 수 있습니다.

“스케일링은 목적지가 아니라 여정이다.” – Sahn Lam

0 조회
Back to Blog

관련 글

더 보기 »