스케일 업과 스케일 아웃은 인프라 확장을 위한 두 가지 방법이다.
스케일 업은 기존 서버의 사양을 업그레이드해 시스템을 확장하는 것을 말한다.
CPU나 RAM 등을 추가하거나 고성능의 부품, 서버로 교환하는 방법이다.
이처럼 하나의 서버의 사양을 업그레이드 하기에 수직 스케일로 불리기도 한다.
추가적인 네트워크 연결 없이 용량을 증강할 수 있고, 추가되는 용량이나 업그레이드 비용만 부가되기에 비용적인 증강이 스케일아웃에 비해 낮고 설계가 쉽다.
무엇보다 비교적 업그레이드가 쉽고, 필요 장비와 전력 소모를 어느 정도 아낄 수 있다.
인프라 비용이 추가로 발생하지 않는다.
서버를 추가하는 방법이 아니기 때문에 여러대의 서버를 두는 것보다 데이터 정합성 이슈(데이터가 일관되지 않는 문제)에서 자유롭다.
다만 스케일업을 할수록 기존 하드웨어의 냉각, 공간, 전력공급 등의 문제가 발생할 수 있고, 하드웨어 허용 범위 내에서만 확장이 가능하기 때문에 그 이상으로 업그레이드를 하고자 한다면 한계가 있다.
스케일 업의 일정 수준을 넘어가는 순간, 성능 증가 폭이 미미해진다.
서버 한 대에 모든 부하가 집중되므로 장애 시 서버가 복구될 때까지 서비스를 중단해야 하는 상황이 발생한다.
스케일 아웃은 서버를 여러 대 추가하면서 시스템을 확장하는 것을 말한다.
서버가 여러 대로 나뉘기 때문에 각 서버에 걸리는 부하를 균등하게 해주는 '로드밸런싱'이 필수적으로 동반되어야 한다.
이처럼 여러 대의 서버로 나눠 시스템을 확장하기 때문에 수평 스케일로 불리기도 한다.
서버 한 대가 장애로 다운되더라도 다른 서버로 서비스 제공이 가능하다는 장점이 있다.
용량, 성능 확장에 한계가 없다. 하드웨어를 변경하는 것이 아닌 비슷한 성능의 서버를 여러 대 두는 방법이기 때문에, 확장이 무제한 가능하다.
즉, 단일 서버에 작업이 쌓여서 멈춰있는 병목현상을 줄일 수 있다.
단점
여러 대의 서버로 돌아가기 때문에 데이터 정합성 이슈(데이터가 일관되지 않는 문제)가 생길 수 있다
세션, 웹 이미지 등 서버에 저장되는 데이터를 어떤식으로 공유해야할지에 대한 기술적인 한계가 있다
병렬 컴퓨팅 환경을 구성하고, 유지하려면, 로드 밸런싱에 대한 높은 이해도가 요구된다.
Reference