SlideShare a Scribd company logo
Submit Search
Upload
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
Report
Share
gree_tech
gree_tech
Follow
•
0 likes
•
595 views
1
of
28
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
•
0 likes
•
595 views
Report
Share
Download Now
Download to read offline
Engineering
GREE Tech Conference 2021 で発表された資料です。 https://techcon.gree.jp/2021/session/Session-9
Read more
gree_tech
gree_tech
Follow
Recommended
君はyarn.lockをコミットしているか? by
君はyarn.lockをコミットしているか?
Teppei Sato
30.4K views
•
25 slides
PHPからgoへの移行で分かったこと by
PHPからgoへの移行で分かったこと
gree_tech
6.4K views
•
39 slides
WebSocket / WebRTCの技術紹介 by
WebSocket / WebRTCの技術紹介
Yasuhiro Mawarimichi
50.1K views
•
139 slides
マイクロサービス 4つの分割アプローチ by
マイクロサービス 4つの分割アプローチ
増田 亨
41.4K views
•
60 slides
例外設計における大罪 by
例外設計における大罪
Takuto Wada
68.5K views
•
37 slides
Dockerからcontainerdへの移行 by
Dockerからcontainerdへの移行
Kohei Tokunaga
16.6K views
•
36 slides
More Related Content
What's hot
SPAセキュリティ入門~PHP Conference Japan 2021 by
SPAセキュリティ入門~PHP Conference Japan 2021
Hiroshi Tokumaru
99.4K views
•
107 slides
Docker Compose 徹底解説 by
Docker Compose 徹底解説
Masahito Zembutsu
61.1K views
•
123 slides
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発 by
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
日本マイクロソフト株式会社
1.5K views
•
35 slides
マイクロにしすぎた結果がこれだよ! by
マイクロにしすぎた結果がこれだよ!
mosa siru
132.6K views
•
32 slides
ネットワーク ゲームにおけるTCPとUDPの使い分け by
ネットワーク ゲームにおけるTCPとUDPの使い分け
モノビット エンジン
61.4K views
•
63 slides
本当は恐ろしい分散システムの話 by
本当は恐ろしい分散システムの話
Kumazaki Hiroki
686K views
•
70 slides
What's hot
(20)
SPAセキュリティ入門~PHP Conference Japan 2021 by Hiroshi Tokumaru
SPAセキュリティ入門~PHP Conference Japan 2021
Hiroshi Tokumaru
•
99.4K views
Docker Compose 徹底解説 by Masahito Zembutsu
Docker Compose 徹底解説
Masahito Zembutsu
•
61.1K views
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発 by 日本マイクロソフト株式会社
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
日本マイクロソフト株式会社
•
1.5K views
マイクロにしすぎた結果がこれだよ! by mosa siru
マイクロにしすぎた結果がこれだよ!
mosa siru
•
132.6K views
ネットワーク ゲームにおけるTCPとUDPの使い分け by モノビット エンジン
ネットワーク ゲームにおけるTCPとUDPの使い分け
モノビット エンジン
•
61.4K views
本当は恐ろしい分散システムの話 by Kumazaki Hiroki
本当は恐ろしい分散システムの話
Kumazaki Hiroki
•
686K views
20160526 依存関係逆転の原則 by bonjin6770 Kurosawa
20160526 依存関係逆転の原則
bonjin6770 Kurosawa
•
17K views
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!) by Trainocate Japan, Ltd.
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
Trainocate Japan, Ltd.
•
13.3K views
分散システムの限界について知ろう by Shingo Omura
分散システムの限界について知ろう
Shingo Omura
•
33.7K views
Python 3.9からの新定番zoneinfoを使いこなそう by Ryuji Tsutsui
Python 3.9からの新定番zoneinfoを使いこなそう
Ryuji Tsutsui
•
6.9K views
ドメイン駆動設計の正しい歩き方 by 増田 亨
ドメイン駆動設計の正しい歩き方
増田 亨
•
25.3K views
WFSのゲームエンジンの歴史と今後の戦略 by gree_tech
WFSのゲームエンジンの歴史と今後の戦略
gree_tech
•
4.5K views
Dockerからcontainerdへの移行 by Akihiro Suda
Dockerからcontainerdへの移行
Akihiro Suda
•
7.5K views
超実践 Cloud Spanner 設計講座 by Samir Hammoudi
超実践 Cloud Spanner 設計講座
Samir Hammoudi
•
21.3K views
エンジニアの個人ブランディングと技術組織 by Takafumi ONAKA
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
•
23.3K views
「実践ドメイン駆動設計」社内読書会まとめ ~IDDD本難民に捧げる1章から7章~ by A AOKI
「実践ドメイン駆動設計」社内読書会まとめ ~IDDD本難民に捧げる1章から7章~
A AOKI
•
25.5K views
MagicOnion入門 by torisoup
MagicOnion入門
torisoup
•
10.4K views
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 by Preferred Networks
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
Preferred Networks
•
3K views
GraphQLのsubscriptionで出来ること by Shingo Fukui
GraphQLのsubscriptionで出来ること
Shingo Fukui
•
9.1K views
Java開発の強力な相棒として今すぐ使えるGroovy by Yasuharu Nakano
Java開発の強力な相棒として今すぐ使えるGroovy
Yasuharu Nakano
•
26.7K views
Similar to WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
グリー株式会社『私たちが GCP を使い始めた本当の理由』第 9 回 Google Cloud INSIDE Game & Apps by
グリー株式会社『私たちが GCP を使い始めた本当の理由』第 9 回 Google Cloud INSIDE Game & Apps
Google Cloud Platform - Japan
13.7K views
•
28 slides
私たちがGCPを使い始めた本当の理由 by
私たちがGCPを使い始めた本当の理由
gree_tech
2.2K views
•
28 slides
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】 by
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】
DeNA
30.3K views
•
75 slides
20200729 f1 instance_intro by
20200729 f1 instance_intro
Hiroshi Tokoyo
593 views
•
28 slides
【de:code 2020】 Azure Expert MSP の FIXER が処方、DX に効く 「クラウド運用」「AI」「人材育成」 の即効薬 by
【de:code 2020】 Azure Expert MSP の FIXER が処方、DX に効く 「クラウド運用」「AI」「人材育成」 の即効薬
日本マイクロソフト株式会社
203 views
•
76 slides
#CNDT2020 Cloud Foundry on K8sでクラ ウドネイティブ始めませんか? by
#CNDT2020 Cloud Foundry on K8sでクラ ウドネイティブ始めませんか?
Hisazumi Arimoto
78 views
•
30 slides
Similar to WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
(20)
グリー株式会社『私たちが GCP を使い始めた本当の理由』第 9 回 Google Cloud INSIDE Game & Apps by Google Cloud Platform - Japan
グリー株式会社『私たちが GCP を使い始めた本当の理由』第 9 回 Google Cloud INSIDE Game & Apps
Google Cloud Platform - Japan
•
13.7K views
私たちがGCPを使い始めた本当の理由 by gree_tech
私たちがGCPを使い始めた本当の理由
gree_tech
•
2.2K views
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】 by DeNA
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】
DeNA
•
30.3K views
20200729 f1 instance_intro by Hiroshi Tokoyo
20200729 f1 instance_intro
Hiroshi Tokoyo
•
593 views
【de:code 2020】 Azure Expert MSP の FIXER が処方、DX に効く 「クラウド運用」「AI」「人材育成」 の即効薬 by 日本マイクロソフト株式会社
【de:code 2020】 Azure Expert MSP の FIXER が処方、DX に効く 「クラウド運用」「AI」「人材育成」 の即効薬
日本マイクロソフト株式会社
•
203 views
#CNDT2020 Cloud Foundry on K8sでクラ ウドネイティブ始めませんか? by Hisazumi Arimoto
#CNDT2020 Cloud Foundry on K8sでクラ ウドネイティブ始めませんか?
Hisazumi Arimoto
•
78 views
GCP vs 他社クラウド by Hasegawa Yusuke
GCP vs 他社クラウド
Hasegawa Yusuke
•
4.9K views
Azureで実装する話題のコンテナサービス by Tsukasa Kato
Azureで実装する話題のコンテナサービス
Tsukasa Kato
•
225 views
[External] 2021.12.15 コンテナ移行の前に知っておきたいこと @ gcpug 湘南 by Google Cloud Platform - Japan
[External] 2021.12.15 コンテナ移行の前に知っておきたいこと @ gcpug 湘南
Google Cloud Platform - Japan
•
1.2K views
Oracle GoldenGate Cloud Service(GGCS)概要 by オラクルエンジニア通信
Oracle GoldenGate Cloud Service(GGCS)概要
オラクルエンジニア通信
•
1.8K views
KLabのゲーム開発を支える開発環境 by KLab Inc. / Tech
KLabのゲーム開発を支える開発環境
KLab Inc. / Tech
•
177 views
[CEDEC 2018] グローバル スケール コネクテッドゲームを GCP で作ろう! by Samir Hammoudi
[CEDEC 2018] グローバル スケール コネクテッドゲームを GCP で作ろう!
Samir Hammoudi
•
1.2K views
PythonとYAMLでGCPをDeploy!「Google Cloud Deployment Manager」 by Terui Masashi
PythonとYAMLでGCPをDeploy!「Google Cloud Deployment Manager」
Terui Masashi
•
3.4K views
Tech lounge gcp_20190313 by yutaka_baba
Tech lounge gcp_20190313
yutaka_baba
•
105 views
CloudSQL v2は デキる子なのか? by Kumano Ryo
CloudSQL v2は デキる子なのか?
Kumano Ryo
•
9.6K views
Oracle GoldenGate Cloud Serviceユーザーズガイド by オラクルエンジニア通信
Oracle GoldenGate Cloud Serviceユーザーズガイド
オラクルエンジニア通信
•
3.4K views
AndApp開発における全て #denatechcon by DeNA
AndApp開発における全て #denatechcon
DeNA
•
2.7K views
Cloud Identity-Aware Proxy by Kumano Ryo
Cloud Identity-Aware Proxy
Kumano Ryo
•
1.1K views
インフラチームの歴史とこれから by bitbank, Inc. Tokyo, Japan
インフラチームの歴史とこれから
bitbank, Inc. Tokyo, Japan
•
473 views
IBM Log Analysis with LogDNAを評価した話 by Daisuke Hiraoka
IBM Log Analysis with LogDNAを評価した話
Daisuke Hiraoka
•
1.1K views
More from gree_tech
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜 by
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
gree_tech
725 views
•
36 slides
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介 by
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
gree_tech
229 views
•
13 slides
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表 by
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
gree_tech
1K views
•
18 slides
アプリ起動時間高速化 ~推測するな、計測せよ~ by
アプリ起動時間高速化 ~推測するな、計測せよ~
gree_tech
1.9K views
•
84 slides
長寿なゲーム事業におけるアプリビルドの効率化 by
長寿なゲーム事業におけるアプリビルドの効率化
gree_tech
347 views
•
116 slides
Cloud Spanner をより便利にする運用支援ツールの紹介 by
Cloud Spanner をより便利にする運用支援ツールの紹介
gree_tech
681 views
•
31 slides
More from gree_tech
(20)
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜 by gree_tech
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
gree_tech
•
725 views
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介 by gree_tech
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
gree_tech
•
229 views
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表 by gree_tech
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
gree_tech
•
1K views
アプリ起動時間高速化 ~推測するな、計測せよ~ by gree_tech
アプリ起動時間高速化 ~推測するな、計測せよ~
gree_tech
•
1.9K views
長寿なゲーム事業におけるアプリビルドの効率化 by gree_tech
長寿なゲーム事業におけるアプリビルドの効率化
gree_tech
•
347 views
Cloud Spanner をより便利にする運用支援ツールの紹介 by gree_tech
Cloud Spanner をより便利にする運用支援ツールの紹介
gree_tech
•
681 views
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について by gree_tech
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について
gree_tech
•
626 views
海外展開と負荷試験 by gree_tech
海外展開と負荷試験
gree_tech
•
593 views
翻訳QAでのテスト自動化の取り組み by gree_tech
翻訳QAでのテスト自動化の取り組み
gree_tech
•
304 views
組み込み開発のテストとゲーム開発のテストの違い by gree_tech
組み込み開発のテストとゲーム開発のテストの違い
gree_tech
•
571 views
サーバーフレームワークに潜んでる脆弱性検知ツール紹介 by gree_tech
サーバーフレームワークに潜んでる脆弱性検知ツール紹介
gree_tech
•
209 views
データエンジニアとアナリストチーム兼務になった件について by gree_tech
データエンジニアとアナリストチーム兼務になった件について
gree_tech
•
308 views
シェアドサービスとしてのデータテクノロジー by gree_tech
シェアドサービスとしてのデータテクノロジー
gree_tech
•
432 views
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて- by gree_tech
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-
gree_tech
•
1K views
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話 by gree_tech
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
gree_tech
•
1.1K views
比較サイトの検索改善(SPA から SSR に変換) by gree_tech
比較サイトの検索改善(SPA から SSR に変換)
gree_tech
•
691 views
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行 by gree_tech
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
gree_tech
•
2.9K views
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜 by gree_tech
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜
gree_tech
•
395 views
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮) by gree_tech
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
gree_tech
•
751 views
基調講演 -グリーが目指すエンジニアのあり方、チームのあり方- by gree_tech
基調講演 -グリーが目指すエンジニアのあり方、チームのあり方-
gree_tech
•
445 views
Recently uploaded
AIで始めるRustプログラミング #SolDevHub by
AIで始めるRustプログラミング #SolDevHub
K Kinzal
20 views
•
25 slides
robotics42.pptx by
robotics42.pptx
Natsutani Minoru
166 views
•
18 slides
lt.pptx by
lt.pptx
tomochamarika
50 views
•
13 slides
SSH超入門 by
SSH超入門
Toru Miyahara
48 views
•
21 slides
how query cost affects search behavior translated in JP by
how query cost affects search behavior translated in JP
Tobioka Ken
9 views
•
16 slides
3Dプリンタでロボット作るよ#1_黎明編 by
3Dプリンタでロボット作るよ#1_黎明編
Yoshihiro Shibata
19 views
•
7 slides
Recently uploaded
(7)
AIで始めるRustプログラミング #SolDevHub by K Kinzal
AIで始めるRustプログラミング #SolDevHub
K Kinzal
•
20 views
robotics42.pptx by Natsutani Minoru
robotics42.pptx
Natsutani Minoru
•
166 views
lt.pptx by tomochamarika
lt.pptx
tomochamarika
•
50 views
SSH超入門 by Toru Miyahara
SSH超入門
Toru Miyahara
•
48 views
how query cost affects search behavior translated in JP by Tobioka Ken
how query cost affects search behavior translated in JP
Tobioka Ken
•
9 views
3Dプリンタでロボット作るよ#1_黎明編 by Yoshihiro Shibata
3Dプリンタでロボット作るよ#1_黎明編
Yoshihiro Shibata
•
19 views
図解で理解するvetKD by ryoo toku
図解で理解するvetKD
ryoo toku
•
84 views
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