GS2 Blog

Game Server Services(https://gs2.io/) の最新情報をお届けします

GS2マネージメントコンソールを Google App Engine Standard Java8 に移設しました。

f:id:kazutomo:20170928125054p:plain

みなさんこんにちは。GS2 CEOの丹羽です。

某フレンズの話題で持ちきりで、あまり話題になっていなかったように思いますが、
昨日 Google App Engine Standard Java8 が GA しました。
cloudplatform.googleblog.com

GS2 はサーバレスアーキテクチャを全面に押し出したゲームサーバを開発・提供をしていることを特徴としていますが、
マネージメントコンソールは各マイクロサービスの非公開APIを使用して実現していることもあり、サーバレス化が難しい箇所でした。
(html + javascript でサーバレス化ができなくもないのですが、非公開APIが公開状態になってしまいます)

そこで、やむを得ずマネージメントコンソールは仮想サーバを使用した設計になっていました。
ずっとこの部分はなんとかしたいと思っていた箇所で、過去に Google App Engine も検討したのですが、Flexible の更新ばかりで Standard の更新が長らく止まっており、採用に至らなかった経緯があります。
# Flexible は初期に Compute Engine Managed VMs と呼ばれていたことからわかるように、GCE に皮をかぶせて PaaS に仕立てたもので、
# Standard と比べると制限は緩和されますが、リクエストに合わせて IaaS である GCE のインスタンスが起動し応答するというもので、Standard のようなコスト感やクイックさに欠けます。

このたび GAE Standard が Java8 に対応し、GAしたということで、マネージメントコンソールを Google App Engine に載せることが実現しました。
昨日リリースし、一日様子を見ていましたが問題無さそうですのでこうして発表いたします。おそらく国内で初めてプロダクションに投入した事例なのではないかとおもいます。

GS2を利用したゲームを開発をする際にマネージメントコンソールにアクセスする機会は初期設定や設定変更時のみですので
現状では初回アクセス時にコールドスタートになる事が多く、ページの表示までの待ち時間がこれまでと比べて長くなる点でご迷惑をおかけしますが、
今後のスケーラビリティ確保と障害時の対応体制としてGS2よりもGoogleのほうが優れているという点で、ご理解いただければとおもいます。

今回の移設にあたって GAE を前提とせずに設計・実装されたマネージメントコンソールを GAE 上で動かすには、いくつかの困難が有りましたが、
Google App Engine Standard Java8 ではこれまであったような 利用可能なAPI制限が撤廃されるなど、これまで障害となっていた多くの問題が取り除かれており、想像していたより少ない作業で移設が出来ました。
それらの情報も下記ページで告知している ServerlessConf Tokyo 2017 でかいつまんで説明したいと考えておりますので、ご興味があればご来場ください。
当日参加するのが困難な場合も後日資料をアップロードする予定ですので、このブログの読者になるなどしてウォッチいただければ幸いです。
gs2.hatenablog.com

GS2 では今後も AWS Lambda や API Gateway といった AWS サービスはもちろん、
Google App Engine や Cloud DataStore、Cloud PubSub といった GCP のサービスも含めて個々のサービスのいいところを見極め、活用したサービスを提供していきます。

それでは、また。

(C) Game Server Services, Inc.