본문 바로가기
개발 용어 정리

[서버용어] 스케일 업(Scale-up), 스케일 아웃(Scale-out), 스케일 인(Scale-in), 스케일 다운(Scale-down)

by minhyeok.lee 2023. 3. 1.
반응형

스케일 업(Scale-up), 스케일 아웃(Scale-out)이란?

스케일 업 (Scale-up)

1. 성능이나 용량 증강을 목적으로 하나의 서버에 디스크를 추가하거나 CPU나 메모리를 업그레이드시키는 것을 말한다.

2. 하나의 서버의 능력을 증강하기 때문에 수직 스케일링(vertical scaling)이라고도 한다.

3. 즉, 기존의 하드웨어를 보다 높은 사양으로 업그레이드하는 것을 말한다.

 

스케일 아웃 (Scale-out)

1. 기존의 서버와 같은 사양 또는 비슷한 사양의 서버 대수를 증가시키는 방법으로 처리 능력을 향샹시키는 것을 말한다.

2. 스케일 아웃 방식을 "수평 스케일"이라고 부르기도 하고, 확장이 스케일 업보다는 다소 유연하다.

3. 1의 처리 능력을 가진 서버에 동일한 서버 4대를 더 추가하여, 총 5의 처리 능력을 만드는 것이다.

4. 서버가 여러 대가 되기 때문에 각 서버에 걸리는 부하를 균등하게 해주는 ‘로드밸런싱’이 필수적으로 동반되어야 한다.

 * 로드 밸런싱: 한 대의 서버로 부하가 집중되지 않도록 트래픽을 관리한다.

 

스케일 업과 스케일 아웃은 왜 생겼을까?

1. 소프트웨어 서비스가 하나 있었고 해당 서버가 감당가능한 사용자는 100명이라고 하자.

2. 사용자가 100명이 넘어갔고 그에 따라 서버에 부하(부담)이 가게 되었다.

3. 이를 해결하기위해 서버 컴퓨터의 성능(질)을 올려보자라고 해서 나온 개념이 Scale-up이다.

4. 그렇게 서버에 문제가 생길 때마다 서버 컴퓨터의 성능을 올려 서버는 1000명의 사용자를 감당가능하게 되었다.

5. 그런데 더 이상 서버 컴퓨터의 성능을 기술적으로 올릴 수 없었다. (소켓의 수, 하드웨어의 기술적 문제 등)

6. 이를 해결하기위해 서버 컴퓨터의 양을 늘려 여러 대의 서버 컴퓨터가 나누어 고객을 감당하자해서 나온 개념이 Scale-out이다.

 

 

스케일 업 (Scale-up) 장, 단점

장점

1. 추가적인 네트워크 연결 없이 용량을 증강할 수 있다.

2. 추가되는 용량이나 업그레이드 비용만 부가되기에 비용적인 증강이 스케일아웃에 비해 낮고 설계가 쉽다.

3. 필요 장비와 전력 소모를 어느 정도 아낄 수 있고 인프라 비용이 추가로 발생하지 않는다.

4. 서버를 추가하는 방법이 아니기 때문에 여러대의 서버를 두는 것보다 데이터 정합성 이슈(데이터가 일관되지 않는 문제)에서 자유롭다.

 

단점

1. 하드웨어적 한계가 있다.

 - 스케일 업을 할수록 기존 하드웨어의 냉각, 공간, 전력공급 등의 문제가 발생할 수 있고, 하드웨어 허용 범위 내에서만 확장이 가능하기 때문에 그 이상으로 업그레이드를 하고자 한다면 한계가 있다.

 - 스케일 업을 하는 방법은 새로운 장비로 교체하는 방법밖에 없고 그 또한 성능이 좋지 않다면 의미가 없다.

 - 스케일 업의 일정 수준을 넘어가는 순간, 성능 증가 폭이 미미해지는 한계가 있다.

2. 서버 한 대에 모든 부하가 집중되므로 장애 시 서버가 복구될 때까지 서비스를 중단해야 하는 상황이 발생한다.

 

* 한 대의 서버에서 모든 데이터를 처리하므로 데이터 갱신이 빈번하게 일어나는 데이터베이스 서버에 적합한 방식이다.

 

 

스케일 아웃 (Scale-out) 장, 단점

장점

1. 서버 한 대가 장애로 다운되더라도 다른 서버로 서비스 제공이 가능하다는 장점이 있다.

2. 용량, 성능 확장에 한계가 없다. 하드웨어를 변경하는 것이 아닌 비슷한 성능의 서버를 여러 대 두는 방법이기 때문에, 확장이 무제한 가능하다.

3. 즉, 단일 서버에 작업이 쌓여서 멈춰있는 병목현상을 줄일 수 있다.

 

단점

1. 여러 대의 서버로 돌아가기 때문에  데이터 정합성 이슈(데이터가 일관되지 않는 문제)가 생길 수 있다.

2. 모든 서버에서 데이터 일관성을 유지해야하기 때문에 설계 및 관리가 복잡하다.

3. 세션, 웹 이미지 등 서버에 저장되는 데이터를 어떤식으로 공유해야할지에 대한 기술적인 한계가 있다.

4. 병렬 컴퓨팅 환경을 구성, 유지하려면, 로드 밸런싱에 대한 높은 이해도가 요구된다.

 * 병렬 컴퓨팅 환경: 여러 개의 프로세서를 통해 하나의 프로그램을 처리하는 환경이다.

 

* 모든 서버가 동일한 데이터를 가지고 있어야 하므로, 데이터 변화가 적은 웹서버에 적당하다.

네트워크 서버 설계 및 소프트 웨어 변경 비용이 더 클 수 있기 때문에 모든 서비스에 적합한 방식은 아니고 클라우드 환경 및 대규모 서비스환경에서 권장되는 방법이다. 

 

 

스케일 다운 (Scale-down), 스케일 인 (Scale-in)이란?

스케일 다운 (Scale-down)

1. 스케일 업의 반대 개념이다.

2. 성능이나 용량 감소를 목적으로 하나의 서버에 디스크를 추출하거나 CPU나 메모리를 다운그레이드하는 것을 말한다.

3. 즉, 기존의 하드웨어를 보다 낮은 사양으로 다운그레이드하는 것을 말한다.

 

스케일 인 (Scale-in):

1. 스케일 아웃의 반대 개념이다.

2. 서버의 대수를 줄이는 것이다.

3. 스케일 아웃과 스케일 인을 트래픽등에 따라 자동으로 결정되게 설정하는 것을 오토 스케일링(Auto-Scaling)이라 한다.

 

* 두 개념 모두 주로 쓰이는 개념은 아니고 자원에 비해 트래픽이 너무 낮을 때, 관리자가 볼 때 서버가 일하는거에 비해 너무 좋은 성능을 가지고 있어 노는 자원(잉여 자원)이 많다고 생각이 들어 성능을 낮추는 개념이다.

 

반응형

댓글