人気ゲームを提供するグループスでは,どのようにインフラを運用しているのでしょうか。今回と次回の2回にわたって,グループスのインフラグループのエンジニア,伊東弘満氏,河村喬樹氏,そして富樫英雅氏の3名に,ソーシャルゲームの運用におけるポイントを伺っていきます。(左から)河村喬樹氏,富樫英雅氏,伊東弘満氏リソースを効率的に利用するWindowsのチューニングソーシャルゲームを安定して提供していくうえで最も重要な役割を担っているのがインフラエンジニアです。Webサイトによる一般的なコンテンツ提供とは桁違いのアクセスをさばく必要があるほか,一定時間内にユーザからのリクエストに応答しなければならないという「5秒ルール」にも対応しなければなりません。サーバの物理的な故障やミドルウェアの障害など,さまざまなトラブルに迅速に対応するスキルも求められます。人気ソーシャルゲームを提供するグループスでは,こうした課題を乗り越えるためにどのような工夫をしているのでしょうか。ソーシャルゲームの運用において最初の難関となるのはサービスの提供開始時における必要なリソースの見極めではないでしょうか。ゲームをプレイするユーザの数によって,必要となるサーバ台数は大きく変わりますが,一方でユーザ数を事前に正確に見積もることは困難です。そのため,できるだけ余裕を持ってサーバを準備したいところですが,サーバの数が増えればコストがかさみ,運用の負担も大きくなってしまいます。グループスでは新規にゲームを提供する際,どのようにサーバを準備しているのでしょうか。これに答えてくれたのは伊東氏です。「グループスではこれまでの経験を踏まえ,ゲーム提供開始時に用意するサーバの台数をある程度固定しています。それで予想よりもアクセスが上回った場合には,サーバをどんどん追加するというイメージですね。Serverを利用しています。サーバのセットアップの際には,これらを動かすWindowsのセッティングも一気に行うと伊東氏は続けます。「セットアップにはLinuxならシェルスクリプト,Windows環境ではバッチファイルを使っていますが,この中で必要なチューニングも行っています。チューニングでとくに気にしているのはポート番号の制限です。ポート番号は0から65535までしかなく,さらにOSやミドルウェアが使う分を差し引くと,利用できる数はけっして多くありません。そのポート番号を効率的に使うチューニングをするわけです。WAIT)が長く設定されているので,それを短縮する修正などを行っています(伊東氏⁠)⁠」また新規ゲーム用のサーバ構築は,ほかのゲームの運用と並行しながらの作業で,おおよそ2週間程度で構築すると話すのは河村氏です。「グループスではフロントエンドとアプリケーションサーバ,データベースの各レイヤで使うものが固まっているので,構築自体は手間がかかりません。だいたい1ヵ月に1タイトルのペースで新作ゲームをリリースしていますが,既存ゲームの運用に対応しつつ,2週間くらいでサーバをセットアップします。1タイトル分のサーバをたった2人のエンジニアが3日間で構築したこともありました。セットアップのかなりの部分を自動化していたので対応できましたが,あれは本当にたいへんでした(河村氏⁠)⁠」インフラの運用にも関わるアプリケーションエンジニア無事リリースが完了すれば,あとは運用作業へと進みます。ここで重要となるのが各サーバの監視。グループスでは,オープンソースのシステム監視ツールである「Icinga」に自作スクリプトを組み合わせているとのこと。Executor⁠)⁠」を使い,やはりIcingaで監視しています。Server環境における管理は当然ながらGUIを使います。Linuxでのコマンドライン操作に慣れているエンジニアにとって,GUIベースの管理はまどろっこしいという意見をよく聞きますが,実際はどうなのでしょうか。富樫氏は「慣れですね」と答えます。ServerのGUIにも慣れたので,以前ほど気にならなくなりました。誰でも操作できるというのは大きな強みだと思います。Serverだから実現できたことだと思います。すべてLinuxであれば,アプリケーションエンジニアが運用中のサーバにアクセスして何かをするのは難しかったでしょう(富樫氏⁠)⁠」アプリケーションエンジニアもインフラの運用に関わっているのは,グループスの大きな特徴でしょう。その理由について,伊東氏は次のように説明します。「サーバの状態などをオープンにしておき,アプリケーションエンジニアにも見てもらうことで,そのときどきの状況を理解してもらうのがねらいです。グループスでは毎週のようにソーシャルゲームをアップデートしており,当然プログラムも書き換えられていきます。運用にまつわる情報が開示されていれば,プログラムを変更したことでパフォーマンスがどのように変化したのかもわかりますよね。それで応答速度が低下していれば,その原因を究明して対応することになるでしょう。いった作業を繰り返していくことは,ソースコードの精度向上につながるのではないでしょうか(伊東氏⁠)⁠」グループスでは,アプリケーションエンジニアやインフラエンジニアが積極的にコミュニケーションを図っているといいます。同社が質の高いソーシャルゲームを提供し続けられる理由に,エンジニア間の密な情報共有があるのは間違いなさそうです。グループスでは,強い好奇心を持ったエンジニアを募集しています。2019」を開催しました。DAY1・DAY2の様子を注目セッションとともにお伝えします。LINEのエンジニア3名がイベントに先駆けて見どころを紹介します。コードの安全性・安定性を高める開発サイクル~テスト管理の効率を上げ,脆弱性診断を自動で行う~本連載では,連載「業務を改善する情報共有の仕掛け」を受けつつ,安全性・安定性を加えた開発サイクルについて考えていきます。若者世代から圧倒的な人気を誇るライブ配信&動画投稿コミュニティアプリ「MixChannel」(ミクチャ)の裏側(レコメンドシステムやサーバサイド開発など)について解説していきます。その他の連載CSS3アニメーションでつくるインターフェイス表現CSS3によるアニメーション表現を紹介していきます。その中でも,幅広い読者に応用してもらえるだろうインターフェイスを主なお題とします。MySQL道普請便り本連載では,MySQLを使ったアプリ開発・運用に関するノウハウをご紹介していきます。RecipeUbuntuの強力なデスクトップ機能を活用するための,いろいろなレシピをお届けします。JavaScriptセキュリティの基礎知識JavaScriptに関するセキュリティ上の問題はどこで発生し,どうすれば防ぐことができるのか?について解説していきます。〜システムをきちんと運用するための基礎知識システムは「作って終わり」ではなく,運用の中でさまざまな問題が発生します。問題の発生に備えて事前にどのような対応をしておくべきなのか,問題発生時に何をしなければならないのか,ポイントを解説していきます。きたみりゅうじの聞かせて珍プレーソフトウェア開発の現場で体験したトホホな失敗,思わずうなる珍プレーをきたみりゅうじ氏が四コママンガで紹介。Linuxのメンテナンスの傍ら,Linuxやオープンソースソフトと日々を過ごす著者が,その魅力とつきあい方を,エッセイ風味でお届けします。PRESS特別編集部員,さわやか笑顔のスーパーハカーはまちちゃんとネット大好き14歳わかばちゃんが,毎号,読者の皆さんから寄せられたおたよりを紹介します。皆さんの日頃の悩みにも答えちゃいますよ。]メールでのお知らせメールで次の案内をお送りしております。メールの配信を希望する方は,利用したい項目をチェックしてメールアドレスを入力し,[登録]ボタンをクリックしてください。UPDATES[ほぼ週間に1回]新刊メールマガジン[ほぼ週間に1回]電脳会議の各号案内[ほぼ1ヵ月半に1回]※変更する場合や停止する場合は,登録情報変更ページをご覧ください。※登録いただいたメールアドレスには,そのお知らせ以外,配信いたしません。Ltd.ページ内容の全部あるいは一部を無断で利用することを禁止します。個別にライセンスが設定されている記事等はそのライセンスに従います。