관리 콘솔을 사용한 설정
관리 콘솔을 사용하여 마이크로서비스에 리소스를 생성한다
먼저 프로젝트와 리전, 마이크로서비스의 관계에 대한 이해를 깊게 해봅시다.
프로젝트와 마이크로서비스는 다음과 같은 데이터 구조를 가집니다.
Gs2Project "1" *-- "many" Region
Region "1" *-- "many" Microservice
Microservice "1" *-- "many" Namespace
Namespace "1" *-- "many" Resource프로젝트 바로 아래에는 리전이 존재합니다.
리전은 GS2 가 마이크로서비스를 제공하는 데 사용하는 데이터센터의 지역을 나타냅니다.
소지품 관리나 매치메이킹, 게임 내 상점 등 다양한 기능이 있습니다. 이들은 리전별로 호스팅되며, 마이크로서비스의 데이터베이스는 지역별로 분리됩니다.
리얼타임 통신에서는 플레이어와 가장 가까운 지역에서 호스팅한 머신에서 동작시키는 것이 바람직하다고 여겨지지만, GS2 가 제공하는 마이크로서비스 대부분은 그 정도로 실시간성을 요구하지 않는 기능이 대부분을 차지합니다. 따라서 GS2-Realtime 만 여러 리전에 배치하고, 그 외 마이크로서비스는 한 곳의 리전에 모아서 이용하는 방법도 생각해 볼 수 있습니다.
각 마이크로서비스는 여러 개의 네임스페이스를 가질 수 있습니다. 네임스페이스 간은 완전히 분리되지만, 여러 개의 스페이스를 가질 수 있습니다.
GS2-Inventory 를 이용할 때 “소비형 아이템을 보유하는 네임스페이스”, “게임 내 통화를 보유하는 네임스페이스”, “획득한 캐릭터를 보유하는 네임스페이스"와 같이 나누어 관리할 수 있습니다.
각 네임스페이스는 고유한 리소스를 가집니다. 리소스에는 크게 2가지 종류가 있습니다.
GS2-Inventory 라면 어떤 아이템이 존재하는지. GS2-Showcase 라면 어떤 상품이 판매되고 있는지. GS2-Schedule 이라면 어떤 이벤트가 예정되어 있는지.
개발자 측이 사전에 정한 데이터를 보유하는 영역입니다.
게임 플레이어가 개별적으로 보유하는 데이터입니다. GS2-Inventory 라면 아이템을 몇 개 가지고 있는지. GS2-Quest 라면 어떤 퀘스트를 클리어했는지.
게임을 운영해 나가면서 자연스럽게 늘어나는 데이터를 가리킵니다.
리소스를 생성하는 방법은 크게 나누어 2가지가 있습니다.
브라우저에서 GS2 의 관리 콘솔에 로그인하여 UI 상에서 설정을 입력해 리소스를 생성합니다. 시행착오를 겪는 단계이거나 설정 항목이 적은 경우에는 간편하고 편리합니다.
YAML 형식의 템플릿 파일을 작성하고, GS2-Deploy 에 업로드함으로써 리소스를 자동으로 생성합니다. 이 방법에는 다음과 같은 장점이 있으므로, 본격적인 개발에서는 이 방법이 권장됩니다.
관리 콘솔을 사용하여 마이크로서비스에 리소스를 생성한다
GS2-Deploy 를 사용하여 마이크로서비스에 리소스를 생성한다
GS2-CDK 를 사용하여 GS2-Deploy 템플릿을 작성한다