Contents

System/OS
2018.08.29 08:28

서버 확장을 위한 두 가지 방법

조회 수 43 댓글 0
Atachment
첨부 '2'
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

server01.jpg



# 스케일 아웃과 스케일 업 (Scale Out / Scale Up)


서버를 운영하다 보면 갑작스런 사용자의 증가나 사업 확장 등의 이유로 더 많은 서버 용량과 성능이 필요하게 된다. 이럴 때 시스템을 확장하는 방법으로는 ‘스케일 아웃’과 ‘스케일 업’ 이 두 가지 방법이 있다.


server02.jpg



1. 스케일 아웃 (Scale Out)

'스케일 아웃'이란 서버의 대수를 늘려 전체 처리 능력을 향상시키는 방법이다. 수평 스케일(Horizontal Scale)이라고 부르기도 한다. 서버의 가상화 기능을 사용하고 하나의 케이스 내에서 가상으로 복수 서버를 구축해 스케일 아웃과 동등한 효과를 제공할 수도 있다. 이러한 방식은 스케일 위드인 또는 가상 스케일 아웃 이라고 부르기도 한다.

스케일 아웃의 경우 서버 한 대가 장애로 다운 되더라도 다른 서버로 서비스 제공이 가능하다는 장점이 있다. 각 서버에 걸리는 부하를 균등하게 분배해주는 '로드밸런싱'이 필수적으로 동반되어야 한다.

개개의 처리가 단순하지만 다수의 처리를 동시 병행적으로 필요로 하는 경우에 적합하다.  또한 데이터 정합성(데이터의 모순없이 일관되게 일치함) 유지에 대한 요건이 어렵지 않은 경우에 적합하다. 주로 웹 서버나 데이터가 읽기 전용인 검색엔진 데이터 분석 처리, VOD(주문형비디오) 서비스, 일부의 과학기술 계산, 메일 서버나 게시판 등의 애플리케이션 등의 운영에 사용된다.



2. 스케일 업 (Scale Up)

'스케일 업'은 서버 자체를 증강하여 처리 능력을 향상시키는 방법이다. 수직 스케일(Vertical Scale)이라고 부르기도 한다. 주로 CPU나 RAM 등을 추가하거나 그 외의 부품을 고성능으로 교환하는 방법을 의미한다.

스케일 업의 경우 한 대의 서버에 모든 부하가 집중되므로 장애 시 해당 서비스에 큰 영향을 줄 수 있는 위험성이 있다.

애플리케이션 서버에서는 스케일 아웃이 가능하지만 빈번히 갱신이 발생하는 OLTP(On-Line Transaction Processing) 데이터베이스에는 정합성(데이터의 모순없이 일관되게 일치함) 유지를 위해 스케일 업이 적합하다.



3. '스케일 아웃'과 '스케일 업'의 비교

스케일 아웃(Scale Out)

스케일 업(Scale Up)

확장성

하나의 장비에서 처리하던 일을 여러 장비에 나눠서 처리하도록 설계를 변경, 수평 확장, 지속적 확장이 가능

더 빠른 속도의 CPU로 변경하거나 더 많은 RAM을 추가하는 등의 하드웨어 장비의 성능을 높이는 것. 수직 확장, 성능 확장에 한계가 있음

서버비용

비교적 저렴한 서버를 사용하므로 일반적으로 비용 부담이 적음

성능 증가에 따른 비용 증가폭이 크며 일반적으로 비용 부담이 큼

운영비용

대수가 늘어날수록 관리 편의성이 떨어지며 서버의 상면 비용을 포함한 운영 비용이 증가함

관리 편의성이나 운영 비용은 스케일 업에 따라 큰 변화가 없음

장애

읽기/쓰기가 여러 대의 서버에 분산되어 처리됨으로 장애 시 전면 장애의 가능성이 적음

한 대의 서버에 부하가 집중되므로 장애 시 장애 영향도가 큼

기술관점

Sharding, Query-off Loading, Queue, In Memory Cache, NoSQL, Object Storage, Distributed Storage

고성능 CPU, Memory 확장, SSD

용도

분산처리 시스템, Global 웹 애플리케이션, 점진적 증가 가능, 보통 스케일 업보다 저렴, 설계/구축/관리 비용 증가

고성능 Legacy 애플리케이션, 구축이 쉽고 관리 용이, 단계적 증가가 어렵고 근본적인 해결이 안될 수 있음



?

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
» System/OS 서버 확장을 위한 두 가지 방법 file hooni 2018.08.29 43
1120 Develop [ios] Requesting Location Permissions in iOS file hooni 2018.08.18 24
1119 Develop [PHP] Mac OS에서 PHP 7 설치하기 file hooni 2018.05.11 272
1118 Develop [php] Connect to Firebase Console in Laravel file hooni 2018.05.09 237
1117 Develop [api] 인스타그램 API Access_Token 발급 방법 (Instagram API) 2 file hooni 2018.04.05 1499
1116 Develop [api] 인스타그램에서 최신 이미지 가져오기 (Using Instagram API) 10 file hooni 2018.04.05 2743
1115 Develop [js] Click button copy to clipboard hooni 2018.04.05 164
1114 Develop [php] Laravel 4. twitter bootstrap 적용하기 hooni 2018.04.05 199
1113 System/OS How to Setup an Email Server on CentOS 7 hooni 2018.04.05 79
1112 Develop How to Test SMTP AUTH using Telnet hooni 2018.04.05 88
1111 Develop [python] DJI Tello 드론 코딩 (프로그래밍) 1 file hooni 2018.03.04 1318
1110 System/OS [mac] 맥에서 기본 실행 앱 변경하기 file hooni 2018.03.02 132
1109 System/OS 콘솔에서 패스워드 걸린 zip 압축하는 명령 hooni 2018.03.02 98
1108 Develop What is difference between Get, Post, Put and Delete? hooni 2018.02.28 87
1107 Develop [php] Laravel Route에서 PC/Mobile 분기 hooni 2018.01.24 236
1106 Develop Laravel 5 Failed opening required bootstrap/../vendor/autoload.php hooni 2018.01.24 137
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 71 Next
/ 71