Tencent Cloud Resources
텐센트 클라우드의 다양한 소식과 기술 문서 및 정보를 확인하실 수 있습니다.
텐센트 클라우드와 게임 인프라 아키텍처
3부 텐센트 클라우드를 활용한 게임 인프라 아키텍처 – 상
개요
지난 2부에서는 세션형 게임을 대상으로, 게임 서버들이 실제로 인프라 관점에서 어떻게 세분화되고 구성되는지 알아보았습니다.
이번 ‘3부-텐센트 클라우드를 활용한 게임 인프라 아키텍처 – 상/하’편에서는, 게임 인프라 아키텍처에 활용할 수 있는 텐센트의 클라우드 서비스들의 종류와 특징에 대해서 알아보겠습니다.
1. CVM
1.1 개요
텐센트 클라우드의 CVM은 가상화된 컴퓨팅 자원입니다. CVM을 사용하여, 가벼운 캐주얼 게임부터 복잡한 세션형 게임까지 커버할 수 있습니다.
평균 수준의 성능이 필요하다면 표준형 인스턴스가 적합하며, 대규모 온라인 게임 서비스를 위해서 컴퓨팅형 인스턴스를 사용할 수 있습니다. 실시간 온라인 게임은 높은 CPU 성능도 필요하지만, 네트워크 패킷 처리 능력도 중요합니다. 대체적으로 CPU 처리 성능이 높을 수록, PPS(Packet per second) 성능 또한 높아집니다.
1.2 CVM Dedicated Host
- 퍼블릭 클라우드는 일반적으로 멀티테넌시를 지향합니다. 하지만 어떤 사용자는 물리 서버 자원 전체를 다른 사용자로부터 배타적-독립적으로 사용하고 싶은 경우도 있습니다. 예를 들어 고부하를 견뎌야 하는 게임 서버 Fleet은, 멀티테넌시 보다는 단일테넌시로 접근하는 것이 효과적일 수 있습니다.
CDH는 가상화 된 환경을 갖춘, 전용 물리적 서버 호스트 입니다. 자원을 독점적으로 사용할 수 있고, 물리적으로 격리되어 있으며, 기타 보안 및 규정 준수에 대한 요구 사항을 충족하는 단일테넌시 서버 자원입니다.
- CDH를 구매하면, 사용자가 직접 원하는 사양으로 CVM 인스턴스를 생성하고 자유롭게 사용할 수 있습니다.
예를 들어 16 Core CDH자원을 구입하면, 여기에 4core CVM을 4개 생성하거나, 16core CVM을 1개 생성하는 등, 자유롭게 CVM을 배치할 수 있습니다.
- 텐센트 클라우드는 다섯 가지 CDH 모델을 제공합니다. (표준형 HS20, 표준형 HS10, 고IO형 HI20, 고IO형 HI10, MEM최적화 HM20, 컴퓨팅형 HC20)
다섯 가지 모델 중에서, 대규모 온라인 게임 서버에 적합한 모델은 HC20 입니다. HC20은 높은 컴퓨팅 성능과, 높은 읽기/쓰기 성능을 가지고 있습니다. HC20의 스펙은 다음과 같습니다.
- 인텔 제온 E5-2667v4 x 2EA(물리코어 16개 논리코어 32개), 메모리 96GB, SSD 1TB
- 다섯 가지 CDH 모델의 상세 스펙 정보는 다음의 URL을 참조 해 주세요.CVM Dedicated Host Models(영문)
- 텐센트 클라우드 콘솔 화면에서 CDH 자원을 필요한 만큼 구매해서 사용하실 수 있고, 사용이 끝나면 자원을 반환할 수 있습니다. CDH 자원의 여유분은 각 리전에 따라 다릅니다. CDH 자원을 예약하고 사용하기 원한다면, 메가존 클라우드에 문의 해 주세요.
2. Auto Scaling
하루 24시간 중, 게임 플레이어가 많이 접속하는 시간대가 있습니다. 게임 접속 플레이어 수가 증가할 때, 시스템의 부하도 따라서 변화 합니다. 원활한 게임 서비스를 위해서는 게임 서버들의 부하를 적절한 시점에 확장할 수 있어야 하고, 운영 비용의 효율을 위해서는 부하가 감소할 때 꼭 필요한 만큼의 시스템 수를 유지할 수 있는 기술이 필요합니다.
단일 서버의 성능을 높이거나 낮추는 것은 Scale-up/down 이라고 하고, 전체 서버의 숫자를 줄이거나 늘리는 것은 Scale-in/out 이라고 합니다.
scale in/out을 자동으로 수행하는 방법은, ‘정해진 schedule 시간에 따라 수행’하는 방법과, ‘시스템 부하를 모니터링하고 동적으로 수행’하는 방법이 있습니다.
텐센트의 Auto Scaling 서비스는 시스템 부하를 모니터링하고, 시스템의 확장이나 축소를 동적으로 수행하여 운영중인 시스템 수를 자동으로 조절합니다.
텐센트 클라우드의 Auto Scaling 서비스를 사용하면, 전체 게임 시스템 성능을 항상 적정 수준으로 유지할 수 있습니다. 텐센트 클라우드의 Auto Scaling은 무료 서비스 입니다. 단, Auto Scaling에 의해 자동으로 추가 되는 CVM들은 과금 대상이 되며, 사용한 만큼 과금 됩니다.
3. 관계형 데이터베이스
텐센트 클라우드에서 제공하는 관계형 데이터베이스는 MySQL과 MariaDB, SQL Server가 있습니다.
텐센트 클라우드의 데이터베이스들은 높은 가용성과 확장성을 제공하며, 쉽고 편리하게 사용할 수 있도록 관리형 서비스(Managed Service) 형태로 제공되고 있습니다.
3.1 Tencent DB for MySQL
MySQL은 인기 있고 가장 많이 사용되는 RDBMS 데이터베이스 엔진 중에 하나입니다. Tencent DB for MySQL은, 기존 오픈소스 MySQL을 기반으로 텐센트 클라우드에서 개발한 고성능 분산 데이터베이스 입니다.
Tencent DB for MySQL은 다음과 같은 특징들을 가지고 있습니다.
- 기존 MySQL과 프로토콜 수준에서 완전히 호환 됩니다.
- 고성능과 데이터 안정성 보장을 위해 MySQL cluster service 구성이 가능하며, 데이터 안정성은99.9996%에 이릅니다.
- 백업, 확장, 마이그레이션 기능들을 제공합니다.
- 읽기 성능 향상을 위해, 읽기전용 인스턴스 복제가 가능합니다.
- NVMe SSD를 사용하면 최대 240,000 QPS를 지원합니다. 최대 6TB의 저장 공간이 지원됩니다.
- SQL injection 공격과 무차별대입공격(brute force attacks)을 방어합니다.
Tencent DB for MySQL 사용 요금
- Tencent DB for MySQL 월간 구독 방식과, 종량제 방식으로 구매하고 사용할 수 있습니다.
- 요금은 DB인스턴스의 메모리 사용요금과 스토리지 사용요금 합으로 과금됩니다.
TencentDB for MySQL의 자세한 가격 정보는 아래 URL을 참조 해 주세요.
Tencent DB for MySQL 제품 가격(영문)
3.2 Tencent DB for MariaDB
TencentDB for MariaDB는 MySQL 버전 5.5 및 5.6 버전과 호환됩니다.
TencentDB for MariaDB의 가용성은 99.99 % 이상입니다. 마스터DB 1개와 슬레이브DB 1개를 묶어 총 2개의 인스턴스로 구성하거나, 또는 마스터DB 1개와 슬레이브DB 2개를 묶어서 총 3개 인스턴스로 구성합니다. 결함이 발생한 노드를 자동으로 복구하고, 백업 및 롤백을 자동으로 수행하며 원활하고 안전한 비즈니스 운영을 가능하게 합니다. (Tencent DB for MariaDB는 서울 리전에 출시 예정입니다.)
3.3 Tencent DB for SQL Server
3.3.1 SQL Server 개요
Tencent DB for SQL Server는 클라우드 환경에서 사용 가능한 Microsoft의 MS SQL Server 데이터베이스 입니다. 기존에 게임 데이터 저장을 위해 MS SQL Server를 사용하고 있었다면, 텐센트 클라우드에서도 쉽게 SQL Server를 사용하실 수 있습니다.
Tencent DB for SQL Server에는 Microsoft의 정식 라이선스가 부여되어 있으므로, 별도의 MS SQL라이선스를 구매할 필요가 없이 사용량만큼 요금을 지불하면 됩니다. 요금은 후불제로 지불할 수 있습니다.
주) Tencent DB for SQL Server에 부여된 라이선스는, 텐센트 클라우드 상에서 SQL Server를 사용할 때만 유효합니다.
(텐센트 클라우드가 아닌) 다른 환경에 MS SQL Server를 설치하고 사용하려면, 그에 맞는 라이선스를 별도 구매하셔야 합니다.
- 안정성 : Tencent DB for SQL Server는 안정성 향상을 위해, 데이터베이스 미러링을 합니다. 데이터 센터 내에서도 마스터 DB와 미러 DB를 서로 다른 랙에 분리해서 설치하고 실행 합니다. 덕분에 데이터 안정성은99.9996%, 서비스 가용성은 99.95%에 이릅니다.
- 지원하는 데이터베이스 엔진 버전은 다음과 같습니다.
SQL Server 2008, 2012, SQL Server 2016 (Enterprise/Standard), SQL Server 2017 (Enterprise/Standard) - 인스턴스 유형은 ‘고 가용성 에디션’과 ‘클러스터 에디션’, 두 가지 유형을 지원합니다.
‘고 가용성 에디션’은 마스터 DB와 미러 DB 두 대의 서버를 사용하는 유형입니다.
‘클러스터 에디션’은 마이크로소프트 SQL Server의 자체 기능인 Always-On을 사용합니다.
(클러스터 에디션은 SQL Server 2017 Enterprise 에서만 지원합니다.)
3.3.2 SQL Server 사용 요금
- TencentDB for SQL Server는 종량제 방식으로 구매하고 사용할 수 있습니다.
- 요금은 DB인스턴스의 메모리 사용요금과 스토리지 사용요금 합으로 과금됩니다.
예) 서울 리전에서 메모리 사용량 2GB, 스토리지 10GB, 1시간 사용했을 경우의 요금은 다음과 같습니다.
사용요금 = (0.0592 USD * 2 ) + (0.000444 USD * 10) = (0.1184) + (0.00444) = 0.12284 USD
TencentDB for SQL Server의 자세한 가격 정보는 아래 URL을 참조 해 주세요.
Tencent DB for SQL Server 제품 가격(영문)
4. NoSQL 데이터베이스
기존의 관계형 데이터베이스는 대량의 데이터를 빠른 속도로 처리하기가 쉽지 않았습니다. 그 대안으로 NoSQL은 빠른 성능을 자랑하며, 고성능을 요구하는 여러 비즈니스 수요를 흡수하며 빠른 속도로 발전했습니다. NoSQL이 관계형 데이터베이스의 약점을 보완하면서, 여러 분야에서 RDBMS와 NoSQL을 함께 사용하는 사례가 늘어났고, 게임 분야에서도 NoSQL을 사용하는 사례가 많아졌습니다.
텐센트 클라우드에서 제공하는 NoSQL Database에는 Key-value 기반의 Redis와 Document 기반의 MongoDB가 있습니다.
또한 텐센트가 게임 데이터 저장에 초점을 맞추어 만든, 고성능의 NoSQL Database로 TcaplusDB 제품이 있습니다.
4.1 Tencent DB for Redis
Tencent DB for Redis는 텐센트 클라우드가 제공하는 Key-value 기반의 NoSQL Database입니다. 기존의 Redis 프로토콜과 완전히 호환 됩니다.
Tencent DB for Redis는 다음과 같은 특징을 가지고 있습니다.
텐센트 클라우드에서 클릭 몇 번 만으로 간편하게 Redis를 사용할 수 있습니다. 게임 서비스에 사용하기 위해 더 이상 Redis 서비스를 수동으로 설치하고 유지관리 할 필요가 없습니다.
- 데이터 안정성을 보장하기 위해, 인스턴스 데이터를 정기적으로 자동 백업합니다.
- 텐센트 클라우드의 전문가가 Redis의 핵심 소스 코드를 최적화하여, 초 고성능을 제공합니다.
- 저장 용량 확장이 필요하면, 웹 콘솔화면에서 한 번의 클릭만으로 확장할 수 있습니다.
- 장애에 대비하는 Master/Slave 이중화 구조를 제공합니다.
고성능의 Tencent DB for Redis를 사용해서, 게임에서 요구하는 읽기/쓰기 DB로 활용할 수 있습니다. 예를 들어 게임의 랭킹 시스템은 Sorted Set 자료형을 사용하여 간편하게 구현할 수 있습니다. 사용자 세션 데이터를 저장하고 공유하는 cache로 활용할 수도 있습니다. 어떠한 데이터든 Key-value로 표현 가능한 데이터 집합은 Redis를 사용해서 고속으로 읽고 쓸 수 있습니다.
TencentDB for Redis 사용 요금
- TencentDB for Redis는 종량제 및 월간 구독, 두 가지 요금제로 사용할 수 있습니다.
- 월 15일 이상 오랜 기간 사용하면 더 저렴한 단가가 적용됩니다.
Tencent DB for Redis의 자세한 가격 정보는 아래 URL을 참조 해 주세요.
TencentDB for Redis 가격 정보(영문)
4.2 Tencent DB for MongoDB
Tencent DB for MongoDB는, MongoDB를 기반으로 텐센트 클라우드가 최적화한 NoSQL 데이터베이스 입니다. 고성능의 안전하고 안정적이며, 탄력적인 확장이 가능한 클라우드 파일 데이터베이스 서비스 입니다. 기존 MongoDB 프로토콜과 100% 호환하며, QPS(초당 쿼리 횟수)는 최대 3만에 이릅니다. 서비스 피크 타임에도 대량의 동시 접속 요청을 원활하게 지원하며, 자동 재해 복구도 지원합니다.
샤딩 기술을 활용하여 다양한 물리 저장소에 데이터를 무제한으로 저장할 수 있고, 부하 분산과 용량 확장이 가능합니다.
데이터를 스스로 백업하고 손실 없이 복구합니다. 인스턴스 클러스터는 일 1회 백업하고, 이중화 시스템 핫 백업은 실시간으로 이루어지며, 5일에 한 번 콜드 백업 데이터를 다운로드 합니다.
TencentDB for MongoDB는 선불 정액제와 후불 종량제, 두 가지 요금제로 사용할 수 있습니다.
선불 정액제 과금 방식은 월정액과 연정액 중에서 선택할 수 있습니다. 후불 종량제 과금 방식은 실제 사용량에 따라 요금이 산정됩니다.
Tencent DB for MongoDB의 자세한 가격 정보는 아래 URL을 참조 해 주세요.
TencentDB for MongoDB 가격 정보(영문)
4.3 Tencent DB for TcaplusDB
Tencent DB for TcaplusDB는, 텐센트가 게임을 위해 만든 고성능의 분산 NoSQL 데이터베이스 입니다.
실시간 온라인 게임에서는, 순간적으로 발생하는 대량의 데이터를 빠르게 저장하고 조회할 수 있어야 합니다. 기존의 관계형 데이터베이스만으로 게임 데이터를 처리하기 어려워졌고, 게임 업계에서는 관계형 데이터베이스와 NoSQL을 함께 사용하거나, 독자적인 방법으로 게임 데이터를 저장하고 처리했습니다.
텐센트는 게임에 적합한 데이터베이스를 만들기 위해, 텐센트가 가진 기술들을 TcaplusDB에 집약했습니다. TcaplusDB를 사용하면, 관계형 데이터베이스와 NoSQL을 같이 사용하는 복잡한 구성이 필요 없습니다.
TcaplusDB의 주요 특징은 다음과 같습니다.
- 쿼리 처리 성능은 단일서버당 초당 10만 QPS에 이릅니다.
- TcaplusDB는 테이블 하나에 50TB의 데이터를 저장할 수 있습니다.
- 스토리지 공간에 대한 상한선이 없으므로 용량 확장이 유연합니다.
- 게임 서비스 중단 없이 스토리지 용량을 동적으로 확장할 수 있습니다.
- 이중화 구성으로 빠른 장애 복구를 보장하며, 가용성은99.999%에 이릅니다.
- 고성능의 읽기/쓰기를 위해 Protocol Buffer 방식의 API를 지원합니다.
TcaplusDB는 사용한 만큼 요금을 지불할 수 있습니다. 사용량은 매일 청구되며, 일일 사용량은 다음 날 자동으로 공제됩니다.
Tencent DB for TcaplusDB의 자세한 가격 정보는 아래 URL을 참조 해 주세요.
TencentDB for TcaplusDB 가격 정보(영문)
수고하셨습니다!
다음 ‘3부-텐센트 클라우드를 활용한 게임 인프라 아키텍처 – 하’편에서는, 계속해서 게임 인프라 아키텍처에 활용할 수 있는 보안 제품들 종류와 특징에 대해서 알아보겠습니다.
기술 블로그 내용 중에 궁금한 점이 있다면, 질문하기를 통해 문의 해 주세요.
참고링크
- Tencent Cloud 문서 센터
- 이 콘텐츠는 저작권법에 의해 보호받는 저작물로 메가존클라우드에 저작권이 있습니다.
- 이 콘텐츠는 사전동의 없이 2차 가공 및 영리 목적으로의 이용을 금합니다.