Skip to content

Scalability

Scalability is the capability of a system, network, or process to handle a growing amount of work, or its potential to be enlarged to accommodate that growth. For example, a system is considered scalable if it is capable of increasing its total output under an increased load when resources (typically hardware) are added. An analogous meaning is implied when the word is used in an economic context, where a company's scalability implies that the underlying business model offers the potential for economic growth within the company.

About

scalable, scalability는 웹 기술 관련 서적이면 거의 항상 나오는 말입니다.

웹 애플리케이션이 'scalable하다'라는 말은 사용자 수가 급증해도 애플리케이션이 멈추거나 성능이 크게 떨어지는 일이 없다는 뜻으로 쓰이는 경우가 많습니다. 그렇다면 '확장성이 있다' 정도로 번역할 수도 있겠죠.

그러나 scalablity/scalable을 '확장성/확장성이 있다'라고 번역하는 것은 몇가지 문제가 있습니다. 우선 extensible, 즉 기존 애플리케이션에 새로운 기능을 추가하는 것이 가능하다 또는 쉽다라는 의미와 혼동할 수 있구요.... 두 번째는 scalable은 확장뿐만 아니라 축소라는 개념도 가지고 있기 때문입니다.

간단히 말하면, 많은 사용자에서도 잘 돌아갈 뿐만 아니라, 사용자 수가 적으면 그만큼 서버 자원을 아낄 수 있어야 scalability가 있다고 할 수 있습니다. 또한 scalability는 대형 시스템에서는 대형 시스템에 맞게, 소형 시스템에서는 소형 시스템에 맞게 돌아갈 수 있는 능력이라는 의미까지 포괄합니다.

즉 설치 상황이나 운영 상황에 따라 애플리케이션의 규모가 동적으로 변할 수 있는 능력이 scalability이죠. 그래서 '규모 가변성'이라는 말을 선택한 것입니다.

Upgrade

Scale-out_And_Scale-up.png

스케일 아웃 (Scale out)

접속된 서버의 대수를 늘려 처리 능력을 향상시키는 것이다. 수평 스케일로 불리기도 한다. 전형적으로는 웹 서버 펌으로서 사용되고 있는 랙 마운트 서버군에 서버를 추가하는 것이나 브레이드 서버에 브레이드를 추가하는 것 등이다. 서버의 가상화 기능을 사용하고 하나의 케이스 내에서 가상적으로 복수 서버를 구축해 스케일 아웃과 동등의 효과를 제공할 수도 있다. 이러한 방식을 특히 스케일 위드인 또는 가상 스케일 아웃 등으로 부르기도 한다.

개개의 처리는 비교적 단순하지만 다수의 처리를 동시 병행적으로 실시하지 않으면 안 되는 경우에 적합한데 갱신 데이터의 정합성(데이터가 서로 모순 없이 일관되게 일치해야 하는 경우) 유지에 대한 요건이 별로 어렵지 않은 경우에 적절하다. 즉 높은 병렬성을 실현하기 쉬운 경우이다. 웹 서버 펌, 데이터가 읽기 전용인 검색엔진 데이터 분석 처리 VOD(주문형 비디오) 일부의 과학기술 계산, 메일 서버나 게시판 등의 어플리케이션 등에 적용할 수 있다.

스케일 업 (Scale up)

서버 그 자체를 증강하는 것에 의해서 처리 능력을 향상시키는 것이다. 수직 스케일로 불리기도 한다. 전형적으로는 SMP(대칭형 멀티 프로세서)에 대해 프로세서를 추가하는 것이나 프로세서 그 자체를 고성능 모델로 옮겨놓는 것을 가리킨다.

어플리케이션 서버에서는 스케일 아웃이 가능해도 빈번히 갱신이 발생하여 정합성(데이터가 서로 모순 없이 일관되게 일치해야 하는 경우) 유지가 어려운 데이터베이스 서버에서는 스케일 업이 필요하다. 즉 하나의 이미지 데이타베이스에 대해서 빈번히 갱신이 발생하는, 이른바 OLTP(온라인 트랜잭션 처리)에는 스케일 업이 적합하다.

Downgrade

사용하지 않는 리소스 확보를 위해 사용된다.

스케일 인 (Scale in)

접속된 서버의 대수를 줄인다.

스케일 다운 (Scale down)

서버의 처리 능력을 줄인다.

See also

Favorite site