SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

デブサミ2011セッションレポート(AD)

デブサミ2011レポート
利用者数600万人、人気ネットサービス「アメーバピグ」を支えるインフラ構築で学んだこと

  • X ポスト
  • このエントリーをはてなブックマークに追加

 2009年2月にサービスを開始し、2年間で利用者数600万人を超える人気ネットサービスに成長したアメーバピグ。利用者数の着実に伸ばしてきた背景には、サービスを満足して使えるインフラが構築されていたからだ。そんな人気ネットサービスのインフラ構成はどのようになっているのか。サービスの中にはかなりの苦労を伴ったものもあるという。そのあたりの裏話についても、桑野章弘氏と根本英明氏が明かした。

  • X ポスト
  • このエントリーをはてなブックマークに追加

 2009年2月にサービスを開始し、2年間で利用者数600万人を超える人気ネットサービスに成長したアメーバピグ。利用者数を着実に伸ばしてきた背景には、サービスを満足して使えるインフラが構築されていたからだ。そんな人気ネットサービスのインフラ構成はどのようになっているのか。サービスの中にはかなりの苦労を伴ったものもあるという。そのあたりの裏話についても、桑野章弘氏と根本英明氏が明かした。

株式会社サイバーエージェント 新規開発局 システムディベロップメントグループ 桑野章弘 氏
株式会社サイバーエージェント 新規開発局 システムディベロップメントグループ 桑野章弘 氏
株式会社サイバーエージェント 新規開発局 システムディベロップメントグループ 根本英明 氏
株式会社サイバーエージェント 新規開発局 システムディベロップメントグループ 根本英明 氏

アメーバピクの経験から得られたデータストア構築の3つのポイント

 アメーバピグとは2Dのアバターサービス。着せ替えやペットを飼ったり、釣りやルーレットなどのゲームを楽しんだりすることができる。そのサービスを支えるバックエンドの構成、中でもエリアなどの状態データを保存するデータストアの構成は、「運用するうちに一番大きく変わった部分だ」と桑野氏は言う。

 アメーバピグのサービスを開始した当初、データストアに自作KVSを使用し、更新処理はDBサーバ、参照処理はKVSサーバが行っていた。現在はKVSサーバを撤廃し、Fusion-ioを搭載したDBサーバで更新、参照ともに処理しているという。RDBMS構成にした理由は「2010年7月に入りデータが増大し、KVSの再構築に時間がかかるようになったから」(桑野氏)だ。

 この経験から得られたデータストア構築手法の第一は、バックエンドに依存しないモデルをつくることである。アメーバピグのデータ取得の仕組み「IndexPersister」はデータストア部分を抽象化する。データストアの選択は自由となり、もちろん労力をかけずに切り替えが可能となる。「実際に2か月程度でKVSをすべてMySQLに置き換えることができた」と桑野氏。

 第二は、正確な負荷テストおよび差分テストの実施である。ピグの負荷テスト用フレームワークを作成し、実サーバでデータ操作のログを取得、本番に限りなく近い環境で操作のログをもとに負荷テストを実行したのである。また置き換え前には本番での差分テストを実施した、と桑野氏。KVSとRDBMS双方に書き込みを行い、差分を複数の方法でチェック。「ここまでやって安心できた」と桑野氏は笑う。

 第三はプロダクトの選定基準である。理想的なプロダクトか、実現性、実現工数が高いかという2つの角度から見たうえで、より事業に貢献できるものを選んだことである。

図:IndexPresisterがバックエンドを抽象化、データストアの選択を自由に
図:IndexPresisterがバックエンドを抽象化、データストアの選択を自由に

Ameba画像ストレージシステムの構築・運用で学んだ4つのこと

 Amebaの画像ストレージシステム構築で得たノウハウを紹介したのは、根本英明氏である。画像ストレージとはアメーバブログのユーザー画像のためのストレージ。「2008年10月にリリースされた当初の不安定さは半端じゃなかった」(根本氏)という。障害件数は多数、データロストも起こし、夜中に何度も起こされ対応したと明かします。しかし「苦節2年、安定化させることができた」ということで、そこで得られた手法を明かしてくれた。

 画像ストレージシステムはトラフィック数3Gbps弱、投稿容量は一日約120GB。一日のアクセス数は約3億~4億というシステム。障害内容はサーバとRAID間の通信が遮断される、突然ハードディスクドライブ(HDD)が認識しなくなるというもの。つまりストレージを構成しているすべて(サーバ、RAID Controller、Mini-SASケーブル、Enclosure、HDD)に不安定要因が潜んでいたのである。そこで安定化するまで根本氏は「サーバ改善、HDD改善ほか、すべての構成要素の改善に取り組んだ」という。

 まず行ったのは全コンポーネントの列挙と調査。「RAID Controllerの定格温度は55℃。しかし動作環境は70℃を超えていた」のである。そこでサーバをDELL R200からDELL R300に変更したところ、動作環境の室温はほぼ定格温度を超えないようになった(※注)。これで不安定要因の1つは取り除くことができたが、その後もろもろの対策を打とうとも、「突然HDDを認識しなくなる」という障害の改善解決には至らなかったという。そこで根本氏がとった最後の対策がHDDの全入れ替えだった。

※注

 DELL推奨構成での利用ではありません。

 「1台のストレージに1TB×8台のHDD。それが18セットあったので、合計144台を入れ替えた」と根本氏は振り返る。その思い切りも、安定するストレージを手に入れる重要なポイントだったのだ。

 このように安定化するまで道のりは苦労の連続。特に苦労したのは動作確認である。「発生頻度が変わるので、どの構成がどこまで安定しているかがなかなかわからない。しかし私たちの場合は複数の対策を同時に進行し、安定しないものを切っていくことで動作確認ができた。今回のことで学んだことは、1.コンポーネントを列挙する、2.怪しい部品は交換する、3.思い切る、4.複数対策を同時進行するということ。もし、トラブルがあったときの解決手法として役立ててほしい」

お問い合わせ

株式会社サイバーエージェント

東京都渋谷区道玄坂一丁目12番1号 渋谷マークシティ ウエスト

http://www.cyberagent.co.jp/

採用中の職種 詳細ページ

https://rec-log.jp/site/jobLst.aspx?company_id=5776

 

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
デブサミ2011セッションレポート連載記事一覧

もっと読む

この記事の著者

CodeZine編集部(コードジンヘンシュウブ)

CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/5819 2011/03/29 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング