[게임 서버] 4.8 서버 구동 환경
카테고리: GameServer
태그: GameServer
📦 4. 게임 서버와 클라이언트
👉🏻 항목 8: 서버 구동 환경
📜 서버 플랫폼의 역사
이전 (초기):
- 윈도 서버를 사용하였다
- IOCP를 통해 수백수천의 네트워크 연결을 처리할 수 있었다
- 서버/클라이언트가 동일한 소스 코드를 빌드할 수 있었다
이후 (현재):
- 리눅스/유닉스에서 IOCP에 준하는 기능을 제공하였다
- 리눅스 서버가 주류로 자리잡음
📋 서버 요구 사항
1. 신뢰성:
- 인터넷이 끊기지 않고, 속도가 균일해야 한다
2. 보안성:
- 외부의 침입에 안전해야 한다
3. 가용성:
- 서버는 쉽게 고장나지 않고, 지속적으로 접근할 수 있어야 한다
🖥️ 서버 종류
두 가지 주요 유형:
- 온프레미스(on-premise) 서버
- 클라우드 서버
🏢 온프레미스(on-premise) 서버
정의:
- 자체 서버, 온프림 서버라고도 한다
- 데이터센터에 직접 서버 하드웨어와 운영체제를 설치
단점:
- 유동적인 사용자 수에 빠르게 대응하지 못한다
☁️ 클라우드 서버
구조:
- 리얼 머신 내에 가상 머신을 사용하여 서버를 구축한다
- 리얼 머신 내에 여러 가상 머신이 돌아간다
장점:
- 서버를 필요할 때마다 쉽게 늘리거나 줄일 수 있다
단점:
- 가상 머신은 리얼 머신보단 느리다
가상화의 유연성:
- 윈도우 안의, 리눅스 안의, 윈도우 안의, 리눅스 안의, 리눅스가 가능하다
- ⚠️ 가능하다는 거지, 효율적이라는 건 절대 아니다
📊 물리적 서버 vs 클라우드 서버
| 구분 | 물리적 서버 | 클라우드 서버 |
|---|---|---|
| 특징 | 서버 컴퓨터 한 대에 운영체제 하나 구동 | 서버 컴퓨터 한 대에 여러 운영체제를 가상 머신으로 구동 |
| 서버 한 대당 유지 비용 | 낮음 | 높음 |
| 서버 증설 속도 | 느림 | 빠름 |
| 서버 철거 속도 | 느림 | 빠름 |
| 자동 스케일 아웃 | 불가능 | 가능 |
| 처리 속도 균일성 | 높음 | 낮음 |
| 장애 처리 | 느림 | 빠름 |
🏗️ 클라우드 서비스의 계층
1️⃣ IaaS (Infrastructure as a Service)
정의:
- 가상 머신 자체를 제공하는 서비스이다
예시:
- Oracle Cloud의 컴퓨팅 서비스
특징:
- 가장 낮은 계층
- 최대한의 제어권
- 운영체제부터 직접 관리
2️⃣ PaaS (Platform as a Service)
정의:
- IaaS보다 상위 계층
- 운영체제, 프레임워크 소프트웨어가 이미 돌아가고 있으며, 건드릴 수 없다
예시:
- 웹 호스팅 서비스
특징:
- 플랫폼 레벨 추상화
- 인프라 관리 불필요
- 애플리케이션 개발에 집중
3️⃣ SaaS (Software as a Service)
정의:
- PaaS보다 상위 계층
- 코딩 자체가 필요 없다
예시:
- Google Analytics
특징:
- 가장 높은 계층
- 완성된 소프트웨어 제공
- 설정만으로 사용 가능
🧐 정리
서버 선택 기준
물리적 서버를 선택하는 경우:
- 안정적이고 예측 가능한 트래픽
- 장기적으로 운영 (2-3년 이상)
- 최고 성능이 필요한 경우
- 초기 투자 비용 감당 가능
클라우드 서버를 선택하는 경우:
- 유동적인 트래픽
- 빠른 스케일링 필요
- 초기 투자 비용 최소화
- 유연한 인프라 관리
클라우드 계층 선택 가이드
| 계층 | 제어 수준 | 관리 복잡도 | 적합한 경우 |
|---|---|---|---|
| IaaS | 높음 | 높음 | 완전한 제어 필요 커스텀 환경 구축 |
| PaaS | 중간 | 중간 | 애플리케이션 개발에 집중 빠른 배포 필요 |
| SaaS | 낮음 | 낮음 | 즉시 사용 가능한 서비스 필요 개발 불필요 |
댓글남기기