Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

4

Share

Download to read offline

Google Cloud Game Servers 徹底入門 | 第 10 回 Google Cloud INSIDE Games & Apps Online

Download to read offline

2020 年 4 月 27 日(月)
第 10 回 Google Cloud INSIDE Games & Apps Online
Google Cloud 奈良岡 仁によるセッション スライドです。

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

Google Cloud Game Servers 徹底入門 | 第 10 回 Google Cloud INSIDE Games & Apps Online

  1. 1. #gc_inside 奈良岡 仁 Customer Engineer Google Cloud Game Servers 徹底入門
  2. 2. 自己紹介 奈良岡 仁 Google Cloud Japan G.K. Customer Engineer 外資系クラウドベンダーのコンサルタント、ゲーム会社のネット ワークインフラエンジニアを経て現職。 お客様が Google Cloud を利用したシステム構築を行う際の ご提案や課題解決など、主に技術面から支援を行なっていま す。 最近やってるゲームは Mount & Blade II: Bannerlord と FF7R。
  3. 3. ゲームサーバーとは? ゲームサーバーはマルチプレイヤーゲーム内の イベ ントを受け持つサーバー クライアントが正しいゲーム世界を表示するために ゲームの状態に関するデータを送信 またゲームサーバーは 各プレイヤーからの 入力を受け取って処理 これらはすべて高い信頼性でタイムリーに 完了しなければならない
  4. 4. ゲームサーバーとは? プレイヤーからの 入力を受信 プレイヤーの位置 をトラック ゲーム世界の 物理演算 (重力や速度など) オブジェクト の移動や衝 突を処理 ゲーム世界の 状態をプレイ ヤーに送信
  5. 5. ゲームサーバー運用の課題 ● インフラのスケールアウト / スケールイン ○ 使用中のゲームサーバーをどう守るか ● コスト効率とパフォーマンス ○ ゲームサーバーをどれだけ載せるか ○ IP、ポートの割当て ● モニタリングとロギング ● 新しいバージョンのロールアウト 数千にも及ぶマシン / ゲームサーバーを管理するには?
  6. 6. Agones Openness Google が立ち上げたオープンソースプロジェクトでベン ダーロックインなし Flexibility ローカル、オンプレ、(マルチ)クラウドなど環境を選ばずに ゲームサーバーを動作させることが可能 Simplicity Kubernetes 上でゲームサーバーと他機能の API などを動 作させることで、ゲームの全てのバックエンドを 1 つのプラッ トフォームに Agones は Kubernetes 上に構築さ れる、マルチプレイヤー向けのゲー ムサーバーをデプロイ / ホスト / ス ケーリングするためのオープンソース のプラットフォーム
  7. 7. Agones の主な特徴 メトリクス ゲームサーバーセッションで 起きていることを把握・可視化 するためのログ集約とメトリク ス機能をビルトインで提供 コスト最適化 ゲームサーバーのスケジュー リングとアロケーションによっ てコストの最適化を実現 SDK ヘルスチェックや状態管理、 設定などゲームサーバーのラ イフサイクル管理をSDK で オートスケール オートスケール機能がゲーム サーバーの数を調整し、プレ イヤーが常にプレイ可能な状 態を維持 Kubernetes ツール 標準的なKubernetes の ツールとAPI を使用して Kubernetes 内の専用ゲーム サーバをスケール
  8. 8. Agones の構成 Kubernetes Cluster Kubernetes node Fleet GameServer GameServer Kubernetes node GameServer GameServer Fleet Autoscaler Agones Controller Matchmaker Kubernetes API
  9. 9. Agones の構成 Kubernetes Cluster Kubernetes node Fleet GameServer GameServer Kubernetes node GameServer GameServer Fleet Autoscaler Agones Controller Matchmaker Kubernetes API ご参考:Open Match
  10. 10. Agones の構成 Kubernetes Cluster Kubernetes node Fleet GameServer GameServer Kubernetes node GameServer GameServer Fleet Autoscaler Agones Controller Matchmaker Kubernetes API
  11. 11. Agones の構成 Kubernetes Cluster Kubernetes node Fleet GameServer GameServer Kubernetes node GameServer GameServer Fleet Autoscaler Agones Controller Matchmaker Kubernetes API
  12. 12. Agones の構成 Kubernetes Cluster Kubernetes node Fleet GameServer GameServer Kubernetes node GameServer GameServer Fleet Autoscaler Agones Controller Matchmaker Kubernetes API
  13. 13. Agones の構成 Kubernetes Cluster Kubernetes node Fleet GameServer Kubernetes node Fleet Autoscaler Agones Controller Matchmaker Kubernetes API
  14. 14. Agones の構成 Kubernetes Cluster Kubernetes node Fleet GameServer Kubernetes node Fleet Autoscaler Agones Controller Matchmaker Kubernetes API
  15. 15. Agones の構成 Kubernetes Cluster Kubernetes node Fleet GameServer Kubernetes node Fleet Autoscaler Agones Controller Matchmaker Kubernetes API
  16. 16. Agones のリソース - Game Server apiVersion: "agones.dev/v1" kind: GameServer metadata: name: "gamex" spec: ports: - name: default portPolicy: Dynamic containerPort: 7654 template: spec: containers: - name: simple-udp image: gcr.io/agones-images/udp-server:0.19 Kubernetes Cluster Kubernetes node Fleet GameServer GameServer Fleet Autoscaler Agones Controller
  17. 17. Agones のリソース - Fleet apiVersion: "agones.dev/v1" kind: Fleet metadata: name: gamex spec: replicas: 4 template: spec: ports: - name: default portPolicy: Dynamic containerPort: 7654 template: spec: containers: - name: simple-udp image: gcr.io/agones-images/udp-server:0.19 Kubernetes Cluster Kubernetes node Fleet GameServer GameServer Fleet Autoscaler Agones Controller
  18. 18. Agones のリソース - Fleetautoscaler apiVersion: "autoscaling.agones.dev/v1" kind: FleetAutoscaler metadata: name: gamex-autoscaler spec: fleetName: gamex policy: type: Buffer buffer: bufferSize: 2 minReplicas: 2 maxReplicas: 10 Kubernetes Cluster Kubernetes node Fleet GameServer GameServer Fleet Autoscaler Agones Controller
  19. 19. Agones のデモ - インストール Kubernetes Cluster Kubernetes node Agones Controller デモ
  20. 20. Agones のデモ - gameserver のデプロイ Kubernetes Cluster Kubernetes node GameServer GameServer Agones Controller デモ
  21. 21. Agones のデモ - fleet Kubernetes Cluster Kubernetes node Fleet GameServer GameServer Agones Controller GameServer GameServer Allocated デモ
  22. 22. 複数クラスターになると? Kubernetes Cluster Fleet Autoscaler Kubernetes node Fleet GameServer GameServer Kubernetes Cluster Fleet Autoscaler Kubernetes node Fleet GameServer GameServer Kubernetes Cluster Fleet Autoscaler Kubernetes node Fleet GameServer GameServer
  23. 23. Google Cloud Game Servers (GCGS) GCGS はクラスター管理のマネージ ドなコントロールプレーンを提供。 Agones を拡張し ゲームサーバーの マルチクラスターを管理を簡単に。 インフラの選択 GKE (Beta)、オンプレミス (coming soon)、他クラウド上の Kubernetes クラスター (coming soon) を利用可能 シンプル プレビュー機能によって、グローバルな環境に対しても新しい設 定を簡単、安全にデプロイ モニタリング Cloud Console から管理 UI とメトリクスを提供 柔軟性 任意のタイミングでオプトイン / アウト可能(ロックインなし)
  24. 24. GCGS の構成 Game Server Deployment Realm 1: “US” Game Server Cluster GKE GCP Project - “Game X” Game Server Config: v2Game Server Config: v1 Rollout Realm 2: “Europe” Realm 3: “Japan” Game Server Cluster On-Prem Game Server Cluster GKE Game Server Cluster Other Cloud Game Server Cluster GKE
  25. 25. GCP プロジェクト。 ゲームにおける「本番環境」や「テスト環境」など単一 の環境ごとに用意する。 GCGS のリソース - Project Game Server Deployment Realm 1: “US” GCP Project - “Game X” Game Server Config: v2Game Server Config: v1 Rollout Realm 2: “Europe” Game Server Cluster GKE Game Server Cluster GKE Game Server Cluster On-Prem Game Server Cluster Other Cloud
  26. 26. GCGS によって管理される Agones が動作している Kubernetes クラスタ。 GCGS のリソース - Game Server Cluster Game Server Deployment Realm 1: “US” GCP Project - “Game X” Game Server Config: v2Game Server Config: v1 Rollout Realm 2: “Europe” Game Server Cluster GKE Game Server Cluster On-Prem Game Server Cluster GKE Game Server Cluster Other Cloud
  27. 27. GCGS のリソース - Realm Game Server Deployment Realm 1: “US” GCP Project - “Game X” Game Server Config: v2Game Server Config: v1 Rollout Realm 2: “Europe” ユーザーが定義する Game Server Cluster のグルー プ。 基本的にはゲームのレイテンシ要件にあわせて、大 陸やリージョンといったレベルでグルーピングする。 Game Server Cluster GKE Game Server Cluster GKE Game Server Cluster On-Prem Game Server Cluster Other Cloud
  28. 28. GCGS のリソース - Game Server Deployment Game Server Deployment Realm 1: “US” GCP Project - “Game X” Game Server Config: v2Game Server Config: v1 Rollout Realm 2: “Europe” Game Server Cluster にデプロイされる 1 つ以上の ゲームサーバー設定を持つプレースホルダ。 Game Server Config(後述)と Rollout(後述)の親リ ソース。 Game Server Cluster GKE Game Server Cluster GKE Game Server Cluster On-Prem Game Server Cluster Other Cloud
  29. 29. GCGS のリソース - Game Server Config Game Server Deployment Realm 1: “US” GCP Project - “Game X” Game Server Config: v2Game Server Config: v1 Rollout Realm 2: “Europe” Fleet config と Scaling config から作成されるゲーム サーバーの設定。Scaling config はさらに Fleet Autoscaler 設定とスケジュール設定から構成される。 Game Server Deployment のサブリソース。 Game Server Cluster GKE Game Server Cluster GKE Game Server Cluster On-Prem Game Server Cluster Other Cloud
  30. 30. Time-based Policies ● GCGS は時間に基づいた自動スケーリングの設定が可能 ● 2 種類の時間ベースのスケーリングをサポート ○ Realm イベント:各 Realm のタイムゾーンでスケーリングを実施 ○ Global イベント :グローバルにスケーリングを実施 Global Event: startTime: '2020-05-01 15:00:00 PST' endTime: '2020-05-01 18:00:00 PST' Realm Event: cronSpec: '0 21 * * 1-5' cronDuration: '4h'
  31. 31. GCGS のリソース - Rollout Game Server Deployment Realm 1: “US” GCP Project - “Game X” Game Server Config: v2Game Server Config: v1 Rollout Realm 2: “Europe” Game Server Config をどの Realm にデプロイする かを紐付けるためのリソース。 Game Server Deployment のサブリソース。 Game Server Cluster GKE Game Server Cluster GKE Game Server Cluster On-Prem Game Server Cluster Other Cloud
  32. 32. GCGS の使用フロー Game Server Deployments のテストとロールアウト Game Server Cluster また は Realm 上の変更をプレ ビューし、新しい Deployment を簡単にロール アウト / バック 5 Config を作成 ゲームサーバーのバージョン やスケーリングの設定となる Game Server Config を作成 4 Realm を定義 ゲームのレイテンシー要件に 基づき、地理的なグルーピン グとしてRealm を作成しクラ スターを登録 3 Game Services API を使用 して登録 クラスターを登録するために Cloud Console から Game Service API を有効化 2 Agones のセットアップ GCGS から管理する Kunbernetes クラスタを用意 し、各クラスタにAgones をイ ンストールする 1
  33. 33. GCGS のデモ - Realm の作成 Realm 1: “united-states” GCP Project - “Game X” Realm 2: “japan” Game Server Deployment デモ
  34. 34. GCGS のデモ - クラスタの登録 Realm 1: “US” Realm 1: “united-states” GCP Project - “Game X” Realm 2: “japan” GKE Game Server Cluster GKE Game Server Cluster デモ
  35. 35. GCGS のデモ - Game Server Deployment の作成 Realm 1: “united-states” GCP Project - “Game X” Realm 2: “japan” GKE Game Server Cluster Game Server Deployment GKE Game Server Cluster デモ
  36. 36. GCGS のデモ - Game Server Config の作成 Realm 1: “united-states” GCP Project - “Game X” Realm 2: “japan” GKE Game Server Cluster Game Server Deployment GKE Game Server Cluster Game Server Config: v1 デモ
  37. 37. GCGS のデモ - Rollout Realm 1: “united-states” GCP Project - “Game X” Realm 2: “japan” GKE Game Server Cluster Game Server Deployment GKE Game Server Cluster Game Server Config: v1 Rollout GS: v1 GS: v1 デモ
  38. 38. GCGS のデモ - 新しいバージョンのリリース Realm 1: “united-states” GCP Project - “Game X” Realm 2: “japan” GKE Game Server Cluster Game Server Deployment GKE Game Server Cluster Game Server Config: v1 Rollout GS: v1 GS: v2 Game Server Config: v2 デモ
  39. 39. GCGS の今後の展開 Phase 1 GCP Only ● GKE クラスタのみをサポート ● 基本的なポリシーを提供 Phase 2 Hybrid/Multi Cloud ● オンプレミスと他クラウドをサポート
  40. 40. まとめ ● IP アドレスとポートの割当、スケーリング、ゲームサーバー の保護などゲームサーバー運用にまつわる様々な課題を Agones と Kubernetes で解決 ● グローバル展開など マルチクラスターの Agones は Google Cloud Game Servers を使うことで簡単に実現 ○ Time-based Policy や Rollout のプレビューなど シングルクラスターでもメリット大
  41. 41. Thank you
  42. 42. #gc_inside #gc_inside
  43. 43. 今すぐ参加登録 ↑ ビジネスをサポートするGoogle Cloud ソリューションを学ぶ。 Google Cloud Day: Digital 2020 年 6 月 9 日 (火) - 11 日 (木) ライブ配信 2020 年 6 月 9 日 (火) - 30 日 (火) 開催
  44. 44. Google Cloud トレーニング無料提供 キャンペーンのご案内 Qwiklabs、Pluralsight(英語のみ)、対象 のCoursera のコースを1 か月間無料でご提供 お申込み期限は、5 月 20 日まで (Pluralsight のみ 4 月 30 日まで) goo.gle/TrainingOffer 詳細・お申込みはこちら ↑
  • YujiKoyano

    May. 1, 2020
  • mono0926

    Apr. 28, 2020
  • yuyamakino

    Apr. 27, 2020
  • shosuz

    Apr. 27, 2020

2020 年 4 月 27 日(月) 第 10 回 Google Cloud INSIDE Games & Apps Online Google Cloud 奈良岡 仁によるセッション スライドです。

Views

Total views

2,320

On Slideshare

0

From embeds

0

Number of embeds

860

Actions

Downloads

22

Shares

0

Comments

0

Likes

4

×