> For the complete documentation index, see [llms.txt](/llms.txt)

# GS2にリソースを作成

GS2 の各マイクロサービスにリソースを作成する




まずは、プロジェクトとリージョン、マイクロサービスの関係について理解を深めましょう。

プロジェクトとマイクロサービスは以下のデータ構造を持ちます。

```plantuml
Gs2Project "1" *-- "many" Region
Region "1" *-- "many" Microservice
Microservice "1" *-- "many" Namespace
Namespace "1" *-- "many" Resource
```

## リージョン

プロジェクトの直下にはリージョンが存在します。

リージョンは GS2 がマイクロサービスを提供するのに使用しているデータセンターの地域を表します。

## マイクロサービス

所持品の管理や、マッチメイキング、ゲーム内ストアなど様々な機能があります。
これらはリージョンごとにホストされ、マイクロサービスのデータベースは地域ごとに分断します。

リアルタイム通信ではプレイヤーの最も近い地域でホストしたマシンで動かすことが正義とされますが、GS2が提供するマイクロサービスの多くはリアルタイム性をそこまで求めない機能が大半を占めています。
そのため、GS2-Realtime のみ複数のリージョンに展開し、その他のマイクロサービスは1箇所のリージョンに固めて利用するという方法も考えられます。

## ネームスペース

各マイクロサービスは複数のネームスペースを持つことができます。
ネームスペース間は完全に分断しますが、複数のスペースを持つことができます。

GS2-Inventory を利用する際に「消費型アイテムを保持するネームスペース」「ゲーム内通貨を保持するネームスペース」「入手したキャラクターを保持するネームスペース」のように分けて管理することができます。

## リソース

各ネームスペースは固有のリソースを持ちます。
リソースには大きく2種類存在します。

- マスターデータ
- ユーザーデータ

### マスターデータ

GS2-Inventory であれば、どのようなアイテムが存在するのか。GS2-Showcase であれば、どのような商品が販売されているのか。GS2-Schedule であればどのようなイベントが予定されているのか。

開発者側があらかじめ定めたデータを保持する領域です。

### ユーザーデータ

ゲームプレイヤーが個別に保持するデータです。
GS2-Inventory であれば、アイテムをいくつ持っているのか。GS2-Quest であれば、どのクエストがクリア済みか。

ゲームを運営していく上で、勝手に増加していくデータを指します。

## リソースの作成方法

リソースを作成する方法には大きく分けて 2 つあります。

### 1. マネージメントコンソールから手動で作成
ブラウザから GS2 のマネージメントコンソールにログインし、UI 上で設定を入力してリソースを作成します。
試行錯誤している段階や、設定項目が少ない場合には手軽で便利です。

### 2. GS2-Deploy を使用して自動作成（推奨）
YAML 形式のテンプレートファイルを作成し、GS2-Deploy にアップロードすることでリソースを自動作成します。
この方法には以下のようなメリットがあるため、本格的な開発ではこちらが推奨されます。

- **再現性**: 同じ設定のリソース（開発環境、本番環境など）を確実に再現できる。
- **バージョン管理**: テンプレートファイルを Git 等で管理することで、設定の変更履歴を残せる。
- **一括管理**: 複数のサービス（Inventory, Quest, Accountなど）のリソースをまとめて定義できる。




- [GS2-CDK を使用したセットアップ](/ja/overview/workflow/setup_gs2_resources/cdk_setup/)
  
- [GS2-Deploy を使用したセットアップ](/ja/overview/workflow/setup_gs2_resources/automation_setup/)
  
- [マネージメントコンソールを使用したセットアップ](/ja/overview/workflow/setup_gs2_resources/manual_setup/)
  
