サーバレスとマイクロサービスで変わるゲームサーバ開発(ServerlessConfセッション紹介)

セクションナイン吉田真吾@yoshidashingo)です。

ServerlessConf Tokyoがいよいよ9月最終週にせまってきました。

トークもほぼすべて出揃いましたので、今回から何回かに分けてスピーカーの人にセッション内容を聞いてみようかなと思います。

プロフィール

  • 名前:丹羽一智 (Kazutomo Niwa)
  • 会社名:Game Server Services 株式会社
  • 役職:CEO

f:id:yoshidashingo:20160903131631p:plain

セガ、任天堂にてゲーム開発及び、サーバシステムの設計・開発業務に従事。 サーバレスアーキテクチャの可能性に惚れ込み、同概念を積極的に活用した mBaaSを提供するべく Game Server Services 株式会社を創業。 ゲームサーバの共通基盤化・マイクロサービス化を推進し、かつてゲームエンジンを各社が開発していた開発スタイルがゲームエンジンを用いた開発にシフトしたような現象をサーバシステム開発でも起こすべく活動中。

Quick Chat

---- ServerlessConf Tokyoでのセッション概要を教えてください

2016/10にベータテストを開始する予定のGame Server Services(GS2)はスマホゲームのバックエンドサーバをサーバレスアーキテクチャで実装し、1時間数円〜という低価格で提供します。

GS2 はサーバレス・マイクロサービスを利用して実装されていますが、なぜサーバレス・マイクロサービスを利用してサービス開発をすることになったのか、その背景をサーバレス・マイクロサービスを採用する利点を交えながらお話したいと思います。

f:id:yoshidashingo:20160903142723p:plain

gs2.io

---- 提供するサービスはスマホのネイティブアプリ向けですか?

GS2の提供するマイクロサービスはサーバ間通信をする形で利用しますので、ブラウザゲームも対応しています。 将来的には AWS の Cognito や STS のような認証モデルを採用したクライアントから直接GS2のインフラにアクセスする手段も提供したいと考えていますが、当面はサーバ間通信です。

GS2からはREST APIとSDK(当初はPHP/Ruby/Javaを予定)が提供され、そのAPIを利用してサービスを利用します。 課金モデルとしては、EC2のような性能を予約し、性能に応じた価格を時間単位で課金する形式や、APIコール回数に対する課金などが存在します。

f:id:yoshidashingo:20160903142855p:plain

---- ところでGS2ってどこのインフラを使っているんですか?

基本的にはAWSです。が、一部GCPを利用している箇所があります。 たとえば、AWS の CloudWatch に相当する統計情報提供のバックエンドには GCP の BigQuery を採用している。などです。 あとは、キュー処理はSQSよりPub/Subのほうがスループットが出るんで、データの流量が多いキューの場合はそっちを使ってたりしますね。

---- サーバーレス構成である以外に強力な特徴とかはありますか?

1つ目はメトリクスがちゃんと取れてることですかね。 なんだかんだ言って、サービスの利用状況を集めるのって大変じゃないですか。fluentd を立てたり、ログを保管したり、ElasticSerch を立てたり…。 リクエストにお金はかかるんですけど、クオータの利用状況の遷移とか、API呼び出し回数の遷移とか、ほしい指標のデータがいつでもAPI一発で取り出せるようになってます。

2つ目はサービスのスペック変更がノンストップでマネージメントコンソールで数クリック、APIなら一発で変更できることですね。 サーバレスなんだから、スペック変更とかいらないんじゃないの?って思われるかもしれませんが、 データベースにDynamoDBを使っているサービスは、事前にIOをコミットする必要があるので、EC2のインスタンスタイプみたいな形式を取らざるを得なくなってます。 将来的にIO課金型のデータベースでいいものが出てくるとこの辺もすっきりして綺麗になると思うんですけどね。 ちなみに、SimpleDB忘れてないですよ(笑) 将来性とスケーラビリティに不安があるので使ってないだけです。

www.slideshare.net

3つ目はマネージドサービスなんで当然なんですけど、ヘルスチェックがいらないですね。 Zabbix とか Nagios とかだと、そもそもそいつらが動いてるホストのヘルスチェックをどうするんだ。とか至上命題じゃないですか。 最近だと Mackerel とか Stackdriver とかいろいろ出てきてますけど、なんだかんだで結構費用もかかりますし、皆さん結構頭を悩ませてるところじゃないでしょうか。

---- サーバーレスなアプリケーション作成について、「開発しやすさ」と「サービスの安定性やサービスで使われている技術仕様の公開」はどのくらいの割合で重要視していますか?

GS2 としては、開発のしやすさにフォーカスをあてています。10:0といってしまってもいいかもしれません。 サービスの安定性等をプラットフォーマーであるAmazonやGoogleに依存することに不安がないとは言いませんが、それは、AmazonやGoogleが努力していくべき点で、逆に私では何もできないからです。

現在、S3にデータを預けるのにどれほど消失やサービス終了の不安感を持ちながら利用しているか。というと、そんなことを考えている人は殆どいなくなったと思います。Serverlessに関しても、実績がついてくれば将来的には問題にならない要素だと考えています。

とはいえ、いざ Lambda がなくなる。と言われると困ってしまいますが、Serverlessの基盤は 所詮コンテナの上でコードが実行されて定期的にコンテナが破棄されるという単純なものですので、いざというときには自前でコンテナを持てばいい。という逃げ道があるという安心感もあるかもしれません。

---- 絶賛開発中だとは思うんですが、どんなスケジュール感でサービス展開していく予定ですか?

今はローンチに向けて精一杯頑張ってる状態ですね。 ローンチ後のプランはまだあまり考えていなくて、利用いただいた方からのフィードバックを見ながら、既存のサービスを強化していくか、新しいサービスを追加していくか、方針を決めていきたいと思っています。

闇雲にサービスを充実させるというよりは、最初は少数かもしれませんが、利用いただいた方の満足度を高めていって、少しでもGS2を気に入ってもらえるよう成長させていきたいですね。 なので、早期に利用いただけると手厚い待遇が得られると思いますので、ぜひご検討ください(笑)

---- そういえばちょうど前職辞めたばかりですよね?生活変わりましたか?

任天堂で働いていた頃は結構遠くに住んでいたので、通勤に片道一時間かけていたんですが、今はゆっくり眠ることが出来るようになりましたね。ただ、当時の癖(任天堂の始業時間は8時45分)かわかりませんけど、この業界にしては早いんですが、朝9時には仕事を開始してますね。

それ以外だと、何も考えなくても固定給が支給されていたサラリーマンとは違って、頑張ってサービスを軌道に載せないといけない。という使命感はありますね。

---- プロフィール写真の犬が可愛いですね!犬好きですか?

ええ、写真の犬はミニチュアダックスフンドですが、あとチワワも飼っています。

子供の頃も犬を飼っていたんですが、室内で飼えるような小型犬が本当は飼いたかったんですよね。 でも、親が連れて行ってくれたのはペットショップじゃなくて保健所で(笑) 当然ながら、理想のちっこくて可愛い犬がいるわけはなくて、結局、室内では飼っていたんですが、完全に中型犬でしたね(笑)

そういうこともあって、大人になって理想の小型犬を飼いはじめた。という経緯がありますね。

---- ありがとうございました、まだ対面でお会いしたことないので、当日お会いできるのを楽しみにしています

ありがとうございました。

まとめ

GS2をこれから利用するカスタマーにとって、可用性や信頼性といった非機能要件が徹底的にプラットフォーム任せというのは、下手に自分たちでインフラ運用されるよりよっぽど信用できるというのは明らかでしょう。

機能性にフォーカスすればそれだけ経営のスピードを上げられるという典型で、大いに期待ができるサービスだと思いました。

実際の機能やサーバーレス構成についてはぜひイベントに参加して本人から直接聞いてみてください。

tokyo.serverlessconf.io