본문 바로가기

IT 트렌드

빅데이터(BigData) 6부 - 수직확장(Scale Up)과 수평확장(Scale Out)

반응형

빅데이터 4부와 5부에서는 RDB와 Non RDB의 차이와 함께 왜 빅데이터에는 Non RDB인 NoSQL이 사용되는지 알아보았다. 아직 못 봤다면 아래 링크로 가서 보고오자!

 

빅데이터(BigData) 4부 - 기존 기술(관계형 데이터베이스)로는 힘들어요! - 관계형 데이터베이스 먼저 파악하기

빅데이터(BigData) 5부 - NoSQL(Not only SQL) 왜 너가 선택되었니?

 

자 이번에는 마지막 글에서의 궁금점이었던 RDB와 NoSQL의 성능 확장 차이에 대해 알아보기 전에 중요한 성능확장의 이유와 종류에 대해서 알아보려고 한다.

성능 확장은 왜, 언제 필요할까?

일단 우리는 성능 확장의 차이를 알아보기 전에 왜 필요한지 먼저 생각해보자.

 

사실 이 부분은 정말 간단하다. 우리가 사용하는 스마트폰을 간단히 떠올려보자. 스마트폰을 정말 오래사용하는 사람들도 많겠지만 우리는 보통 2년, 3년마다 바꾼다. 왜 그럴까?

 

가장 큰 이유는 소프트웨어는 계속적으로 업데이트로 무거워지는데 하드웨어는 그대로이기 때문이다. 우리는 2년동안 무수히 많은 앱을 업데이트하고 다운받는다. 하지만 하드웨어는 그대로이다. 즉, 어느 순간 하드웨어의 성능이 소프트웨어를 구동시키기 힘들 정도가 되는 순간이 와서 느려지거나 꺼지거나 하게 된다.

 

두 번째 이유는 용량의 부족이다. 사진을 찍고 앱을 설치하다보면 어느 순간 내 용량이 꽉 차게되고 사진, 앱 다운로드, 업데이트도 못하게 되는 순간이 온다. 그래서 우리는 구글드라이브 등에 사진을 올리고 기존 사진을 지우는 행위를 반복한다. 정말 귀찮다...

 

세 번째 이유는 새로운 하드웨어에 맞춤 소프트웨어가 등장하게 된다. 예전에는 홈화면 잠금을 비밀번호로 풀었지만 지문인식, 페이스 ID 등으로 진화했다. 하지만 구식 폰에서는 새로운 기술을 사용해 볼 수 없다.

 

이렇게 변화하는 소프트웨어, 누적된 사용량을 고정된 하드웨어가 충당하지 못하기 때문에 우리는 성능의 확장이 필요하게 되는 것이다.

수직확장(Scale Up)과 수평확장(Scale Out)

이런 성능 확장에는 두가지 방법이 있는데 바로 수직확장과 수평확장이다.

 

수작확장(위) / 수평확장(아래)

이미지 출처 : https://opsani.com/blog/scale-up-vs-scale-out-whats-the-difference/

이미지 출처 : https://www.factioninc.com/blog/hybrid-multi-cloud/scale-up-vs-scale-out-scale-out-nas-meets-multi-cloud/

 

수직확장은 그림의 윗부분과 같이 같은 프레임 내에 하드웨어의 성능을 향상시킨 것이다. 즉, 스마트폰을 계속 새롭게 바꾸는 것 또는 데스크탑의 CPU, 램(RAM), 하드디스크(SSD, HDD), 파워 등을 더 좋은 것으로 교체하는 것을 뜻한다.

 

수평확장은 그림의 아랫부분과 같이 새로운 디바이스를 서로 연결시키면서 추가하는 것이다. 결국 분산시켜서 처리하는 형태가 된다.

 

이해가 힘들다면 아래 예시를 보자.

 

커피머신에서 중요한 것은 온도와 추출시간이다. 이 온도를 유지해야 추출시간도 제대로 유지되는데 커피를 수없이 뽑다보면 온도도 제각각, 추출시간도 제각각이 된다.

 

커피머신 / 출처 : http://kr.aving.net/news/view.php?articleId=1384932

 

A씨가 커피숍을 운영하고 있다. 300만원짜리 커피머신을 샀고 이 머신은 연속으로 40잔의 커피를 추출해도 온도와 추출시간이 유지된다. 그리고 에스프레소를 추출할 수 있는 부분은 위 그림과 같이 2군데이다. 그런데 이 카페가 커피맛이 좋다고 소문이 나서 점심만 되면 사람이 100명이 몰린다. 그래서 A씨는 점심에 알바 2명을 뽑게 되었다.

 

커피머신은 한 대라서 알바생 2명을 뽑아도 효율이 잘 나오지 않았고 41번 째 손님부터는 온도, 추출시간이 제각각이라 커피 맛도 일정하지 않았다. 몇 일이 지나자 사람들에게 '이 집 커피 맛이 좀 변했는데?'라는 소리가 A씨에게까지 들리게 되었고 A씨는 고민하게 된다.

"어떻게 하면 커피맛을 유지할 수 있을까...?"

 

자 여러분이라면 어떻게 하겠는가?

 

여기서 가능한 방법은 두 가지이다.

1. 연속으로 100잔을 뽑을 수 있는 1000만원짜리 커피머신으로 교체한다.

2. 같은 성능의 머신을 2대 더 구매한다.

 

1번과 같은 방식이 바로 수직확장(Scale Up)이다. 즉, 단순히 커피머신의 성능만을 향상시켜 전체 성능을 올린 것이다.

2번과 같은 방식이 바로 수평확장(Scale Out)이다. 커피머신을 2대 더 사서 전체 성능을 올리는 것이다.

 

위의 상황에서는 2번이 훨씬 장점이 많다. 가격면에서도 100만원 절약되며 알바생 2명과 A씨 각자 커피머신 한 대씩 담당하면 된다. 효율과 가격면에서 모두 좋다는 것이 눈에 보일 것이다. 그래서 위 그림의 오른쪽과 같은 현상이 발생하는 것이다.

필자의 사견

간단히 수직확장과 수평확장에 대해서 알아보았다. 이 둘은 각각의 특징이 있고 상황에 따라 확장 방법이 정해지기에 무조건 수직확장이 좋다고 생각하면 안 된다. 스마트폰 성능을 향상시키기 위해 수평확장을 할 순 없듯이...

IT기술을 깊게 파고드는 것이 아니기에 어디에 언제 써야한다는 것은 직접적으로 설명하지 않았지만 이 정도의 감만 잡고가도 충분하다고 생각한다. 그러면 다음 편에서 제대로 RDB와 NoSQL의 성능 확장 차이에 대해 알아보도록 하자.

 

빅데이터(BigData) 7부 - 수평확장(Scale Out)은 RDB보단 NoSQL이지!

이전 글에서 수직확장(Scale Up)과 수평확장(Scale Out)에 대해 알아보았다. 아직 못 본 사람들은 아래 링크에서 먼저 보고 오자! 빅데이터(BigData) 6부 - 수직확장(Scale Up)과 수평확장(Scale Out) 이전 글에

www.kboutiq.com

 

반응형