Submit Search
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
Download as PPTX, PDF
0 likes
726 views
gree_tech
GREE Tech Conference 2021 で発表された資料です。 https://techcon.gree.jp/2021/session/Session-9
Engineering
Read more
1 of 28
Download now
Download to read offline
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
More Related Content
PPTX
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
sairoutine
PPTX
イベント・ソーシングを知る
Shuhei Fujita
PDF
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例
Naoya Kishimoto
PDF
DockerとPodmanの比較
Akihiro Suda
PDF
Google Cloud Game Servers 徹底入門 | 第 10 回 Google Cloud INSIDE Games & Apps Online
Google Cloud Platform - Japan
PDF
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
NTT DATA Technology & Innovation
PDF
ゲームの仕様書を書こうまとめ
Sugimoto Chizuru
PDF
ARM CPUにおけるSIMDを用いた高速計算入門
Fixstars Corporation
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
sairoutine
イベント・ソーシングを知る
Shuhei Fujita
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例
Naoya Kishimoto
DockerとPodmanの比較
Akihiro Suda
Google Cloud Game Servers 徹底入門 | 第 10 回 Google Cloud INSIDE Games & Apps Online
Google Cloud Platform - Japan
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
NTT DATA Technology & Innovation
ゲームの仕様書を書こうまとめ
Sugimoto Chizuru
ARM CPUにおけるSIMDを用いた高速計算入門
Fixstars Corporation
What's hot
(20)
PPTX
世界一わかりやすいClean Architecture
Atsushi Nakamura
PDF
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Yoshifumi Kawai
PDF
ソーシャルゲームのためのデータベース設計
Yoshinori Matsunobu
PDF
ドメイン駆動設計入門
Takuya Kitamura
PDF
それはYAGNIか? それとも思考停止か?
Yoshitaka Kawashima
PDF
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
Koichiro Matsuoka
PDF
MagicOnion入門
torisoup
PDF
世界でいちばんわかりやすいドメイン駆動設計
増田 亨
PPTX
FINAL FANTASY Record Keeperのマスターデータを支える技術
dena_study
PDF
新入社員のための大規模ゲーム開発入門 サーバサイド編
infinite_loop
PDF
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
Preferred Networks
PDF
Dockerfile を書くためのベストプラクティス解説編
Masahito Zembutsu
DOCX
UE4でPerforceと連携するための手順
エピック・ゲームズ・ジャパン Epic Games Japan
PPTX
Istioサービスメッシュ入門
Yoichi Kawasaki
PPTX
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
DeNA
PPTX
DeNAの最新のマスタデータ管理システム Oyakata の全容
sairoutine
PDF
サーバー未経験者がソーシャルゲームを通して知ったサーバーの事
Manabu Koga
PPTX
DeNA_Techcon2017_DeNAでのチート・脆弱性診断への取り組み
Toshiharu Sugiyama
PDF
株式会社コロプラ『GKE と Cloud Spanner が躍動するドラゴンクエストウォーク』第 9 回 Google Cloud INSIDE Game...
Google Cloud Platform - Japan
PPTX
テストコードの DRY と DAMP
Yusuke Kagata
世界一わかりやすいClean Architecture
Atsushi Nakamura
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Yoshifumi Kawai
ソーシャルゲームのためのデータベース設計
Yoshinori Matsunobu
ドメイン駆動設計入門
Takuya Kitamura
それはYAGNIか? それとも思考停止か?
Yoshitaka Kawashima
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
Koichiro Matsuoka
MagicOnion入門
torisoup
世界でいちばんわかりやすいドメイン駆動設計
増田 亨
FINAL FANTASY Record Keeperのマスターデータを支える技術
dena_study
新入社員のための大規模ゲーム開発入門 サーバサイド編
infinite_loop
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
Preferred Networks
Dockerfile を書くためのベストプラクティス解説編
Masahito Zembutsu
UE4でPerforceと連携するための手順
エピック・ゲームズ・ジャパン Epic Games Japan
Istioサービスメッシュ入門
Yoichi Kawasaki
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
DeNA
DeNAの最新のマスタデータ管理システム Oyakata の全容
sairoutine
サーバー未経験者がソーシャルゲームを通して知ったサーバーの事
Manabu Koga
DeNA_Techcon2017_DeNAでのチート・脆弱性診断への取り組み
Toshiharu Sugiyama
株式会社コロプラ『GKE と Cloud Spanner が躍動するドラゴンクエストウォーク』第 9 回 Google Cloud INSIDE Game...
Google Cloud Platform - Japan
テストコードの DRY と DAMP
Yusuke Kagata
Ad
Similar to WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
(8)
PDF
[CEDEC 2018] グローバル スケール コネクテッドゲームを GCP で作ろう!
Samir Hammoudi
PDF
[GCC18] 世界中のプレイヤーを3つの「S」で支える Google Cloud Platform (GCP) 〜スピード・スケール・スタビリティ〜
Samir Hammoudi
PDF
Wordpress案件にgkeを採用してみた(短縮版)
Yu Amano
PDF
『 イドラ ファンタシースターサーガ 』を支える GCP | Google Cloud INSIDE Games & Apps
Google Cloud Platform - Japan
PDF
The Google File System
Shuzo Kashihara
PDF
GCP でも Serverless!!
Igarashi Toru
PDF
Google Cloud Platformでソーシャルゲームを1本出してみた!
Hasegawa Yusuke
PPTX
Spanner移行について本気出して考えてみた
techgamecollege
[CEDEC 2018] グローバル スケール コネクテッドゲームを GCP で作ろう!
Samir Hammoudi
[GCC18] 世界中のプレイヤーを3つの「S」で支える Google Cloud Platform (GCP) 〜スピード・スケール・スタビリティ〜
Samir Hammoudi
Wordpress案件にgkeを採用してみた(短縮版)
Yu Amano
『 イドラ ファンタシースターサーガ 』を支える GCP | Google Cloud INSIDE Games & Apps
Google Cloud Platform - Japan
The Google File System
Shuzo Kashihara
GCP でも Serverless!!
Igarashi Toru
Google Cloud Platformでソーシャルゲームを1本出してみた!
Hasegawa Yusuke
Spanner移行について本気出して考えてみた
techgamecollege
Ad
More from gree_tech
(20)
PPTX
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
gree_tech
PDF
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
gree_tech
PPTX
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
gree_tech
PPTX
アプリ起動時間高速化 ~推測するな、計測せよ~
gree_tech
PPTX
長寿なゲーム事業におけるアプリビルドの効率化
gree_tech
PPTX
Cloud Spanner をより便利にする運用支援ツールの紹介
gree_tech
PPTX
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について
gree_tech
PPTX
海外展開と負荷試験
gree_tech
PPTX
翻訳QAでのテスト自動化の取り組み
gree_tech
PPTX
組み込み開発のテストとゲーム開発のテストの違い
gree_tech
PPTX
サーバーフレームワークに潜んでる脆弱性検知ツール紹介
gree_tech
PPTX
データエンジニアとアナリストチーム兼務になった件について
gree_tech
PPTX
シェアドサービスとしてのデータテクノロジー
gree_tech
PPTX
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-
gree_tech
PPTX
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
gree_tech
PPTX
比較サイトの検索改善(SPA から SSR に変換)
gree_tech
PPTX
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
gree_tech
PPTX
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜
gree_tech
PPTX
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
gree_tech
PPTX
基調講演 -グリーが目指すエンジニアのあり方、チームのあり方-
gree_tech
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
gree_tech
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
gree_tech
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
gree_tech
アプリ起動時間高速化 ~推測するな、計測せよ~
gree_tech
長寿なゲーム事業におけるアプリビルドの効率化
gree_tech
Cloud Spanner をより便利にする運用支援ツールの紹介
gree_tech
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について
gree_tech
海外展開と負荷試験
gree_tech
翻訳QAでのテスト自動化の取り組み
gree_tech
組み込み開発のテストとゲーム開発のテストの違い
gree_tech
サーバーフレームワークに潜んでる脆弱性検知ツール紹介
gree_tech
データエンジニアとアナリストチーム兼務になった件について
gree_tech
シェアドサービスとしてのデータテクノロジー
gree_tech
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-
gree_tech
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
gree_tech
比較サイトの検索改善(SPA から SSR に変換)
gree_tech
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
gree_tech
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜
gree_tech
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
gree_tech
基調講演 -グリーが目指すエンジニアのあり方、チームのあり方-
gree_tech
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
1.
WFSにおける Cloud Spannerと GKEを中心とした GCP導入事例の紹介 株式会社WFS リードエンジニア
藤田貴大
2.
• 藤田貴大(ふじた たかひろ) •
所属 • 株式会社WFS Technology Development部 Engineering5グループ リードエンジニア • 職歴 • 組み込みエンジニアとしてネットワーク機器の開発に携わったのち、 2012年にグリー入社。インフラ、Webゲーム開発、QAを経て、 2017年よりサーバエンジニアとしてネイティブゲームの開発に携わ っている。 自己紹介 2
3.
3 はじめに • WFSでは、ゲームサーバとしてGoogle Cloud Platform(GCP)の利用を進めています •
現在GCPを利用してリリースされているタイトルは ”シドニアの騎士 掌位ノ絆” • 他にも開発中タイトルが 控えています ©弐瓶勉・講談社/東亜重工重力祭運営局 © WFS
4.
4 本発表の概要 • どうしてGCP、GKE、Cloud Spannerを採用したのか •
導入にあたって出た問題にどう対応したのか • 実際につかってみてどうだったのか
5.
5 WFSのゲームについて • ソーシャルゲーム • 遊んでいる時は常にゲームサーバと通信している •
データがサーバ側にある • 世界展開している • さまざまな国に対してサービスを提供している • サーバ負荷の変動が大きい
6.
6 WFSにおけるサーバへの要求 • ゲームなので、応答性能はある程度必要 • 応答速度はゲームの楽しさに影響がある •
サービスを提供する全地域に対して ある程度のレイテンシで通信したい • サーバリソースをできるだけ柔軟に変更したい
7.
7 ソーシャルゲームのサーバ規模について • リリース直後や人気のイベントの開始など アクセスが集中するタイミングがある • 数倍、10倍、、、 •
イベントなどは月に数回
8.
8 リソース最適化 • できるだけ余剰リソースは作りたくない • ゲームを止めたくない(メンテナンス) •
サービスを提供したままサーバリソースを調整したい
9.
9 いままではどうだったか • ゲームサーバ • 現在はKubernetesに頼っているのでできている •
それ以前、VMに直接デプロイしていた頃からオンラインで 実施可能 • MySQL • メンテナンスが必要 • 弊社インフラチームにまかせればオンラインでDBの最適化 (マスタ分割/統合など)が可能であるが、数週間の準備が必要 • Memcached/Redis • メンテナンスが必要
10.
10 GCP導入の理由 • レイテンシが短い • Cloud
Spannerが使えそうだった • Google Kubernetes Engine
11.
11 レイテンシ
12.
12 実測したレイテンシ • 他社クラウドを利用したゲームで海外展開する場合は 各地域(US、EU、etc…)にサーバを配置している • GCPでは東京リージョンから各地域にサービスを提供できて いる 東京リージョン
<-> ブラジル 他社 1000msec以上 GCP 300msec未満
13.
13 さまざまな地域からのレイテンシが短いほうが良い理由 • あるいは、サーバの配置場所を選択できた方がいい理由 • 1か所に集中していた方が管理がしやすい •
リソースの共有も可能 • 外部サービスとの連携 • WFSの認証・決済システムであるGamelib • 独立したシステムでHTTPSにより通信している • 海外リージョンにサーバを設置するために Gamelibも海外サーバを作ってもらっている ゲームサーバ 認証・決済 システム
14.
14 Cloud Spanner
15.
15 Cloud Spanner • 水平分割しなくてよい •
メンテナンスコストが低い • ランニングコストは高いかもしれない • スプリット分割が難しそう 無制限のスケーリング、強整合性、最大 99.999% の可用性を備えたフルマネージド リレーショナル データベースです。 ● 無制限のスケーリングによって、リレーショナル セマンティクスと SQL のすべてのメリットを享受 ● 任意のサイズで開始し、ニーズの拡大に応じて制限なしでスケーリング ● 計画的ダウンタイムのない、オンラインによるスキーマ変更で高可用性を実現 ● リージョンや大陸全体にわたる強整合性で高性能のトランザクションを提供 ● 自動シャーディングなどの機能により手動のタスクを排除し、イノベーションに注力 Cloud Spanner https://cloud.google.com/spanner/?hl=ja
16.
16 Cloud Spannerのコスト • 他社MySQLサービスとの比較 •
APIサーバに10,000RPSの負荷をかけたときの比較 1リクエスト当たりのDBアクセス ノード数 ノードコスト(比率) 他社MySQLサービス read:5 update/insert:4 8(※) 1 Cloud Spanner read:5 update/insert:4 20 1.3 ※:実際に必要なノードは4。 ただし、障害に備えたスタンバイが必要であるためx2で8。 DB ゲームサーバ 負荷測定ツール
17.
17 Cloud Spannerのコスト考察 • MySQLと比べたとき、スタンバイを考慮に入れると そこまで大きく差は開かない •
Cloud Spannerはスケールアウト/スケールインが オンラインで実施可能であるため、さらにコストダウンの 可能性がある
18.
18 Cloud Spannerのスプリット分割 • リクエスト処理にかなり大きく 影響する •
基本的には制御できない • 現在のスプリットの状態がわからない • 予防的に事前に負荷をかけて スプリット分割を促す RPS レイテンシ
19.
19 Spanner運用ツール • インフラチームで開発 • この後のセッションで詳しい説明がありますので... •
温める君 • 事前にスプリット分割を促す • 上げ下げ君 • ノード数を自動で制御する
20.
20 Google Kubernetes Engine
21.
21 Google Kubernetes Engine •
特徴的な機能 • Workload Identity • プリエンプティブルインスタンス
22.
22 Workload Identity • GKE(Kubernetes)のサービスアカウントと GCPのサービスアカウントを紐づけて Google
Cloudサービスを利用する権限を管理する方法 • GCPのドキュメントでは”推奨される方法”というようになっ ている • だが、当初は利用できなかった • PHP SDKの問題
23.
23 Workload Identity with
PHP • PHPのSDKに問題が多かった • PHP側のキャッシュ管理にバグがあった • podがスタートしてから一定時間でCloud Spannerへ通信できなく なる • アクセストークンの有効期限と キャッシュ有効期限が連動していなかった • Google様に連絡して修正していただきました • https://github.com/googleapis/google-auth-library-php/issues/308 • 高負荷時、アクセストークンの更新に失敗する • メタデータサーバからのアクセストークンの取得に失敗して 空の情報をキャッシュしていた • こちらも、最新のSDKでは解消済み
24.
24 プリエンプティブルインスタンスの活用 • コスト面で非常に魅力的なので導入したい • ゲームサーバはもともとステートレスなので 導入しようと思えばできるのではと考えていた •
実際はそう簡単ではなかった • 突然停止するとエラーになったり、Sidecarで回収している ログが欠損したりする プリエンプティブル VM インスタンスは、標準 VM の料金よりもはるかに低価格(60~91% 割引)で利用できます。ただし、他 のタスクがリソースを再利用する必要がある場合、Compute Engine がこのインスタンスを停止(プリエンプト)する可能性があ ります。プリエンプティブル インスタンスは Compute Engine の余剰のキャパシティを利用する機能であり、使用できるかどう かは利用状況に応じて異なります。 プリエンプティブル VM インスタンス https://cloud.google.com/compute/docs/instances/preemptible?hl=ja
25.
25 GKE version 1.20 •
2021/09にStable • Graceful Node Shutdown機能 • ApacheがGraceful Shutdownできる • lifecycleのpreStopで後片付けができる • 処理の中断、ログの欠損などが無くなった • Cronjobは工夫が必要 • ノードの入れ替えを分散させる工夫を検討中 • 複数台同時に入れ替わると良くない • 経験的に24時間で停止するので、そのあたりを調整できたら と考えている
26.
26 実際にサービスを提供してみて • Workload Identityを利用したCloud
Spannerへの アクセスは順調 • 事前のスプリット分割はうまくいって 実サービスでスプリット分割の兆候はみられなかった • メンテナンスをせずにサーバリソースの最適化ができている • さまざまな国に対して東京リージョンから サービスを提供できている (世界展開をしている別のゲームで) • プリエンプティブルインスタンスも一部導入できている • ノードの入れ替えを分散させられていない
27.
27 まとめ • GKE +
Cloud Spannerをつかったゲームを 提供することができた • Cloud Spannerはスプリット分割など 難しいところもあるが、ツールを充実させるなどして 運用可能になった • GKE 1.20になってプリエンプティブルVMが サービスに使えるようになった • PHP SDKは最初バグもあったが問題は解消されてきている
28.
28
Download