더북(TheBook)

4.6.2 확장성

확장성이란 서버를 얼마나 많이 설치할 수 있느냐를 의미합니다. 게임 사용자 측면에서 ‘사용자 수가 늘어나더라도 서비스 품질이 떨어지지 않고 유지되느냐’가 곧 확장성을 의미합니다. 확장성이 확보된 게임 서버는 사용자 수가 어마어마하게 많을 때(동시접속자 10억 명 정도)조차 서비스를 이용할 때 서버가 죽거나 느려지지 않고 쾌적한 게임 환경을 제공합니다.

서버 확장성을 올리는 방법에는 크게 수직적 확장(scale-up)과 수평적 확장(scale-out)이 있습니다. 쉽게 말해서 수직적 확장은 서버의 하드웨어를 더 좋은 것으로 바꾸는 것이고, 수평적 확장은 서버의 컴퓨터 개수를 늘리는 것입니다.

표 4-1에 두 방법의 장단점을 비교해 두었습니다.

▼ 표 4-1 수직적 확장과 수평적 확장

구분

수직적 확장

수평적 확장

확장 종류

서버 머신의 부품을 업그레이드 혹은 서버 머신 안의 CPU, RAM을 증설한다.

서버 머신의 개수를 증설한다.

서버 소프트웨어
설계 비용

낮다.

높다.

확장 비용

높다(기하급수적으로 높아진다).

낮다(선형적으로 높아진다).

과부하 지점

서버 컴퓨터 자체

네트워크 장치

오류 가능성

낮다(로컬 머신 안에서 동기 프로그래밍 방식으로 작동하므로).

높다(여러 머신에 걸쳐 비동기 프로그래밍 방식으로 작동하므로).

단위 처리 속도

높다(로컬 컴퓨터의 CPU와 RAM만 사용).

낮다(여러 서버 컴퓨터 간의 메시징이 오가면서 처리하므로).

처리 가능 총량

낮다(서버 컴퓨터 한 대의 성능만 사용하므로).

높다(여러 서버 컴퓨터로 부하가 분산되므로).

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.