


最近はソーシャルゲームの開発に力を入れている鎌倉の面白法人、カヤックのCTO 貝畑政徳氏と、庄司容祟氏に、DSAS Hosting for Socialへの評価について詳しく聞いた。
※「モバゲータウン」は2011年3月「Mobage」にサービス名を変更いたしましたが、本取材は2010年6月に行ったため、旧サービス名での記載となっております。ご了承ください。
目次
- カヤックについて教えてください。


カヤックは、鎌倉にある、Webとモバイルのコンテンツ開発会社です。外からは、Web会社、ゲーム会社と認知されがちですが、実際には、コンテンツ開発以外にも、貧乏ゆすりプロダクトやYUREXなどプロダクト開発や、鎌倉のどんぶりカフェbowlsといった飲食事業など「面白い」ことには積極的に取り組んでいます。経営理念は「つくる人を増やす。」です。
カヤックでは社員は毎月、給料日前にサイコロを振り、「出た目の% × 基本給」が給料の+αとして加算されます。例えば、基本給20万円の人がサイコロを振って4を出した場合、8000円(20万円の4%)がその月の給料に加算されます(給与が減ることはありません)。
(サイコロ給の詳細)
海外に住居兼オフィスを一定期間(2〜3ヶ月)借り、カヤック社員が移動。日本でやる仕事を海外でやっています。これまでイタリアやハワイに「旅する支社」ができました。
(旅する支社の詳細)
何かの選択肢で迷ったときは「漫画っぽい方」を選びます。漫画っぽいとは、「必殺技」、「まっすぐ」、「まさかの展開」、「決めゼリフ」、「勝つ」、「すごい仲間」、「弱点」などが揃っている状態を指します。
(「それって漫画っぽい?」の詳細)
- 貝畑さん、庄司さんについて教えてください。

貝畑政徳です。カヤックの創立メンバーで、今はCTOを務めています。最近は、モバゲータウンのソーシャルゲーム「英雄になりたい!」の、企画、設計、開発、運用のすべてを担当しました。

庄司容崇です。「英雄になりたい!」には開発、運用の技術者として参加しました。現在30歳ですが、実は勤続10年目で、カヤックの中では古参です。
- 「英雄になりたい!」について教えてください。

「英雄になりたい!」は、今年2月にモバゲータウンでリリースしたシミュレーションバトルゲームです。三つの国家が、全国統一を目指して争っている世界が舞台。ユーザーは1兵士として国家と将軍に仕え、ゲームに参加します。ゲームの中に世界観があり、それに沿ってストーリーが進む点はRPG的ですが、一方では参加メンバーの動きによりゲーム世界の枠組みが揺れ、参加するユーザーのポジションが大きく変わるという特徴があります。そういう意味では1人1人のユーザー自らが、世界の枠組みを構築するゲームだといえます。
- DSASのことはどこでご存じいただけましたか。


基本的にバトルの繰り返しなので、ページのリロードが頻繁に発生します。瞬間瞬間のリクエスト総数が非常に多くなりやすいゲームです。また一つのリクエストの際に、HPや経験値など、キャラクター属性データの更新も発生します。一回のページリクエストの際に発せられるSQLコマンドの総数が、通常のゲームに比べ、相当に多いゲームです。
また「バトル」をエンターテイメント要素にしているゲームなので、サクサク動かなくなると、操作感が悪くなり、楽しさが減る可能性があります。
- 現在、カヤックではDSAS Hosting for Socialをどう活用していますか。

DSAS Hosting for Socialは「英雄になりたい!」のサーバインフラとして活用しています。2月13日のゲームリリース当初は、海外クラウドを使っていましたが、途中、モバゲータウンの指導を受けたこともあり、国内インフラであるDSASに切り替えました。
- 海外クラウドからDSASへの引っ越しの経緯をお聞かせください。

回想録ぽく表現すると次のようになります。
| 2月13日 〜 「英雄になりたい!」リリース 英雄になりたい!をモバゲーでリリース。プラットフォームは海外クラウド。この時は、どれぐらいユーザーが集まるのか、未知数でした。 |
|
| 2月14日 〜 アクセスの伸びが加速 アクセスの伸び方が、以前にモバゲーでリリースした「携帯錬金術師」と、同じぐらいに活発になってきました。 |
|
| 2月16日 〜 サーバダウン 突然サーバが落ちました。いくらアクセスしてもメンテナンスモードのまま… ゲームを提供する側としてユーザーに対する責任を感じました。モバゲータウンに問い合わせたところ、「サーバが海外にあり、回線遅延が発生していることが問題の根本と思われます。国内サーバへの移転をご検討ください」と返答がありました。引っ越しを決意し、国内サーバを探し始めました。 ここからは「引っ越し先の国内サーバを探す活動」と「『英雄になりたい!』をメンテナンスモードから何とか復活させる活動」という二つの動きが並行します。 |
|
| 2月16日 〜 引っ越し先サーバを探す活動 (根本治療) サーバが落ちた当日、貝畑がCTO仲間のKLab仙石さんに「DSASを検討してます」とメールを出しました。 貝畑から「他社のサービスも調べてほしい」と依頼があったので、ホスティング各社と比較検討しましたが、コンサルティングが受けられるKLabが良いだろうという結論になりました。 KLabに連絡。開発環境は一日でできあがりました。それから移行作業を開始(KLabとはIRCを使って連絡) 作業は、最初に相談メールを出してから10日後の28日に終わりました。 |
2月16日 〜 ゲームをとりあえず復活させようとする活動(応急手当) DSASへの引っ越しは決めたものの、メンテナンスモードになってしまった「英雄になりたい!」を何とか復活させたいと思い、アプリをチューニングするなど、いろいろ試みました。しかし、何をやっても復旧できません。サーバのログを見ても異常なし。パケットが見られれば、原因は究明できますが、クラウドなので、パケットの中身は見えません。 一週間にわたり、さまざまな手を尽くしましたが、結局、解決にはいたりませんでした。 |
| 2月28日 15:00 〜 DSASへの引っ越し完了。しかし… 2月28日、午後3時頃、海外クラウドからDSASへ引っ越し(DNS切替)。さあ、これでゲーム再開!と思いましたが、再開してユーザーが集まってきた瞬間、また落ちて、メンテナンスモードになりました。すぐにKLabに連絡し、調査開始。9時間後の夜12時頃に直りました。 (ちなみにこの件はこちら側のアプリのメモリ管理のやり方が悪かったのが原因です) |
|
| 2月28日 24:00頃 〜 本当の引っ越し完了 アプリのメモリ管理の問題を直して、もう一度、ゲーム再開。今度は大丈夫でした。それ以後は「英雄になりたい!」の動作は安定しています。 |
|
- 今のお話について、いくつか質問させてください。そもそも最初にサーバインフラとして海外クラウドを選んだのはなぜですか。

はじめに使った海外クラウドは、mixiのアプリ開発でもインフラとして多く使われるなど、実績が豊富です。自分自身、そのクラウド上でソーシャルゲームを組んだ経験がありました。まずはこれで大丈夫だと考えました。

私も始めは「実績豊富な海外クラウドだから、品質に問題はないだろう。Webで申し込みもできて、すぐ始められて便利だし、使った分しか課金されない。これからリリースする『英雄になりたい!』もアクセスがどこまで伸びるか分からないし、だったら使った分しか課金されないクラウドの方が良い」と考えました。

DSAS Hosting for Socialのことも知ってはいましたし、KLabが手がけるサービスなのだから品質はきっと良いだろうとも思っていました。しかし、当初想定していたサービス規模では、コストの安い海外サーバを選ぶ方が得策に思われたのです。
- もう一つ質問です。サーバの引っ越し先として、何社を比較検討しましたか。

その時は、KLab、国内ホスティング大手A社、国内クラウドB社の三社を比較検討しました。比較検討の基準は、「高負荷対応のアプリケーション作りのコンサルティングがあるかどうか」でした。その結果、理論と経験に裏打ちされた「本当に役立つコンサルティング」を提供してくれそうなのは、KLabであろうと判断し、サーバ移転先はKLab(DSAS)に決めました。
この判断は正解でした。先にも述べたとおり、引っ越し直後2月28日15時からも、問題は次々に噴出してきましたが、KLabの技術者のコンサルティングを通じ、問題は都度都度テキパキと解決できました。
- サーバ引っ越しの直後には、KLabの技術者からどのようなコンサルティングがあったのですか?

引っ越し(DNS切替)の直後に、すぐダウンした理由は、オブジェクトキャッシュに大きなデータを入れすぎていたせいでした。それがネットワーク帯域を食っていて、ダウンにつながりました。KLabからは、オブジェクトキャッシュより、MySQLのクエリキャッシュ機能を活用する方が適切でしょうとの提案をいただきました。その提案に従い、アプリケーションを組み直したところ、ダウンしなくなりました。
その後、サービス運用を続ける中で、ユーザーが増え、トラフィックが上がるにつれ、未知の問題が多く出てきましたが、その都度、KLabと相談し、一つずつ丁寧に解決していきました。
「英雄になりたい!」は、一回のページロードに際し、HPや経験値の更新など多くのSQL更新クエリが発行される性質のゲームです。自分のこれまでのゲーム開発経験の中で、これほど更新クエリ発行数が多いゲームはありませんでした。その未経験ゆえ、先ほど述べたオブジェクトキャッシュのような拙いアプリの組み方をしてしまいました。今回は、よく学び、自分の知識と技術を進化させる良い機会だと考え、KLabの技術者の助言のもと、更新クエリ発行数を減らすことに成功しました。
まずバイナリログからSQLを抜き出して、どんなクエリが多いのかを調べました。その結果、frameworkによりクエリが意味なく重複発行されていたことがわかったので、こちらも減らしました。さらに「使われていないインデックスを無くす」や「無駄な外部キーを無くす」など、ムダな処理をなくす作業も並行して進めました。
- れからソーシャルゲームを始めようとするゲーム会社向けに、サーバインフラの選び方についてコメントがあればお願いします。

まだノウハウを述べられるほどではありませんが、私見として述べてみます。まず「どんなサーバインフラを選ぶべきか、クラウドなのかホスティングなのか DSASなのかという選択において、絶対的な指標があるわけでなく、その会社の技術レベル、企画レベル、財務状況に応じて最適解は変わる」ということは前提にしたく思います。
ユーザー数がまったく読めない場合は、クラウドから始めた方が良いと思います。今回の「英雄になりたい!」は海外クラウドで開始し、途中で引っ越しを余儀なくされましたが、それは
1):「英雄になりたい!」のトラフィックが増えたから
2):「英雄になりたい!」というシミュレーションバトルゲーム自体が SQLクエリを多く発行する、いわゆる「重いゲーム」だったから
という二つの条件が重なったからです。この条件がなければ今も海外クラウドを使っていたかもしれません。実際、カヤックがこれまで開発したゲームでは、インフラとして海外クラウドを使用していますし、それらゲームは今でも安定稼働しています。

経験もない、お金もない、ゲームが当たるかどうかもまったく読めないという、「デビュー段階」の会社の場合は、海外クラウドを使うのが良いと思います。やはりクラウドは、始めやすいですから。

逆に、ある程度、企画力と経験があって、「今回のゲームはある程度トラフィックが増えて、サーバ負荷も高くなるだろう」とヨミが立つ場合には、海外クラウドではなく、最初からKLabのようにコンサルティングサービスが付帯した国内サーバを使うのがよいかもしれません。

自分たちのゲームの技術特性もよく考慮する必要があります。「英雄になりたい!」のような「重いゲーム」を作る場合は、最初はKLabのような専門家のコ ンサルティングを受けてみることをおススメします。作った物が現れないというのは、アプリ提供者としてあってはならないことです。今は平静に語れますが、 「英雄になりたい!」がダウンし続けたときはもうどうしようかと…。コンサルティングを受けて、ゲームが復活したときは本当にほっとしました(笑)。
- KLabへの今後の期待をお聞かせください。

今回、KLabさんのサポートを通じて「英雄になりたい!」が安定してサクサク動くようになりました。ありがとうございます。

これからも、ユーザーに楽しんでもらえる、いいゲームを作っていきます。KLabさんの進化に期待します。今回はいろいろありがとうございました。引き続き、よろしくお願いします。
カヤック様、本日はお忙しい中、貴重なお話をありがとうございました。