얼마 전 한국감정원에서 주택청약 관련 서비스를 제공하기 위해 개설한 ‘청약홈’ 웹사이트가 오픈 첫날에 서버 과부하로 다운되었다고 합니다. 해당 기관 관계자에 의하면, 7만 명 동시접속이 가능하게 서버를 증축했음에도 예상치 못한 특정 서버 과부하가 있었다고 하는데요, 이처럼 기업 IT 인프라에 있어서 네트워크 대역폭, 스토리지, 애플리케이션의 증가율은 예측하기가 어려워 IT 관리자분들은 항상 이러한 확장성 문제와 직면하게 됩니다. 단순히 사업 확대나 사용자증가뿐만 아니라, 데이터 레이크의 형성과 빅데이터 활용의 확대로 기업의 데이터가 예상보다 빠르게 증가해 IT 관리자들은 스토리지 인프라를 확장하는 데 있어서 자사 특성에 적합하고 비용 효율이 높은 방식을 찾는 것이 불가결해졌습니다.

스토리지에 있어서 확장성이란, 시스템이 제대로 기능하기 위해 요구사항에 맞추어 용량 및 성능을 조정하는 것을 말합니다. 예를 들어, 스튜디오에서 여러 워크스테이션이 하나의 공유 스토리지를 통해 영상 편집을 진행할 시, 공유 스토리지의 최대 용량이 부족해지거나 워크스테이션의 트래픽이 과부하 되는 경우가 있습니다. 이 경우 용량 및 성능을 늘리기 위해 시스템의 확장이 필요한데, 그 방식을 스케일업과 스케일아웃으로 구분할 수 있습니다.

 

스케일업과 스케일아웃의 정의

 

Alt text

<스케일업과 스케일아웃>

 

스케일업(Scale-up)은 단순히 말하자면 기존의 하드웨어를 보다 높은 사양으로 업그레이드하는 것을 말합니다. 예를 들어, 성능이나 용량 증강을 목적으로 하나의 서버에 디스크를 추가하거나 CPU나 메모리를 업그레이드시키는 것을 말합니다. 이처럼 하나의 서버의 능력을 증강하기 때문에 수직 스케일링(vertical scaling)이라고도 합니다.

반면에 스케일아웃(Scale-out)은 장비를 추가해서 확장하는 방식을 말합니다. 기존 서버만으로 용량이나 성능의 한계가 있으면, 비슷한 사양의 서버를 연결해 추가된 분만큼 용량이 증가할 뿐만 아니라 워크로드를 분담해 성능을 높이는 병렬 컴퓨팅을 구현할 수 있습니다. 사용자는 분산 파일 시스템이나 글로벌 네임스페이스(global namespace)를 통해 스토리지 서버 클러스터를 하나의 시스템으로써 인식하며, 서버를 추가로 확장하기 때문에 수평 스케일링(horizontal scaling)이라고도 불립니다.

 

장단점 비교

 

Alt text

<스케일업과 스케일아웃 비교>

 

스케일업

스케일업 아키텍처에서는 추가적인 네트워크 연결 없이 용량을 증강할 수 있고, 추가되는 용량이나 업그레이드 비용만 부가되기에 비용적인 증강은 스케일아웃에 비해 낮습니다. 무엇보다 비교적 업그레이드가 쉽고, 필요 장비와 전력 소모를 어느 정도 아낄 수 있습니다. 또한 스케일업도 듀얼 컨트롤러로 고가용성(High Availability, HA) 구성이 가능해 다운타임을 줄일 수 있습니다.

다만 스케일업을 할수록 기존 하드웨어의 냉각, 공간, 전력공급 등의 문제가 발생할 수 있고, 하드웨어 허용 범위 내에서만 확장이 가능하기 때문에 그 이상으로 업그레이드를 하고자 한다면 새로운 장비로 교체하는 방법밖에 없습니다. 새 장비로 교체 시에도 데이터 전체의 마이그레이션 작업이 필요해 HA 구성이 아닌 이상 다운타임이 불가피하며, 저장된 데이터양에 따라 작업이 수개월 걸리는 경우도 있습니다.

스케일아웃

스케일아웃 아키텍처의 가장 큰 장점 중 하나는 확장의 유연성에 있습니다. 스케일아웃 스토리지가 보편화 되기 전, 스케일업 스토리지 시스템을 구축한 기업들은 향후 확장 가능성에 대비해 스토리지 어레이를 필요 이상으로 사두곤 했습니다. 다만 예상과는 달리 요구되는 정도가 달랐거나 확장의 필요성이 없어졌을 경우 구매해 놓은 만큼 손해가 발생하곤 했습니다. 현재 스케일아웃 방식으로 스토리지 시스템을 구축하는 기업은 서버를 필요한 만큼만 도입해 놓고, 장기적인 용량 증가 추이를 예측할 필요 없이 그때그때 필요한 만큼 서버를 추가해 용량과 성능을 확장(pay-as-you-grow)할 수 있게 되었습니다.

스케일아웃의 클러스터링이 주는 이점은 성능 향상 말고도 있습니다. 특정 데이터를 찾고자 할 때 사일로화된 시스템을 하나하나 찾아보기보다는 통합된 시스템에서 찾는 것이 더 쉽고 빠릅니다. 또한, 하나의 시스템을 전반적으로 모니터링할 수 있어 이슈를 사전에 탐지하기 쉽고, SLA 등 관리 정책을 일관적으로 정할 수 있어 요구사항에 적절히 대처할 수 있습니다.

확장성과 함께 고려해야 하는 점은 인프라의 노후화입니다. 기업의 수익과 직결된 신기술이 연 단위로 발표되고, 높은 IT 투자 비용이 드는 전자 금융 시스템에서 적게는 ERP까지, 쓰임과 투자 비용이 다변화되는 상황에서 노후화로 인한 업그레이드 주기는 이전보다 좁혀지고 있습니다. 예전에는 한 번 구축된 시스템의 교체 주기를 10년 이상으로 보고 있었지만(아직도 그런 기업이나 공공기관들이 있긴 합니다만), 최근에는 짧게 3년에서 최대 7년까지로 보는 기업이 늘고 있습니다. 교체 주기가 잦아지는 만큼 ROI를 고려했을 때 스케일아웃이 스케일업에 비해 유리하다고 할 수 있습니다. 스케일아웃 스토리지는 단순히 기존 서버에 새 서버를 연결해서 사용하거나 다운타임 없이 오래된 서버를 인프라에서 제거하면 되지만, 스케일업 스토리지는 기존 하드웨어의 일부를 교체하거나 전체를 바꾸어야 하기 때문입니다.

스케일아웃도 장점만 있는 것은 아닙니다. 무엇보다 여러 노드를 연결해 병렬 컴퓨팅 환경을 구성하고 유지하려면 아키텍처에 대한 높은 이해도가 요구됩니다. 여러 노드에 워크로드를 균등하게 분산시키기 위해 로드 밸런싱(load balancing)이 필요하고, 노드를 확장할수록 문제 발생의 잠재 원인 또한 추가한 만큼 늘어나게 됩니다. 개별 노드에는 주로 x86 범용 서버가 사용되기 때문에 개별적인 성능이나 안정성 면에서는 하이엔드 하드웨어보다 뒤떨어질 수밖에 없습니다. 또한 소프트웨어 가격이 스케일업에 비해 비싸고, 복수의 서버를 연결하기 때문에 케이블링이 복잡해지는 점도 있습니다.

 

활용

스케일아웃 방식이 레거시로서 취급되는 스케일업 방식보다 무조건 뛰어나다고 단언할 수는 없습니다. 제공할 애플리케이션의 종류나 스토리지의 용도 등에 따라 장단점이 있을 뿐입니다.

데이터베이스 워크로드 타입에 따라서 그에 적합한 확장 방식도 달라집니다. 빅데이터의 데이터 마이닝이나 검색엔진 데이터 분석 처리 등을 대표하는 OLAP(Online Analytical Processing) 애플리케이션 환경에서는 대량의 데이터 처리와 복잡한 쿼리가 이루어지기 때문에 스케일아웃 구성이 더 효율적이라고 할 수 있습니다. 반면 온라인 금융거래와 같이 워크플로우 기반에 빠르고 정확하면서 단순한 처리가 필요한 OLTP(Online Transaction Processing) 환경에서는 고성능의 스케일업 방식이 적합합니다.

백업용 스토리지를 구축하는 데 있어서 향후 수년간 데이터 증가 폭이 미미하거나 규모가 작은 경우 스케일업 방식으로 구축하는 편이 경제적일 수도 있습니다. 단지 백업하고자 하는 데이터가 수십 TB에서 페타바이트급을 넘어선다면 스케일아웃 스토리지를 도입하는 편이 성능 면과 비용효율 면에서 더욱 뛰어납니다. 복수의 노드에 부하 되는 백업 워크로드를 분산 시켜 백업속도를 높일 수 있고, 필요에 따른 유연한 확장을 할 수 있기 때문입니다. 또한, 중복제거(deduplication) 기능을 노드에 걸쳐서 적용할 수 있기 때문에 중복제거 효율도 더욱 높일 수 있습니다.

올플래시 스토리지의 경우는 조금 복잡합니다. 올플래시 스토리지 컨트롤러는 SSD의 고속 입출력을 지원할 수 있게 디자인되었기 때문에 기존 컨트롤러와는 달리 병목현상이 적다고 할 수 있습니다. 게다가 SSD는 공간 대비 용량이 커서 하드디스크보다 용량 확장의 한계가 낮은 편이고, 올플래시 시스템의 용도상 백업이나 아카이빙 보다는 데이터베이스나 가상화 환경에 사용되기 때문에 용량 확장에 덜 구애되는 편이라고 할 수 있습니다. 이와 같은 플래시의 특성으로 스케일업 방식의 단점이 보완되어 올플래시 스케일아웃 스토리지에 비해 넓은 사용처를 가집니다. 다만 그 이상의 유연성이나 성능 확장이 요구되면서 병렬 입출력 처리가 필요한 환경이라면 스케일아웃 방식이 타당한 선택이라 할 수 있겠습니다.

 

마치며

사실 빠르고 유연한 확장만 고려한다면 퍼블릭 클라우드가 답이라고 할 수 있습니다. 하드웨어 관리를 클라우드 호스팅 업체에 일임하고, 비용을 지급만 하면 편하게 확장할 수 있어 트래픽이 역동적인 애플리케이션 서비스를 제공하기에는 적합합니다. 다만 서버 사용이 장기적이거나 항상 일정한 트래픽이 유지되는 경우, 클라우드의 막대한 유지비용 문제로 결국 자체 서버를 구축하거나 코로케이션(colocation) 서비스와 함께 복합적으로 사용하는 편이 비용면에서 훨씬 효과적입니다. 이처럼 기업 IT 인프라의 TCO를 절약하기 위해서는 자사 비즈니스 환경에 대한 이해와 전략적인 서버 관리 능력이 요구됩니다.

 

참고

청약홈 뉴스:

  • https://www.yna.co.kr/view/AKR20200203050352003

IT 투자비용회수 기간 관련:

  • 박성식 & 이석준(2011), 비용관점으로 본 정보시스템 최적경제수명 도출에 대한 실증적 사례연구, Journal of Information Technology and Architecture

스케일업과 스케일아웃:

  • https://whatis.techtarget.com/definition/scale-out-storage
  • https://www.itprotoday.com/storage/scale-vs-scale-out-storage-why-choose
  • https://exagrid.com/scale-up-vs-scale-out-whitepaper/
  • https://searchstorage.techtarget.com/tip/Choosing-between-scale-up-and-scale-out-all-flash-arrays