14:002009年2月にサービスを開始し、2年間で利用者数600万人を超える人気ネットサービスに成長したアメーバピグ。利用者数の着実に伸ばしてきた背景には、サービスを満足して使えるインフラが構築されていたからだ。そんな人気ネットサービスのインフラ構成はどのようになっているのか。サービスの中にはかなりの苦労を伴ったものもあるという。そのあたりの裏話についても、桑野章弘氏と根本英明氏が明かした。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がバックエンドを抽象化、データストアの選択を自由にAmeba画像ストレージシステムの構築・運用で学んだ4つのことAmebaの画像ストレージシステム構築で得たノウハウを紹介したのは、根本英明氏である。画像ストレージとはアメーバブログのユーザー画像のためのストレージ。「2008年10月にリリースされた当初の不安定さは半端じゃなかった」(根本氏)という。障害件数は多数、データロストも起こし、夜中に何度も起こされ対応したと明かします。「苦節2年、安定化させることができた」ということで、そこで得られた手法を明かしてくれた。画像ストレージシステムはトラフィック数3Gbps弱、投稿容量は一日約120GB。一日のアクセス数は約3億~4億というシステム。障害内容はサーバとRAID間の通信が遮断される、突然ハードディスクドライブ(HDD)が認識しなくなるというもの。Controller、Mini-SASケーブル、Enclosure、HDD)に不安定要因が潜んでいたのである。そこで安定化するまで根本氏は「サーバ改善、HDD改善ほか、すべての構成要素の改善に取り組んだ」という。行ったのは全コンポーネントの列挙と調査。Controllerの定格温度は55°C。動作環境は70°Cを超えていた」のである。R300に変更したところ、動作環境の室温はほぼ定格温度を超えないようになった(※注)。これで不安定要因の1つは取り除くことができたが、その後もろもろの対策を打とうとも、「突然HDDを認識しなくなる」という障害の改善解決には至らなかったという。そこで根本氏がとった最後の対策がHDDの全入れ替えだった。※注DELL推奨構成での利用ではありません。「1台のストレージに1TB×8台のHDD。それが18セットあったので、合計144台を入れ替えた」と根本氏は振り返る。その思い切りも、安定するストレージを手に入れる重要なポイントだったのだ。このように安定化するまで道のりは苦労の連続。苦労したのは動作確認である。「発生頻度が変わるので、どの構成がどこまで安定しているかがなかなかわからない。私たちの場合は複数の対策を同時に進行し、安定しないものを切っていくことで動作確認ができた。今回のことで学んだことは、1.コンポーネントを列挙する、2.怪しい部品は交換する、3.思い切る、4.複数対策を同時進行するということ。圧縮・解凍UNIX基本講座@CodeZine『CodeZine(コードジン)』の公式アカウントです。【NEW】デブスト2019デブサミ2019福岡・関西デブサミ2019夏デブスト関西デブサミ2019×ログインEメールパスワード※旧SEメンバーシップ会員の方は、同じ登録情報(Eメール&パスワード)でログインいただけます。イラストの無断転載を禁じます。記載されているロゴ、システム名、製品名は各社及び商標権者の登録商標あるいは商標です。