18 a-6 ameba pigg backend practice 20110217
-
Upload
akihiro-kuwano -
Category
Technology
-
view
6.104 -
download
1
Transcript of 18 a-6 ameba pigg backend practice 20110217
Ameba Ameba Ameba Ameba Ameba Ameba Ameba Ameba PiggPiggPiggPiggPiggPiggPiggPigg Backend PracticeBackend PracticeBackend PracticeBackend PracticeBackend PracticeBackend PracticeBackend PracticeBackend Practice
株式会社株式会社株式会社株式会社サイバーエージェントサイバーエージェントサイバーエージェントサイバーエージェントアメーバアメーバアメーバアメーバ事業本部事業本部事業本部事業本部プラットフォームディビジョンプラットフォームディビジョンプラットフォームディビジョンプラットフォームディビジョン
システムディベロップメントグループシステムディベロップメントグループシステムディベロップメントグループシステムディベロップメントグループ
CA Developers ConnectCA Developers ConnectCA Developers ConnectCA Developers Connect
桑野桑野桑野桑野 章弘章弘章弘章弘
2222
� 桑野章弘桑野章弘桑野章弘桑野章弘
�サイバーエージェントサイバーエージェントサイバーエージェントサイバーエージェント�Ameba Ameba Ameba Ameba をををを運営運営運営運営していますしていますしていますしています。。。。
- BlogBlogBlogBlogをををを中心中心中心中心としてとしてとしてとして様様様様々々々々ななななサービスサービスサービスサービスがありますがありますがありますがあります。。。。
�アメーバピグアメーバピグアメーバピグアメーバピグのののの運用運用運用運用////構築構築構築構築をををを担当担当担当担当
� TwitterTwitterTwitterTwitter� http://http://http://http://twitter.com/kuwa_twtwitter.com/kuwa_twtwitter.com/kuwa_twtwitter.com/kuwa_tw
� BlogBlogBlogBlog� http://http://http://http://d.hatena.ne.jp/akuwanod.hatena.ne.jp/akuwanod.hatena.ne.jp/akuwanod.hatena.ne.jp/akuwano////
�著書著書著書著書////活動活動活動活動� 「「「「MySQLMySQLMySQLMySQLによるによるによるによるタフタフタフタフななななサイトサイトサイトサイトのののの作作作作りりりり方方方方」」」」
�勉強会勉強会勉強会勉強会((((hbstudyhbstudyhbstudyhbstudy, , , , qpstudyqpstudyqpstudyqpstudyほかほかほかほか))))などでのなどでのなどでのなどでの発表発表発表発表などなどなどなど
自己紹介自己紹介
5555
アジェンダアジェンダ
� アメーバピグアメーバピグアメーバピグアメーバピグってってってって????
� アメーバピグアメーバピグアメーバピグアメーバピグののののアーキテクチャアーキテクチャアーキテクチャアーキテクチャ
�全体構成全体構成全体構成全体構成
� アメーバピグアメーバピグアメーバピグアメーバピグののののデータストアデータストアデータストアデータストア
�データストアデータストアデータストアデータストアのののの構成構成構成構成
�データストアデータストアデータストアデータストアののののプラクティスプラクティスプラクティスプラクティス
6666
アメーバピグって?アメーバピグって?
� アメーバピグアメーバピグアメーバピグアメーバピグ
� 2D2D2D2Dアバターサービスアバターサービスアバターサービスアバターサービス�着着着着せせせせ替替替替ええええ
�ペットペットペットペット
�ゲームゲームゲームゲーム((((釣釣釣釣りりりり、、、、カジノカジノカジノカジノなどなどなどなど))))
�動画動画動画動画
8888
アメーバピグって?アメーバピグって?
� アメーバピグアメーバピグアメーバピグアメーバピグ
� 2009/02/192009/02/192009/02/192009/02/19オープンオープンオープンオープン
�会員数会員数会員数会員数600600600600万人万人万人万人((((2011/022011/022011/022011/02現在現在現在現在))))
9999
アメーバピグのアーキテクチャ:全体構成アメーバピグのアーキテクチャ:全体構成
� 通常通常通常通常ののののWebWebWebWebサービスサービスサービスサービスとはとはとはとは大大大大きくきくきくきく異異異異なっていますなっていますなっていますなっています
�通常通常通常通常ののののWebWebWebWebアプリケーションアプリケーションアプリケーションアプリケーション�Web AP DBWeb AP DBWeb AP DBWeb AP DBのののの3333層構造層構造層構造層構造
�アメーバピグアメーバピグアメーバピグアメーバピグ�Adobe FlashAdobe FlashAdobe FlashAdobe Flashをををを使用使用使用使用したしたしたしたリアルタイムリアルタイムリアルタイムリアルタイム処理処理処理処理
�FlashFlashFlashFlashからからからから直接直接直接直接TCPTCPTCPTCP通信通信通信通信をををを行行行行うううう事事事事によってによってによってによって実現実現実現実現していますしていますしていますしています
10101010
アメーバピグのアーキテクチャ:全体構成アメーバピグのアーキテクチャ:全体構成
Web+APWeb+APWeb+APWeb+APサーバサーバサーバサーバ SocketSocketSocketSocketサーバサーバサーバサーバ StorageStorageStorageStorageサーバサーバサーバサーバ
DBDBDBDBサーバサーバサーバサーバ
KVSKVSKVSKVSサーバサーバサーバサーバ
HTTPHTTPHTTPHTTP
独自独自独自独自プロトコルプロトコルプロトコルプロトコル
SocketSocketSocketSocketサーバサーバサーバサーバ
ユーザユーザユーザユーザ((((ブラウザブラウザブラウザブラウザ))))
FrontEndFrontEndFrontEndFrontEndBackEndBackEndBackEndBackEnd
FlashFlashFlashFlashデータデータデータデータリクエストリクエストリクエストリクエスト////取得取得取得取得
・・・・ユーザユーザユーザユーザ情報情報情報情報・・・・チャットデータチャットデータチャットデータチャットデータ・・・・ゲームデータゲームデータゲームデータゲームデータリクエストリクエストリクエストリクエスト////取得取得取得取得
必要必要必要必要ななななデータデータデータデータのののの取得取得取得取得
ユーザユーザユーザユーザののののFlashFlashFlashFlashデータデータデータデータのののの
保存保存保存保存などなどなどなど
ユーザユーザユーザユーザ////エリアエリアエリアエリア等等等等のののの状態状態状態状態デーデーデーデー
タタタタ
ユーザユーザユーザユーザ////エリアエリアエリアエリア等等等等のののの状態状態状態状態デーデーデーデータタタタ((((現在現在現在現在はははは無無無無))))
11111111
アメーバピグのアーキテクチャ:全体構成アメーバピグのアーキテクチャ:全体構成
Web+APWeb+APWeb+APWeb+APサーバサーバサーバサーバ SocketSocketSocketSocketサーバサーバサーバサーバ StorageStorageStorageStorageサーバサーバサーバサーバ
DBDBDBDBサーバサーバサーバサーバ
KVSKVSKVSKVSサーバサーバサーバサーバ
HTTPHTTPHTTPHTTP
独自独自独自独自プロトコルプロトコルプロトコルプロトコル
SocketSocketSocketSocketサーバサーバサーバサーバ
ユーザユーザユーザユーザ((((ブラウザブラウザブラウザブラウザ))))
FrontEndFrontEndFrontEndFrontEndBackEndBackEndBackEndBackEnd
FlashFlashFlashFlashデータデータデータデータリクエストリクエストリクエストリクエスト////取得取得取得取得
・・・・ユーザユーザユーザユーザ情報情報情報情報・・・・チャットデータチャットデータチャットデータチャットデータ・・・・ゲームデータゲームデータゲームデータゲームデータリクエストリクエストリクエストリクエスト////取得取得取得取得
必要必要必要必要ななななデータデータデータデータのののの取得取得取得取得
ユーザユーザユーザユーザののののFlashFlashFlashFlashデータデータデータデータのののの
保存保存保存保存などなどなどなど
ユーザユーザユーザユーザ////エリアエリアエリアエリア等等等等のののの状態状態状態状態デーデーデーデー
タタタタ
ユーザユーザユーザユーザ////エリアエリアエリアエリア等等等等のののの状態状態状態状態デーデーデーデータタタタ((((現在現在現在現在はははは無無無無))))
このあたりの話をしていきます
12121212
アメーバピグのデータストアアメーバピグのデータストア
� 運用運用運用運用するうちにするうちにするうちにするうちに一番大一番大一番大一番大きくきくきくきく変変変変わったわったわったわった部分部分部分部分
� サービスサービスサービスサービス当初当初当初当初はははは自作自作自作自作KVSKVSKVSKVSをををを使用使用使用使用////運用運用運用運用
� 現在現在現在現在ははははRDBMS(MySQLRDBMS(MySQLRDBMS(MySQLRDBMS(MySQL))))のみでのみでのみでのみで運用運用運用運用
�前面前面前面前面ににににキャッシュキャッシュキャッシュキャッシュありありありあり
13131313
アメーバピグのデータストア:アメーバピグのデータストア:KVSKVS構成構成
Web+APWeb+APWeb+APWeb+APサーバサーバサーバサーバ
DBDBDBDBサーバサーバサーバサーバ
KVSKVSKVSKVSサーバサーバサーバサーバ
更新更新更新更新
参照参照参照参照
SocketSocketSocketSocketサーバサーバサーバサーバ
DBDBDBDBへのへのへのへの更新更新更新更新確認後確認後確認後確認後ににににKVSKVSKVSKVS
更新更新更新更新
オンメモリオンメモリオンメモリオンメモリ処処処処理理理理
14141414
アメーバピグのデータストア:アメーバピグのデータストア:RDBMSRDBMS構成構成
DBDBDBDBサーバサーバサーバサーバ
KVSKVSKVSKVSサーバサーバサーバサーバ
更新更新更新更新
参照参照参照参照Web+APWeb+APWeb+APWeb+APサーバサーバサーバサーバ
SocketSocketSocketSocketサーバサーバサーバサーバ
更新更新更新更新、、、、参照共参照共参照共参照共ににににDBDBDBDBサーバサーバサーバサーバででででのののの処理処理処理処理にににに変更変更変更変更
FusionIOFusionIOFusionIOFusionIO搭載搭載搭載搭載したしたしたしたサーバサーバサーバサーバ
KVSKVSKVSKVSサーバサーバサーバサーバはははは一時撤廃一時撤廃一時撤廃一時撤廃
15151515
データストアのプラクティスデータストアのプラクティス
� バックエンドバックエンドバックエンドバックエンドにににに依存依存依存依存しないしないしないしないモデルモデルモデルモデル
� 正確正確正確正確なななな負荷負荷負荷負荷テストテストテストテスト!!!!差分差分差分差分テストテストテストテスト!!!!
� プロダクトプロダクトプロダクトプロダクトのののの選定基準選定基準選定基準選定基準
16161616
バックエンドに依存しないモデルバックエンドに依存しないモデル
� サービスサービスサービスサービスのののの開始開始開始開始ははははスモールスタートスモールスタートスモールスタートスモールスタート
�最初最初最初最初はははは流行流行流行流行るかるかるかるか分分分分からないからないからないからない
�将来的将来的将来的将来的なななな事事事事をををを考考考考えるとえるとえるとえるとスケールアウトスケールアウトスケールアウトスケールアウトのののの仕組仕組仕組仕組みはみはみはみは欲欲欲欲しいしいしいしい�とととと、、、、思思思思ってってってって作作作作ってもってもってもっても負荷負荷負荷負荷がいきなりがいきなりがいきなりがいきなり10101010倍倍倍倍になってもになってもになってもになっても上手上手上手上手くくくく動動動動くかはわくかはわくかはわくかはわ
からないからないからないからない!!!!
�同同同同じじじじ物物物物をををを使使使使っていくっていくっていくっていく訳訳訳訳にはにはにはには行行行行かないこともあるかないこともあるかないこともあるかないこともある
17171717
バックエンドに依存しないモデルバックエンドに依存しないモデル
� アメーバピグアメーバピグアメーバピグアメーバピグのののの場合場合場合場合
�前述前述前述前述したしたしたした自作自作自作自作KVSKVSKVSKVS「「「「NDINDINDINDI」」」」
�オープンオープンオープンオープン当初当初当初当初((((2009/022009/022009/022009/02))))はははは機能面機能面機能面機能面でででで大大大大きなきなきなきなメリットメリットメリットメリットがあったがあったがあったがあった�スケールアウトスケールアウトスケールアウトスケールアウトのののの仕組仕組仕組仕組みみみみ((((AutoBalancingAutoBalancingAutoBalancingAutoBalancing))))
�キーキーキーキーののののソートソートソートソートがががが保証保証保証保証されるされるされるされる====KVSKVSKVSKVSでありながらでありながらでありながらでありながらレンジレンジレンジレンジ取得取得取得取得がががが可能可能可能可能
�MySQLMySQLMySQLMySQL側側側側にににに保証保証保証保証されたされたされたされたデータデータデータデータがががが存在存在存在存在((((MySQLMySQLMySQLMySQLからのからのからのからのデータデータデータデータのののの再構再構再構再構築機能築機能築機能築機能))))これによるこれによるこれによるこれによる運用側運用側運用側運用側のののの安心安心安心安心
� 2010/072010/072010/072010/07にににに入入入入りりりりデータデータデータデータ増大増大増大増大によるによるによるによるDBDBDBDB---->KVS>KVS>KVS>KVS再構築時間再構築時間再構築時間再構築時間もももも長長長長期化期化期化期化�遅遅遅遅いいいい時時時時にはにはにはには数時間数時間数時間数時間
やめましょうやめましょうやめましょうやめましょう!!!!
18181818
バックエンドに依存しないモデルバックエンドに依存しないモデル
� IndexPersisterIndexPersisterIndexPersisterIndexPersister
�アメーバピグアメーバピグアメーバピグアメーバピグののののデータデータデータデータ取得部分取得部分取得部分取得部分のののの仕組仕組仕組仕組みみみみ
�データストアデータストアデータストアデータストア部分部分部分部分がががが抽象化抽象化抽象化抽象化されているためされているためされているためされているため労力労力労力労力をかけずにをかけずにをかけずにをかけずに切替切替切替切替がががが可能可能可能可能((((Get,Put,RengeGet,Put,RengeGet,Put,RengeGet,Put,Renge取得取得取得取得などもなどもなどもなども変変変変わらずわらずわらずわらず行行行行えるえるえるえる))))
�実際実際実際実際にににに2222ヶヶヶヶ月程度月程度月程度月程度でででで、、、、分散分散分散分散KVSKVSKVSKVSをををを全全全全ててててMySQLMySQLMySQLMySQLのみののみののみののみのアクセアクセアクセアクセススススへへへへ置置置置きききき換換換換えるえるえるえる事事事事ができたができたができたができた
19191919
IndexPersisterIndexPersisterIndexPersisterIndexPersister
アメーバピグのデータストア:アメーバピグのデータストア: IndexPersisterIndexPersister
Web+APWeb+APWeb+APWeb+APサーバサーバサーバサーバ
MySQLMySQLMySQLMySQL
更新更新更新更新
参照参照参照参照
SocketSocketSocketSocketサーバサーバサーバサーバ
NDINDINDINDI
mongoDBmongoDBmongoDBmongoDB
このこのこのこの部分部分部分部分ははははアクセアクセアクセアクセスススス側側側側からはからはからはからは意識意識意識意識しししし
ていないていないていないていない
データストアデータストアデータストアデータストア部分部分部分部分のののの選択選択選択選択はははは自由自由自由自由
20202020
バックエンドに依存しないモデルバックエンドに依存しないモデル
� いざといざといざといざと言言言言うときにすぐにうときにすぐにうときにすぐにうときにすぐに他他他他ののののプロダクトプロダクトプロダクトプロダクトにににに移行移行移行移行できるよできるよできるよできるようにしておくうにしておくうにしておくうにしておく
でもそんなこといってもでもそんなこといってもでもそんなこといってもでもそんなこといっても怖怖怖怖いじゃいじゃいじゃいじゃんんんん
21212121
正確な負荷テスト!差分テスト!正確な負荷テスト!差分テスト!
� テストデータテストデータテストデータテストデータでいくらやってもでいくらやってもでいくらやってもでいくらやっても不安不安不安不安はぬぐえないはぬぐえないはぬぐえないはぬぐえない、、、、、、、、、、、、
�正確正確正確正確なななな負荷負荷負荷負荷テストテストテストテストがががが選定選定選定選定のののの後押後押後押後押しをするしをするしをするしをする
� ピグピグピグピグのののの負荷負荷負荷負荷テストテストテストテスト用用用用フレームワークフレームワークフレームワークフレームワークをををを作成作成作成作成
�実実実実サーバサーバサーバサーバででででデータデータデータデータ操作操作操作操作ののののログログログログをををを取得取得取得取得
�本番本番本番本番にににに限限限限りなくりなくりなくりなく近近近近いいいい環境環境環境環境をををを作成作成作成作成ししししログログログログをををを完全完全完全完全トレーストレーストレーストレース実行実行実行実行
22222222
アメーバピグのデータストア:アメーバピグのデータストア: ログ取得ログ取得
テストテストテストテスト環境環境環境環境
SocketSocketSocketSocket
更新更新更新更新////参照参照参照参照SocketSocketSocketSocketサーバサーバサーバサーバ
本番環境本番環境本番環境本番環境
操作操作操作操作ログログログログをををを取取取取得得得得
操作操作操作操作ログログログログをををを元元元元にににに負荷負荷負荷負荷テストテストテストテスト
をををを実行実行実行実行
23232323
正確な負荷テスト!差分テスト!正確な負荷テスト!差分テスト!
� 置換前置換前置換前置換前にはにはにはには本番本番本番本番でのでのでのでの差分差分差分差分テストテストテストテストをををを実施実施実施実施
� KVS & RDBMSKVS & RDBMSKVS & RDBMSKVS & RDBMSのののの両者両者両者両者にににに書書書書きききき込込込込みをみをみをみを行行行行いいいい差分差分差分差分ををををチェックチェックチェックチェック�確認確認確認確認<=><=><=><=>修正修正修正修正ののののフェイズフェイズフェイズフェイズをををを2222週間以上毎日繰週間以上毎日繰週間以上毎日繰週間以上毎日繰りりりり返返返返しししし
�チェックチェックチェックチェック方法方法方法方法もももも複数実施複数実施複数実施複数実施しましたしましたしましたしました�書書書書きききき込込込込みみみみ時時時時ののののデータチェックデータチェックデータチェックデータチェック((((両者両者両者両者にににに書書書書きききき込込込込んでいるんでいるんでいるんでいるデータデータデータデータがががが同同同同じじじじ
かどうかかどうかかどうかかどうか))))
�書書書書きききき込込込込みみみみ後後後後ののののデータチェックデータチェックデータチェックデータチェック((((新旧新旧新旧新旧DBDBDBDBののののデータデータデータデータ比較比較比較比較))))
�読読読読みみみみ込込込込みみみみ時時時時ののののデータチェックデータチェックデータチェックデータチェック((((負荷考慮負荷考慮負荷考慮負荷考慮してしてしてしてサンプルサンプルサンプルサンプル抽出抽出抽出抽出1/10001/10001/10001/1000))))
ここまでやってここまでやってここまでやってここまでやって安心安心安心安心できましたできましたできましたできました
24242424
アメーバピグのデータストア:差分テストアメーバピグのデータストア:差分テスト
DBDBDBDBサーバサーバサーバサーバ
KVSKVSKVSKVSサーバサーバサーバサーバ
更新更新更新更新
参照参照参照参照
SocketSocketSocketSocketサーバサーバサーバサーバ
DBDBDBDBサーバサーバサーバサーバ
KVSKVSKVSKVSサーバサーバサーバサーバ
両者両者両者両者のののの取得取得取得取得データデータデータデータがががが正正正正しいかしいかしいかしいかチェックチェックチェックチェック((((動的動的動的動的チェックチェックチェックチェック::::1/10001/10001/10001/1000ランダムランダムランダムランダム))))
両者両者両者両者ののののデータデータデータデータがががが正正正正しいかのしいかのしいかのしいかのチェックチェックチェックチェック((((静的静的静的静的チェックチェックチェックチェック))))
両者両者両者両者ののののデータデータデータデータがががが正正正正しいかのしいかのしいかのしいかのチェックチェックチェックチェック((((動的動的動的動的チェックチェックチェックチェック))))
25252525
プロダクトの選定基準プロダクトの選定基準
� プロダクトプロダクトプロダクトプロダクトのののの選定基準選定基準選定基準選定基準
�今回今回今回今回ははははMySQL+FusionIOMySQL+FusionIOMySQL+FusionIOMySQL+FusionIOというというというという構成構成構成構成をとっていますをとっていますをとっていますをとっています
�分散分散分散分散KVSKVSKVSKVSでやっていたでやっていたでやっていたでやっていた頃頃頃頃にににに比比比比べるとべるとべるとべるとコストコストコストコストとしてはとしてはとしてはとしては掛掛掛掛かってかってかってかっていますいますいますいます
�今回今回今回今回でもでもでもでも、、、、CassandraCassandraCassandraCassandra等等等等のののの分散分散分散分散KVSKVSKVSKVSをををを選択選択選択選択するするするする可能性可能性可能性可能性ももももあったはずですがあったはずですがあったはずですがあったはずですが、、、、選選選選んでいませんんでいませんんでいませんんでいません�バックエンドバックエンドバックエンドバックエンドはははは何何何何でもいいんじゃでもいいんじゃでもいいんじゃでもいいんじゃねねねねーーーーのかのかのかのかフフフブ゙゙゙ーフーフーフーブ゙゙゙ーーーー
決決決決めてはめてはめてはめては実現性実現性実現性実現性とととと理想形理想形理想形理想形ですですですです
26262626
プロダクトの選定基準プロダクトの選定基準
� 事業事業事業事業としてとしてとしてとして、、、、サービスサービスサービスサービス視点視点視点視点をををを重視重視重視重視するするするする
�理想的理想的理想的理想的ななななプロダクトプロダクトプロダクトプロダクトかどうかかどうかかどうかかどうか
�実現性実現性実現性実現性、、、、実現工数実現工数実現工数実現工数がががが高高高高いかどうかいかどうかいかどうかいかどうか
27272727
プロダクトの選定基準プロダクトの選定基準
� プロダクトプロダクトプロダクトプロダクトのののの選定基準選定基準選定基準選定基準
問題外問題外問題外問題外△△△△理想形理想形理想形理想形::::遠遠遠遠
××××○○○○理想形理想形理想形理想形::::近近近近
実現性実現性実現性実現性::::低低低低実現性実現性実現性実現性::::高高高高
例例例例ええええ泥臭泥臭泥臭泥臭いいいい方法方法方法方法でもそれがでもそれがでもそれがでもそれが解決解決解決解決にににに一番近一番近一番近一番近いのであればいのであればいのであればいのであれば
それをそれをそれをそれを選択選択選択選択するするするする事事事事がががが事業事業事業事業へのへのへのへの貢献貢献貢献貢献
28282828
プロダクトの選定基準プロダクトの選定基準
理想理想理想理想とのとのとのとの乖離乖離乖離乖離
理想理想理想理想とのとのとのとの乖離乖離乖離乖離
事業事業事業事業としてとしてとしてとして必要必要必要必要なななな仕様仕様仕様仕様ののののラインラインラインライン
ソリューションソリューションソリューションソリューションAAAA ソリューションソリューションソリューションソリューションBBBB
実現実現実現実現までのまでのまでのまでの工数工数工数工数
実現実現実現実現までのまでのまでのまでの工数工数工数工数
この場合ソリューションBの方が事業貢献できている
29292929
プロダクトの選定基準プロダクトの選定基準
� データストアデータストアデータストアデータストアののののプロダクトプロダクトプロダクトプロダクト選定基準選定基準選定基準選定基準
�今今今今のののの形形形形ははははデータストアデータストアデータストアデータストアとしてのとしてのとしてのとしての理想形理想形理想形理想形とはとはとはとは思思思思っていないっていないっていないっていない
�MySQLMySQLMySQLMySQLというというというというプロダクトプロダクトプロダクトプロダクトはははは他他他他とととと比比比比べてべてべてべて格段格段格段格段にににに安定安定安定安定していたしていたしていたしていた
�適材適所適材適所適材適所適材適所のののの考考考考ええええ方方方方�安心安心安心安心できないできないできないできないプロダクトプロダクトプロダクトプロダクトはははは部分的部分的部分的部分的からからからから適用適用適用適用するするするする
� FusionIOFusionIOFusionIOFusionIOのののの選定基準選定基準選定基準選定基準
�使使使使わなくてもわなくてもわなくてもわなくても出来出来出来出来たたたた
�ただただただただ使使使使わなければわなければわなければわなければサーバサーバサーバサーバ台数台数台数台数がががが膨膨膨膨れれれれ上上上上がっていたがっていたがっていたがっていた�運用運用運用運用コストコストコストコスト改善改善改善改善はははは見見見見えないけどえないけどえないけどえないけど重要重要重要重要
�実際実際実際実際ににににテストテストテストテストしてのしてのしてのしての信頼性信頼性信頼性信頼性のののの高高高高ささささ
30303030
まとめまとめ
� 柔軟柔軟柔軟柔軟ななななプロダクトプロダクトプロダクトプロダクトにににに対応対応対応対応するためのするためのするためのするための仕組仕組仕組仕組みをみをみをみを用意用意用意用意すすすすることでることでることでることで事業事業事業事業、、、、システムシステムシステムシステムのののの未来未来未来未来がががが開開開開けるけるけるける
� 最後最後最後最後までまでまでまで確認確認確認確認したそのもうしたそのもうしたそのもうしたそのもう一歩先一歩先一歩先一歩先をををを確認確認確認確認するするするする事事事事がががが安安安安定定定定したしたしたしたシステムシステムシステムシステム改善改善改善改善にににに必要必要必要必要
� 事業貢献事業貢献事業貢献事業貢献できるできるできるできる中中中中でのでのでのでの一番理想的一番理想的一番理想的一番理想的ななななソリューションソリューションソリューションソリューションのののの選択選択選択選択をををを行行行行うううう
31313131
この後はこの後は
� 弊社根本弊社根本弊社根本弊社根本へへへへ
� アメーバアメーバアメーバアメーバののののストレージストレージストレージストレージにににに関関関関するするするするプラクティスプラクティスプラクティスプラクティスをををを語語語語ってもってもってもってもらいますらいますらいますらいます
さあどさあどさあどさあどーーーーぞぞぞぞ!!!!
Ameba Ameba PiggPigg Best PracticeBest Practice~画像ストレージ構築・運用編~~画像ストレージ構築・運用編~
株式会社株式会社 サイバーエージェントサイバーエージェントアメーバ事業本部プラットフォームアメーバ事業本部プラットフォームDivDiv
システムディベロップメントグループシステムディベロップメントグループ根本英明根本英明
38383838
� 2008年10月リリース� 当初は鬼の不安定さ!!� 障害件数多数� データロストもしましたm(__)m� 過去最も夜中に起こされた� 過去最もDC対応をしたシステム
画像画像ストレージストレージシステム紹介システム紹介
40404040
�なぜリリースしたか�当時のストレージ容量 >70%だった
�HW選定~検証まで2カ月しかとれず・・・
�可能な限りの検証を実施�ご迷惑をおかけして大変申し訳ありません
画像ストレージシステム紹介画像ストレージシステム紹介
44444444
どのくらい捌いてますか?どのくらい捌いてますか?
�TrafficTrafficTrafficTraffic
�???????????? GbpsGbpsGbpsGbps
�投稿容量投稿容量投稿容量投稿容量
�約約約約???????????? GB/dayGB/dayGB/dayGB/day
�アクセスアクセスアクセスアクセス数数数数
�約約約約????????????億億億億/day/day/day/day((((ユーザユーザユーザユーザ画像画像画像画像))))
45454545
どのくらい捌いてますか?どのくらい捌いてますか?
�TrafficTrafficTrafficTraffic
�3 3 3 3 GbpsGbpsGbpsGbps弱弱弱弱
�投稿容量投稿容量投稿容量投稿容量
�約約約約120 GB/day120 GB/day120 GB/day120 GB/day
�アクセスアクセスアクセスアクセス数数数数
�約約約約3333億億億億~~~~4444億億億億/day/day/day/day((((ユーザユーザユーザユーザ画像画像画像画像))))
46464646
Total user image uploaded per day
0
20
40
60
80
100
120
140
2008/9/1
2008/10/1
2008/11/1
2008/12/1
2009/1/1
2009/2/1
2009/3/1
2009/4/1
2009/5/1
2009/6/1
2009/7/1
2009/8/1
2009/9/1
2009/10/1
2009/11/1
2009/12/1
2010/1/1
2010/2/1
2010/3/1
2010/4/1
2010/5/1
2010/6/1
2010/7/1
2010/8/1
2010/9/1
2010/10/1
2010/11/1
2010/12/1
2011/1/1
2011/2/1
2008/10 2009/3
Siz
e [
GB
]
2009/12
2011/1
投稿容量の成長投稿容量の成長
47474747
�コンポーネントコンポーネントコンポーネントコンポーネントをををを列挙列挙列挙列挙するするするする�怪怪怪怪しいしいしいしい部品部品部品部品はははは交換交換交換交換するするするする!!!!�思思思思いいいい切切切切るるるる!!!!!!!!�複数対策同時進行複数対策同時進行複数対策同時進行複数対策同時進行�データデータデータデータのののの流流流流れをれをれをれを考考考考えるえるえるえる�物物物物をよくをよくをよくをよく見見見見るるるる!!!!!!!!!!!!
ストレージ構築の実践ストレージ構築の実践PracticePractice
49494949
ストレージ構成ストレージ構成
�Server�RAID Controller�Mini-SAS cable�Enclosure�HDD(SATA)�1TB x 8(RAID6)
この構成の至るところ(全部)
に不安定要因が・・・
69696969
苦労した点苦労した点
�安定化するまでのみちのり�沢山対策(効果なしも含め)• RAIDカード交換• FW/Driver update• Enclosure交換• Cable交換
�動作確認、難しいんです
70707070
苦労した点苦労した点
�安定化するまでのみちのり�沢山対策(効果なしも含め)�RAIDカード交換�FW/Driver update�Enclosure交換�Cable交換
�動作確認、難しいんです
複数対策同時進行
71717171
�コンポーネントコンポーネントコンポーネントコンポーネントをををを列挙列挙列挙列挙するするするする�怪怪怪怪しいしいしいしい部品部品部品部品はははは交換交換交換交換するするするする!!!!�思思思思いいいい切切切切るるるる!!!!!!!!�複数対策同時進行複数対策同時進行複数対策同時進行複数対策同時進行�データデータデータデータのののの流流流流れをれをれをれを考考考考えるえるえるえる�物物物物をよくをよくをよくをよく見見見見るるるる!!!!!!!!!!!!
ストレージ構築の実践ストレージ構築の実践PracticePractice
73737373
エンジニア募集中!エンジニア募集中!
� スマートフォンアプリエンジニアスマートフォンアプリエンジニアスマートフォンアプリエンジニアスマートフォンアプリエンジニア
� システムエンジニアシステムエンジニアシステムエンジニアシステムエンジニア
((((AmebaAmebaAmebaAmeba、、、、AmebaPiggAmebaPiggAmebaPiggAmebaPigg、、、、モバイルゲームモバイルゲームモバイルゲームモバイルゲーム))))
� インフラエンジニアインフラエンジニアインフラエンジニアインフラエンジニア((((ネットワークネットワークネットワークネットワーク、、、、プラットフォームプラットフォームプラットフォームプラットフォーム))))
� データベースエンジニアデータベースエンジニアデータベースエンジニアデータベースエンジニア
� R&DR&DR&DR&Dエンジニアエンジニアエンジニアエンジニア
� サーチエンジンディベロッパーサーチエンジンディベロッパーサーチエンジンディベロッパーサーチエンジンディベロッパー
� 社内社内社内社内システムエンジニアシステムエンジニアシステムエンジニアシステムエンジニア
募集要項詳細募集要項詳細募集要項詳細募集要項詳細はははは弊社弊社弊社弊社ののののHPHPHPHPをごをごをごをご確認確認確認確認くださいくださいくださいください。。。。
https://rechttps://rechttps://rechttps://rec----log.jp/site/jobLst.aspx?company_id=5776log.jp/site/jobLst.aspx?company_id=5776log.jp/site/jobLst.aspx?company_id=5776log.jp/site/jobLst.aspx?company_id=5776
※※※※上記以外上記以外上記以外上記以外のののの職種職種職種職種もももも募集募集募集募集しておりますしておりますしておりますしております!!!!