KLab株式会社

お問い合わせはこちら

DSAS Hosting for Social

導入事例:面白法人カヤック様

「最初は、海外クラウドサーバーを使っていましたが、安定していてサポートも十分なDSASに切り替えました」

(写真左から)カヤック技術部 庄司容祟氏 CTO 貝畑政徳氏

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

「最初は、海外クラウドサーバーを使っていましたが、安定していてサポートも十分なDSASに切り替えました」カヤック技術部 庄司容祟氏 CTO 貝畑政徳氏
Contents
面白法人カヤックのオフィス

カヤックのユニークな制度

サイコロ給

カヤックでは社員は毎月、給料日前にサイコロを振り、「出た目の% × 基本給」が給料の+αとして加算されます。例えば、基本給20万円の人がサイコロを振って4を出した場合、8000円(20万円の4%)がその月の給料に加算されます(給与が減ることはありません)。
サイコロ給の詳細▶

旅する支社

海外に住居兼オフィスを一定期間(2~3ヶ月)借り、カヤック社員が移動。日本でやる仕事を海外でやっています。これまでイタリアやハワイに「旅する支社」ができました。
旅する支社の詳細▶

「それって漫画っぽい?」

何かの選択肢で迷ったときは「漫画っぽい方」を選びます。漫画っぽいとは、「必殺技」、「まっすぐ」、「まさかの展開」、「決めゼリフ」、「勝つ」、「すごい仲間」、「弱点」などが揃っている状態を指します。
「それって漫画っぽい?」の詳細▶

面白法人カヤック

カヤックについて教えてください。

貝畑政徳氏
カヤックは、鎌倉にある、Webとモバイルのコンテンツ開発会社です。外からは、Web会社、ゲーム会社と認知されがちですが、実際には、コンテンツ開発以外にも、貧乏ゆすりプロダクトやYUREXなどプロダクト開発や、鎌倉のどんぶりカフェbowlsといった飲食事業など「面白い」ことには積極的に取り組んでいます。経営理念は「つくる人を増やす。」です。

貝畑さん、庄司さんについて教えてください。

貝畑政徳氏
貝畑政徳です。カヤックの創立メンバーで、今はCTOを務めています。最近は、モバゲータウンのモバイルオンラインゲーム「英雄になりたい!」の、企画、設計、開発、運用のすべてを担当しました。
庄司容崇氏
庄司容崇です。「英雄になりたい!」には開発、運用の技術者として参加しました。現在30歳ですが、実は勤続10年目で、カヤックの中では古参です。

モバイルオンラインゲーム「英雄になりたい!」について

「英雄になりたい!」について教えてください。

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

「英雄になりたい!」の技術面でのゲーム特性

技術的な面でのゲーム特性について教えてください。

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

カヤックではDSAS Hosting for Socialをどう使っているか

現在、カヤックではDSAS Hosting for Socialをどう活用していますか。

貝畑政徳氏
DSAS Hosting for Socialは「英雄になりたい!」のサーバーインフラとして活用しています。2月13日のゲームリリース当初は、海外クラウドを使っていましたが、途中、モバゲータウンの指導を受けたこともあり、国内インフラであるDSASに切り替えました。

海外クラウドからDSASへの引っ越しの一部始終

海外クラウドからDSASへの引っ越しの経緯をお聞かせください。

庄司容崇氏
回想録ぽく表現すると表(海外クラウドから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が手がけるサービスなのだから品質はきっと良いだろうとも思っていました。しかし、当初想定していたサービス規模では、コストの安い海外サーバーを選ぶ方が得策に思われたのです。

なぜ引っ越し先として、DSAS Hosting for Socialを選んだのか

もう一つ質問です。サーバーの引っ越し先として、何社を比較検討しましたか。

庄司容崇氏
その時は、KLab、国内ホスティング大手A社、国内クラウドB社の三社を比較検討しました。比較検討の基準は、「高負荷対応のアプリケーション作りのコンサルティングがあるかどうか」でした。その結果、理論と経験に裏打ちされた「本当に役立つコンサルティング」を提供してくれそうなのは、KLabであろうと判断し、サーバー移転先はKLab(DSAS)に決めました。

KLabは具体的にどんなコンサルティングをしたのか

サーバー引っ越しの直後には、KLabの技術者からどのようなコンサルティングがあったのですか?

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

これからモバイルオンラインゲームを始めようとする会社へのアドバイス

これからモバイルオンラインゲームを始めようとするゲーム会社向けに、
サーバーインフラの選び方についてコメントがあればお願いします。

貝畑政徳氏
まだノウハウを述べられるほどではありませんが、私見として述べてみます。まず「どんなサーバーインフラを選ぶべきか、クラウドなのかホスティングなのか DSASなのかという選択において、絶対的な指標があるわけでなく、その会社の技術レベル、企画レベル、財務状況に応じて最適解は変わる」ということは前提にしたく思います。
ユーザー数がまったく読めない場合は、クラウドから始めた方が良いと思います。今回の「英雄になりたい!」は海外クラウドで開始し、途中で引っ越しを余儀なくされましたが、それは
1):「英雄になりたい!」のトラフィックが増えたから
2):「英雄になりたい!」というシミュレーションバトルゲーム自体が SQLクエリを多く発行する、いわゆる「重いゲーム」だったから
という二つの条件が重なったからです。この条件がなければ今も海外クラウドを使っていたかもしれません。実際、カヤックがこれまで開発したゲームでは、インフラとして海外クラウドを使用していますし、それらゲームは今でも安定稼働しています。
庄司容崇氏
経験もない、お金もない、ゲームが当たるかどうかもまったく読めないという、「デビュー段階」の会社の場合は、海外クラウドを使うのが良いと思います。やはりクラウドは、始めやすいですから。
貝畑政徳氏
逆に、ある程度、企画力と経験があって、「今回のゲームはある程度トラフィックが増えて、サーバー負荷も高くなるだろう」とヨミが立つ場合には、海外クラウドではなく、最初からKLabのようにコンサルティングサービスが付帯した国内サーバーを使うのがよいかもしれません。
庄司容崇氏
自分たちのゲームの技術特性もよく考慮する必要があります。「英雄になりたい!」のような「重いゲーム」を作る場合は、最初はKLabのような専門家のコンサルティングを受けてみることをおススメします。作った物が現れないというのは、アプリ提供者としてあってはならないことです。今は平静に語れますが、「英雄になりたい!」がダウンし続けたときはもうどうしようかと…。コンサルティングを受けて、ゲームが復活したときは本当にほっとしました(笑)。

今後の期待

KLabへの今後の期待をお聞かせください。

庄司容崇氏
今回、KLabさんのサポートを通じて「英雄になりたい!」が安定してサクサク動くようになりました。ありがとうございます。
貝畑政徳氏
これからも、ユーザーに楽しんでもらえる、いいゲームを作っていきます。KLabさんの進化に期待します。今回はいろいろありがとうございました。引き続き、よろしくお願いします。

カヤック様、本日はお忙しい中、貴重なお話をありがとうございました。