Scale up/down 그리고 Scale out/in

1 minute read

Scale up/Scale down 그리고 Scale out/in

서비스를 운영하다 보면 갑자기 트래픽이 증가하는 경우가 있습니다. 이럴 경우 우리는 Scale up 즉 서버의 CPU,메모리,저장공간과 같은 기존 시스템의 내부 컴포넌트들을 키우거나 또는 더 큰 용량의 시스템을 구매하는 방식의 Scale up을 할 수 있습니다. 하지만 CPU,메모리와 같은 컴포넌트들은 확장하기가 힘들고 또 일정 수준이상일 경우 비용 대비 성능의 증가 폭이 확연히 떨어집니다. 그리고 이렇게 시스템을 구축해 놓으려면 초기 비용이 커지는 문제점이 발생합니다. 또한 서비스 트래픽이 줄어들어 시스템 컴포넌트를 줄이는 스케일 다운을 할 때 기존에 미리 시스템을 구축해 놓은 비용이 낭비되는 단점이 있습니다.

이러한 문제로 인해 Scale out/Scale in 방식이 대안으로 존재합니다. 스케일 업은 시스템 하나의 용량을 키우지만 스케일 아웃은 비슷한 용량의 시스템을 병렬적으로 배치합니다. 이러한 병렬적인 확장을 위해서 로드밸런서와 같은 트래픽 분산장치가 필수적으로 요구됩니다. 이렇게 병렬적으로 시스템을 확장 가능해 가격 대비 성능 향상 효과가 더 큽니다.

또한 이렇게 Scale out방식으로 확대된 시스템은 Scale in즉, 서비스를 축소할 때도 효과적으로 작동합니다. 전체 시스템을 바꾸는 것이 아닌 병렬적으로 배치된 시스템의 여러 서버 중 몇몇 개별 서버를 없애는 방식으로 시스템의 크기를 줄일 수 있습니다. 이러한 방식을 통해 시스템의 크기를 줄일 때 최소한의 비용을(또는 거의 비용을 들이지 않고) 지출할 수 있습니다.

이렇게 Scale up/down 보다 Scale out/in 방식은 탄력적인 시스템 관리를 가능하게 합니다. 뿐만아니라 서버가 여러개로 분산이 되므로 내고장성을 높일 수 있습니다. 하지만 그와 동시에 병렬 처리를 위한 복잡한 아키텍쳐를 이해해야하고 로드밸런서와 같은 장비를 운용해야한다는 부담이 존재하기도합니다.



출처: IT엔지니어를 위한 네트워크 입벽

Leave a comment