18 a-6 ameba pigg backend practice 20110217

akuwano 3,488 views 75 slides Feb 18, 2011
Slide 1
Slide 1 of 75
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45
Slide 46
46
Slide 47
47
Slide 48
48
Slide 49
49
Slide 50
50
Slide 51
51
Slide 52
52
Slide 53
53
Slide 54
54
Slide 55
55
Slide 56
56
Slide 57
57
Slide 58
58
Slide 59
59
Slide 60
60
Slide 61
61
Slide 62
62
Slide 63
63
Slide 64
64
Slide 65
65
Slide 66
66
Slide 67
67
Slide 68
68
Slide 69
69
Slide 70
70
Slide 71
71
Slide 72
72
Slide 73
73
Slide 74
74
Slide 75
75

About This Presentation

No description available for this slideshow.


Slide Content

Ameba Ameba Ameba Ameba Ameba Ameba Ameba Ameba
Pigg PiggPigg PiggPigg PiggPigg Pigg
Backend Practice Backend Practice Backend Practice Backend Practice Backend Practice Backend Practice Backend Practice Backend Practice
株式会社 株式会社株式会社 株式会社サイバーエージェント サイバーエージェント サイバーエージェント サイバーエージェント アメーバ アメーバアメーバ アメーバ事業本部 事業本部事業本部 事業本部プラットフォームディビジョン プラットフォームディビジョン プラットフォームディビジョン プラットフォームディビジョン
システムディベロップメントグループ システムディベロップメントグループ システムディベロップメントグループ システムディベロップメントグループ
CA Developers Connect CA Developers Connect CA Developers Connect CA Developers Connect
桑野桑野桑野桑野章弘章弘章弘章弘

2222

桑野章弘 桑野章弘桑野章弘 桑野章弘

サイバーエージェント サイバーエージェント サイバーエージェント サイバーエージェント

Ameba Ameba Ameba Ameba をををを運営運営運営運営しています しています しています しています。。。。
-
Blog BlogBlog Blogをををを中心中心中心中心としてとしてとしてとして様様様様々々々々ななななサービスサービスサービス サービスがありますがあります があります があります。。。。

アメーバピグ アメーバピグ アメーバピグ アメーバピグのののの運用運用運用運用////構築構築構築構築をををを担当担当担当担当

Twitter Twitter Twitter Twitter

http:// http:// http:// http://twitter.com/kuwa_tw twitter.com/kuwa_tw twitter.com/kuwa_tw twitter.com/kuwa_tw

Blog BlogBlog Blog

http:// http:// http:// http://d.hatena.ne.jp/akuwano d.hatena.ne.jp/akuwano d.hatena.ne.jp/akuwano d.hatena.ne.jp/akuwano////

著書著書著書著書////活動活動活動活動

「「「「MySQL MySQL MySQL MySQLによるによるによるによるタフタフタフタフななななサイトサイトサイトサイトのののの作作作作りりりり方方方方」」」」

勉強会勉強会勉強会勉強会((((hbstudy hbstudy hbstudy hbstudy, , , , qpstudy qpstudy qpstudy qpstudyほかほかほかほか))))などでのなどでのなどでの などでの発表発表発表発表などなどなど など
自己紹介自己紹介

3333
自己紹介自己紹介

このこのこのこの人人人人がががが来来来来るはずだったんですが るはずだったんですが るはずだったんですが るはずだったんですが。。。。

4444
Ameba Ameba

5555
アジェンダ アジェンダ

アメーバピグ アメーバピグ アメーバピグ アメーバピグってってって って????

アメーバピグ アメーバピグ アメーバピグ アメーバピグののののアーキテクチャ アーキテクチャ アーキテクチャ アーキテクチャ

全体構成 全体構成全体構成 全体構成

アメーバピグ アメーバピグ アメーバピグ アメーバピグののののデータストア データストア データストア データストア

データストア データストア データストア データストアのののの構成構成構成構成

データストア データストア データストア データストアののののプラクティス プラクティス プラクティス プラクティス

6666
アメーバピグって? アメーバピグって?

アメーバピグ アメーバピグ アメーバピグ アメーバピグ

2D2D2D 2Dアバターサービス アバターサービス アバターサービス アバターサービス

着着着着せせせせ替替替替ええええ

ペットペットペットペット

ゲームゲームゲームゲーム((((釣釣釣釣りりりり、、、、カジノカジノカジノカジノなどなどなど など))))

動画動画動画動画

7777
アメーバピグって? アメーバピグって?

8888
アメーバピグって? アメーバピグって?

アメーバピグ アメーバピグ アメーバピグ アメーバピグ

2009/02/19 2009/02/19 2009/02/19 2009/02/19オープン オープンオープン オープン

会員数会員数会員数会員数600600600 600万人万人万人万人((((2011/02 2011/02 2011/02 2011/02現在現在現在現在))))

9999
アメーバピグのアーキテクチャ:全体構成 アメーバピグのアーキテクチャ:全体構成

通常通常通常通常ののののWebWebWebWebサービスサービスサービス サービスとはとはとはとは大大大大きくきくきく きく異異異異なっています なっています なっています なっています

通常通常通常通常ののののWebWebWebWebアプリケーション アプリケーション アプリケーション アプリケーション

Web AP DB Web AP DB Web AP DB Web AP DBのののの3333層構造層構造層構造層構造

アメーバピグ アメーバピグ アメーバピグ アメーバピグ

Adobe Flash Adobe Flash Adobe Flash Adobe Flashをををを使用使用使用使用したしたした したリアルタイム リアルタイム リアルタイム リアルタイム処理処理処理処理

Flash Flash Flash Flashからからからから直接直接直接直接TCPTCPTCPTCP通信通信通信通信をををを行行行行うううう事事事事によってによってによって によって実現実現実現実現しています しています しています しています

101010 10
アメーバピグのアーキテクチャ:全体構成 アメーバピグのアーキテクチャ:全体構成
Web+AP Web+AP Web+AP Web+APサーバサーバサーバサーバ
Socket Socket Socket Socketサーバサーバサーバサーバ
Storage Storage Storage Storageサーバサーバサーバサーバ
DBDBDB DBサーバサーバサーバサーバ
KVSKVSKVSKVSサーバサーバサーバサーバ
HTTP HTTPHTTP HTTP
独自独自独自独自プロトコル プロトコル プロトコル プロトコル
Socket Socket Socket Socketサーバサーバサーバサーバ
ユーザユーザユーザユーザ
((((ブラウザブラウザブラウザ ブラウザ))))
FrontEnd FrontEnd FrontEnd FrontEnd
BackEnd BackEnd BackEnd BackEnd
Flash Flash Flash Flashデータデータデータデータ
リクエスト リクエスト リクエスト リクエスト////取得取得取得取得
・・・・ユーザユーザユーザユーザ情報情報情報情報
・・・・チャットデータ チャットデータ チャットデータ チャットデータ
・・・・ゲームデータ ゲームデータ ゲームデータ ゲームデータ
リクエスト リクエスト リクエスト リクエスト////取得取得取得取得
必要必要必要必要ななななデータデータデータデータ
のののの取得取得取得取得
ユーザユーザユーザユーザのののの
Flash Flash Flash Flashデータデータデータデータのののの
保存保存保存保存などなどなど など
ユーザユーザユーザユーザ////エリアエリアエリアエリア
等等等等のののの状態状態状態状態デーデーデーデー
タタタタ
ユーザユーザユーザユーザ////エリアエリアエリアエリア
等等等等のののの状態状態状態状態デーデーデー デー
タタタタ((((現在現在現在現在はははは無無無無))))

111111 11
アメーバピグのアーキテクチャ:全体構成 アメーバピグのアーキテクチャ:全体構成
Web+AP Web+AP Web+AP Web+APサーバサーバサーバサーバ
Socket Socket Socket Socketサーバサーバサーバサーバ
Storage Storage Storage Storageサーバサーバサーバサーバ
DBDBDB DBサーバサーバサーバサーバ
KVSKVSKVSKVSサーバサーバサーバサーバ
HTTP HTTPHTTP HTTP
独自独自独自独自プロトコル プロトコル プロトコル プロトコル
Socket Socket Socket Socketサーバサーバサーバサーバ
ユーザユーザユーザユーザ
((((ブラウザブラウザブラウザ ブラウザ))))
FrontEnd FrontEnd FrontEnd FrontEnd
BackEnd BackEnd BackEnd BackEnd
Flash Flash Flash Flashデータデータデータデータ
リクエスト リクエスト リクエスト リクエスト////取得取得取得取得
・・・・ユーザユーザユーザユーザ情報情報情報情報
・・・・チャットデータ チャットデータ チャットデータ チャットデータ
・・・・ゲームデータ ゲームデータ ゲームデータ ゲームデータ
リクエスト リクエスト リクエスト リクエスト////取得取得取得取得
必要必要必要必要ななななデータデータデータデータ
のののの取得取得取得取得
ユーザユーザユーザユーザのののの
Flash Flash Flash Flashデータデータデータデータのののの
保存保存保存保存などなどなど など
ユーザユーザユーザユーザ////エリアエリアエリアエリア
等等等等のののの状態状態状態状態デーデーデーデー
タタタタ
ユーザユーザユーザユーザ////エリアエリアエリアエリア
等等等等のののの状態状態状態状態デーデーデー デー
タタタタ((((現在現在現在現在はははは無無無無))))
このあたり
の話をして
いきます

121212 12
アメーバピグのデータストア アメーバピグのデータストア

運用運用運用運用するうちに するうちに するうちに するうちに一番大一番大一番大一番大きくきくきく きく変変変変わったわったわったわった部分部分部分部分

サービス サービスサービス サービス当初当初当初当初はははは自作自作自作自作KVSKVSKVSKVSをををを使用使用使用使用////運用運用運用運用

現在現在現在現在ははははRDBMS(MySQL RDBMS(MySQL RDBMS(MySQL RDBMS(MySQL))))のみでのみでのみでのみで運用運用運用運用

前面前面前面前面ににににキャッシュ キャッシュ キャッシュ キャッシュありありあり あり

131313 13
アメーバピグのデータストア: アメーバピグのデータストア:
KVSKVS
構成構成
Web+AP Web+AP Web+AP Web+APサーバサーバサーバサーバ
DBDBDBDBサーバサーバサーバサーバ
KVSKVSKVSKVSサーバサーバサーバサーバ
更新更新更新更新 参照参照参照参照
Socket Socket Socket Socketサーバサーバサーバサーバ
DBDBDBDBへのへのへのへの更新更新更新更新
確認後確認後確認後確認後ににににKVSKVSKVSKVS
更新更新更新更新
オンメモリ オンメモリ オンメモリ オンメモリ処処処処
理理理理

141414 14
アメーバピグのデータストア: アメーバピグのデータストア:
RDBMS RDBMS
構成構成
DBDBDB DBサーバサーバサーバサーバ
KVSKVSKVSKVSサーバサーバサーバサーバ
更新更新更新更新 参照参照参照参照
Web+AP Web+AP Web+AP Web+APサーバサーバサーバサーバ
Socket Socket Socket Socketサーバサーバサーバサーバ
更新更新更新更新、、、、参照共参照共参照共参照共
ににににDBDBDBDBサーバサーバサーバサーバでででで
のののの処理処理処理処理にににに変更変更変更変更
FusionIO FusionIO FusionIO FusionIO搭載搭載搭載搭載
したしたした したサーバサーバサーバサーバ
KVSKVSKVSKVSサーバサーバサーバサーバはははは
一時撤廃 一時撤廃一時撤廃 一時撤廃

151515 15
データストアのプラクティス データストアのプラクティス

バックエンド バックエンド バックエンド バックエンドにににに依存依存依存依存しないしないしないしないモデルモデルモデルモデル

正確正確正確正確なななな負荷負荷負荷負荷テストテストテストテスト!!!!差分差分差分差分テストテストテストテスト!!!!

プロダクト プロダクト プロダクト プロダクトのののの選定基準選定基準選定基準 選定基準

161616 16
バックエンドに依存しないモデル バックエンドに依存しないモデル

サービス サービスサービス サービスのののの開始開始開始開始ははははスモールスタート スモールスタート スモールスタート スモールスタート

最初最初最初最初はははは流行流行流行流行るかるかるかるか分分分分からないからないからない からない

将来的将来的将来的将来的なななな事事事事をををを考考考考えるとえるとえるとえるとスケールアウト スケールアウト スケールアウト スケールアウトのののの仕組仕組仕組仕組みはみはみはみは欲欲欲欲しいしいしいしい

とととと、、、、思思思思ってってってって作作作作ってもってもってもっても負荷負荷負荷負荷がいきなり がいきなり がいきなり がいきなり101010 10倍倍倍倍になっても になっても になっても になっても上手上手上手上手くくくく動動動動くかはわくかはわくかはわ くかはわ
からない からないからない からない!!!!

同同同同じじじじ物物物物をををを使使使使っていくっていくっていく っていく訳訳訳訳にはにはにはには行行行行かないこともある かないこともある かないこともある かないこともある

171717 17
バックエンドに依存しないモデル バックエンドに依存しないモデル

アメーバピグ アメーバピグ アメーバピグ アメーバピグのののの場合場合場合場合

前述前述前述前述したしたした した自作自作自作自作KVSKVSKVSKVS「「「「NDINDINDINDI」」」」

オープン オープンオープン オープン当初当初当初当初((((2009/02 2009/02 2009/02 2009/02))))はははは機能面機能面機能面機能面でででで大大大大きなきなきな きなメリットメリットメリット メリットがあったがあったがあった があった

スケールアウト スケールアウト スケールアウト スケールアウトのののの仕組仕組仕組仕組みみみみ((((AutoBalancing AutoBalancing AutoBalancing AutoBalancing))))

キーキーキーキーののののソートソートソートソートがががが保証保証保証保証されるされるされるされる====KVSKVSKVSKVSでありながら でありながら でありながら でありながらレンジレンジレンジレンジ取得取得取得取得がががが可能可能可能可能

MySQL MySQL MySQL MySQL側側側側にににに保証保証保証保証されたされたされたされたデータデータデータデータがががが存在存在存在存在((((MySQL MySQL MySQL MySQLからのからのからのからのデータデータデータデータのののの再構再構再構再構
築機能築機能築機能築機能))))これによる これによる これによる これによる運用側運用側運用側運用側のののの安心安心安心安心

2010/07 2010/07 2010/07 2010/07にににに入入入入りりりりデータデータデータデータ増大増大増大増大によるによるによるによるDBDBDB DB---->KVS >KVS>KVS >KVS再構築時間 再構築時間 再構築時間 再構築時間もももも長長長長
期化期化期化期化

遅遅遅遅いいいい時時時時にはにはにはには数時間数時間数時間数時間
やめましょう やめましょう やめましょう やめましょう!!!!

181818 18
バックエンドに依存しないモデル バックエンドに依存しないモデル

IndexPersister IndexPersister IndexPersister IndexPersister

アメーバピグ アメーバピグ アメーバピグ アメーバピグののののデータデータデータデータ取得部分取得部分取得部分 取得部分のののの仕組仕組仕組仕組みみみみ

データストア データストア データストア データストア部分部分部分部分がががが抽象化抽象化抽象化抽象化されているため されているため されているため されているため労力労力労力労力をかけずに をかけずに をかけずに をかけずに
切替切替切替切替がががが可能可能可能可能((((Get,Put,Renge Get,Put,Renge Get,Put,Renge Get,Put,Renge取得取得取得取得などもなどもなどもなども変変変変わらずわらずわらずわらず行行行行えるえるえるえる))))

実際実際実際実際にににに2222ヶヶヶヶ月程度月程度月程度月程度でででで、、、、分散分散分散分散KVSKVSKVSKVSをををを全全全全ててててMySQL MySQL MySQL MySQLのみののみののみののみのアクセアクセアクセアクセ
ススススへへへへ置置置置きききき換換換換えるえるえる える事事事事ができたができたができた ができた

191919 19
IndexPersister IndexPersister IndexPersister IndexPersister
アメーバピグのデータストア: アメーバピグのデータストア:
IndexPersister IndexPersister
Web+AP Web+AP Web+AP Web+APサーバサーバサーバサーバ
MySQL MySQL MySQL MySQL
更新更新更新更新 参照参照参照参照
Socket Socket Socket Socketサーバサーバサーバサーバ
NDINDINDINDI
mongoDB mongoDB mongoDB mongoDB
このこのこのこの部分部分部分部分ははははアクセアクセアクセアクセ
スススス側側側側からはからはからはからは意識意識意識意識しししし
ていない ていないていない ていない
データストア データストア データストア データストア部分部分部分部分
のののの選択選択選択選択はははは自由自由自由自由

202020 20
バックエンドに依存しないモデル バックエンドに依存しないモデル

いざといざといざといざと言言言言うときにすぐに うときにすぐに うときにすぐに うときにすぐに他他他他ののののプロダクトプロダクト プロダクト プロダクトにににに移行移行移行移行できるよ できるよできるよ できるよ
うにしておく うにしておく うにしておく うにしておく
でもそんなこといっても でもそんなこといっても でもそんなこといっても でもそんなこといっても怖怖怖怖いじゃいじゃいじゃいじゃんんんん

212121 21
正確な負荷テスト!差分テスト! 正確な負荷テスト!差分テスト!

テストデータ テストデータ テストデータ テストデータでいくらやってもでいくらやっても でいくらやっても でいくらやっても不安不安不安不安はぬぐえない はぬぐえない はぬぐえない はぬぐえない、、、、、、、、、、、、

正確正確正確正確なななな負荷負荷負荷負荷テストテストテストテストがががが選定選定選定選定のののの後押後押後押後押しをする しをするしをする しをする

ピグピグピグ ピグのののの負荷負荷負荷負荷テストテストテストテスト用用用用フレームワーク フレームワーク フレームワーク フレームワークをををを作成作成作成作成

実実実実サーバサーバサーバサーバででででデータデータデータデータ操作操作操作操作ののののログログログ ログをををを取得取得取得取得

本番本番本番本番にににに限限限限りなくりなくりなくりなく近近近近いいいい環境環境環境環境をををを作成作成作成作成ししししログログログ ログをををを完全完全完全完全トレース トレーストレース トレース実行実行実行実行

222222 22
アメーバピグのデータストア: アメーバピグのデータストア:
ログ取得ログ取得
テストテストテストテスト環境環境環境環境
Socket Socket Socket Socket
更新更新更新更新////参照参照参照参照
Socket Socket Socket Socketサーバサーバサーバサーバ
本番環境 本番環境本番環境 本番環境
操作操作操作操作ログログログ ログをををを取取取取
得得得得
操作操作操作操作ログログログ ログをををを元元元元
にににに負荷負荷負荷負荷テストテストテストテスト
をををを実行実行実行実行

232323 23
正確な負荷テスト!差分テスト! 正確な負荷テスト!差分テスト!

置換前置換前置換前置換前にはにはにはには本番本番本番本番でのでのでのでの差分差分差分差分テストテストテストテストをををを実施実施実施実施

KVS & RDBMS KVS & RDBMS KVS & RDBMS KVS & RDBMSのののの両者両者両者両者にににに書書書書きききき込込込込みをみをみを みを行行行行いいいい差分差分差分差分ををををチェックチェックチェック チェック

確認確認確認確認<=><=><=> <=>修正修正修正修正ののののフェイズフェイズフェイズ フェイズをををを2222週間以上毎日繰 週間以上毎日繰 週間以上毎日繰 週間以上毎日繰りりりり返返返返しししし

チェック チェックチェック チェック方法方法方法方法もももも複数実施複数実施複数実施 複数実施しました しましたしました しました

書書書書きききき込込込込みみみみ時時時時ののののデータチェック データチェック データチェック データチェック((((両者両者両者両者にににに書書書書きききき込込込込んでいるんでいるんでいる んでいるデータデータデータデータがががが同同同同じじじじ
かどうか かどうかかどうか かどうか))))

書書書書きききき込込込込みみみみ後後後後ののののデータチェック データチェック データチェック データチェック((((新旧新旧新旧新旧DBDBDB DBののののデータデータデータデータ比較比較比較比較))))

読読読読みみみみ込込込込みみみみ時時時時ののののデータチェック データチェック データチェック データチェック((((負荷考慮負荷考慮負荷考慮 負荷考慮してしてして してサンプルサンプルサンプル サンプル抽出抽出抽出抽出1/1000 1/1000 1/1000 1/1000))))
ここまでやって ここまでやって ここまでやって ここまでやって安心安心安心安心できました できました できました できました

242424 24
アメーバピグのデータストア:差分テスト アメーバピグのデータストア:差分テスト
DBDBDBDBサーバサーバサーバサーバ
KVSKVSKVSKVSサーバサーバサーバサーバ
更新更新更新更新 参照参照参照参照
Socket Socket Socket Socketサーバサーバサーバサーバ
DBDBDB DBサーバサーバサーバサーバ
KVSKVSKVSKVSサーバサーバサーバサーバ
両者両者両者両者のののの取得取得取得取得データデータデータデータ
がががが正正正正しいかしいかしいかしいかチェック チェックチェック チェック
((((動的動的動的動的チェック チェックチェック チェック::::
1/1000 1/1000 1/1000 1/1000ランダム ランダムランダム ランダム))))
両者両者両者両者ののののデータデータデータデータがががが正正正正
しいかの しいかのしいかの しいかのチェック チェックチェック チェック
((((静的静的静的静的チェック チェックチェック チェック))))
両者両者両者両者ののののデータデータデータデータがががが正正正正
しいかの しいかのしいかの しいかのチェック チェックチェック チェック
((((動的動的動的動的チェック チェックチェック チェック))))

252525 25
プロダクトの選定基準 プロダクトの選定基準

プロダクト プロダクト プロダクト プロダクトのののの選定基準選定基準選定基準 選定基準

今回今回今回今回ははははMySQL+FusionIO MySQL+FusionIO MySQL+FusionIO MySQL+FusionIOというというというという構成構成構成構成をとっています をとっています をとっています をとっています

分散分散分散分散KVSKVSKVSKVSでやっていた でやっていた でやっていた でやっていた頃頃頃頃にににに比比比比べるとべるとべるとべるとコストコストコストコストとしてはとしてはとしては としては掛掛掛掛かってかってかってかって
いますいますいますいます

今回今回今回今回でもでもでも でも、、、、Cassandra Cassandra Cassandra Cassandra等等等等のののの分散分散分散分散KVSKVSKVSKVSをををを選択選択選択選択するするする する可能性可能性可能性可能性もももも
あったはずですが あったはずですが あったはずですが あったはずですが、、、、選選選選んでいません んでいません んでいません んでいません

バックエンド バックエンド バックエンド バックエンドはははは何何何何でもいいんじゃ でもいいんじゃ でもいいんじゃ でもいいんじゃねねねねーーーーのかのかのかのかフフフブ゙゙゙ーフーフーフ ーブ゙゙゙ーーーー
決決決決めてはめてはめてはめては実現性実現性実現性実現性とととと理想形理想形理想形理想形ですですです です

262626 26
プロダクトの選定基準 プロダクトの選定基準

事業事業事業事業としてとしてとしてとして、、、、サービスサービスサービス サービス視点視点視点視点をををを重視重視重視重視するするする する

理想的理想的理想的理想的ななななプロダクト プロダクト プロダクト プロダクトかどうかかどうかかどうか かどうか

実現性実現性実現性実現性、、、、実現工数実現工数実現工数 実現工数がががが高高高高いかどうか いかどうか いかどうか いかどうか

272727 27
プロダクトの選定基準 プロダクトの選定基準

プロダクト プロダクト プロダクト プロダクトのののの選定基準選定基準選定基準 選定基準
問題外問題外問題外問題外 △△△△
理想形理想形理想形理想形::::遠遠遠遠
×××× ○○○○
理想形理想形理想形理想形::::近近近近
実現性実現性実現性実現性::::低低低低 実現性実現性実現性実現性::::高高高高
例例例例ええええ泥臭泥臭泥臭泥臭いいいい方法方法方法方法でもそれが でもそれが でもそれが でもそれが解決解決解決解決
にににに一番近一番近一番近一番近いのであれば いのであれば いのであれば いのであれば
それをそれをそれをそれを選択選択選択選択するするする する事事事事がががが事業事業事業事業へのへのへのへの貢献貢献貢献貢献

282828 28
プロダクトの選定基準 プロダクトの選定基準
理想理想理想理想とのとのとのとの乖離乖離乖離乖離
理想理想理想理想とのとのとのとの乖離乖離乖離乖離
事業事業事業事業としてとしてとしてとして必要必要必要必要なななな
仕様仕様仕様仕様ののののラインラインラインライン
ソリューション ソリューション ソリューション ソリューションAAAAソリューション ソリューション ソリューション ソリューションBBBB
実現実現実現実現までのまでのまでのまでの工数工数工数工数
実現実現実現実現までのまでのまでのまでの工数工数工数工数
この場合ソ
リューションB
の方が事業貢
献できている

292929 29
プロダクトの選定基準 プロダクトの選定基準

データストア データストア データストア データストアののののプロダクト プロダクト プロダクト プロダクト選定基準選定基準選定基準 選定基準

今今今今のののの形形形形ははははデータストア データストア データストア データストアとしてのとしてのとしての としての理想形理想形理想形理想形とはとはとはとは思思思思っていないっていない っていない っていない

MySQL MySQL MySQL MySQLというというというというプロダクトプロダクト プロダクト プロダクトはははは他他他他とととと比比比比べてべてべて べて格段格段格段格段にににに安定安定安定安定していた していたしていた していた

適材適所 適材適所適材適所 適材適所のののの考考考考ええええ方方方方

安心安心安心安心できない できないできない できないプロダクトプロダクト プロダクト プロダクトはははは部分的部分的部分的部分的からからから から適用適用適用適用するするする する

FusionIO FusionIO FusionIO FusionIOのののの選定基準選定基準選定基準 選定基準

使使使使わなくても わなくても わなくても わなくても出来出来出来出来たたたた

ただただただただ使使使使わなければ わなければ わなければ わなければサーバサーバサーバサーバ台数台数台数台数がががが膨膨膨膨れれれれ上上上上がっていた がっていた がっていた がっていた

運用運用運用運用コストコストコストコスト改善改善改善改善はははは見見見見えないけど えないけど えないけど えないけど重要重要重要重要

実際実際実際実際ににににテストテストテストテストしてのしてのしてのしての信頼性信頼性信頼性信頼性のののの高高高高ささささ

303030 30
まとめまとめ

柔軟柔軟柔軟柔軟ななななプロダクト プロダクト プロダクト プロダクトにににに対応対応対応対応するための するための するための するための仕組仕組仕組仕組みをみをみをみを用意用意用意用意すすすす
ることで ることでることで ることで事業事業事業事業、、、、システムシステムシステム システムのののの未来未来未来未来がががが開開開開けるけるけるける
最後最後最後最後までまでまで まで確認確認確認確認したそのもう したそのもう したそのもう したそのもう一歩先一歩先一歩先一歩先をををを確認確認確認確認するするする する事事事事がががが安安安安
定定定定したしたした したシステムシステムシステム システム改善改善改善改善にににに必要必要必要必要
事業貢献 事業貢献事業貢献 事業貢献できるできるできるできる中中中中でのでのでのでの一番理想的 一番理想的 一番理想的 一番理想的ななななソリューション ソリューション ソリューション ソリューションのののの
選択選択選択選択をををを行行行行うううう

313131 31
この後は この後は

弊社根本 弊社根本弊社根本 弊社根本へへへへ

アメーバ アメーバアメーバ アメーバののののストレージストレージ ストレージ ストレージにににに関関関関するするする するプラクティス プラクティス プラクティス プラクティスをををを語語語語ってもってもってもっても
らいます らいますらいます らいます
さあどさあどさあどさあどーーーーぞぞぞぞ!!!!

Ameba Ameba
PiggPigg
Best Practice Best Practice
~画像ストレージ構築・運用編~ ~画像ストレージ構築・運用編~
株式会社株式会社
サイバーエージェント サイバーエージェント
アメーバ事業本部プラットフォーム アメーバ事業本部プラットフォーム
DivDiv
システムディベロップメントグループ システムディベロップメントグループ
根本英明根本英明

333333 33

根本英明

2008.4入社(中途)

担当システム

画像ストレージシステム

Amebaピグ/ブログ/MBゲーム

HW周りが多少得意自己紹介自己紹介

343434 34
こんなところで使われている
ストレージです・・・
(ピグとの関連は、ちょっと薄いです)
アメーバピグと画像ストレージ アメーバピグと画像ストレージ

353535 35
アメーバピグと画像ストレージ アメーバピグと画像ストレージ

363636 36
メインはブログの
ユーザ画像ストレージです
アメーバピグと画像ストレージ アメーバピグと画像ストレージ

373737 37
アメーバピグと画像ストレージ アメーバピグと画像ストレージ

383838 38

2008年10月リリース

当初は鬼の不安定さ!!

障害件数多数

データロストもしましたm(__)m

過去最も夜中に起こされた

過去最もDC対応をしたシステム
画像画像
ストレージ ストレージ
システム紹介 システム紹介

393939 39
とっても
印象の悪いシステムです

404040 40

なぜリリースしたか
当時のストレージ容量>70%だった

HW選定~検証まで2カ月しかとれず・・・

可能な限りの検証を実施

ご迷惑をおかけして大変申し訳ありま
せん
画像ストレージシステム紹介 画像ストレージシステム紹介

414141 41
が、

424242 42
苦節2年
安定化させることが
できました

434343 43
得られた「Practice」を
紹介します

444444 44
どのくらい捌いてますか? どのくらい捌いてますか?

Traffic Traffic Traffic Traffic
????????????Gbps GbpsGbps Gbps

投稿容量 投稿容量投稿容量 投稿容量
約約約約????????????GB/day GB/day GB/day GB/day

アクセス アクセスアクセス アクセス数数数数
約約約約????????????億億億億/day/day/day /day((((ユーザユーザユーザユーザ画像画像画像画像))))

454545 45
どのくらい捌いてますか? どのくらい捌いてますか?

Traffic Traffic Traffic Traffic
3 3 3 3 Gbps GbpsGbps Gbps弱弱弱弱

投稿容量 投稿容量投稿容量 投稿容量
約約約約120 GB/day 120 GB/day 120 GB/day 120 GB/day

アクセス アクセスアクセス アクセス数数数数
約約約約3333億億億億~~~~4444億億億億/day/day/day /day((((ユーザユーザユーザユーザ画像画像画像画像))))

464646 46
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
Size [GB]
2009/12
2011/1
投稿容量の成長 投稿容量の成長

474747 47

コンポーネント コンポーネント コンポーネント コンポーネントをををを列挙列挙列挙列挙するするする する

怪怪怪怪しいしいしい しい部品部品部品部品はははは交換交換交換交換するするするする!!!!

思思思思いいいい切切切切るるるる!!!!!!!!

複数対策同時進行 複数対策同時進行 複数対策同時進行 複数対策同時進行

データデータデータデータのののの流流流流れをれをれを れを考考考考えるえるえる える

物物物物をよくをよくをよくをよく見見見見るるるる!!!!!!!!!!!!
ストレージ構築の実践 ストレージ構築の実践
Practice Practice

484848 48
ストレージ構成 ストレージ構成

Server

RAID Controller

Mini-SAS cable

Enclosure

HDD(SATA)
1TB x 8(RAID6)

494949 49
ストレージ構成 ストレージ構成

Server

RAID Controller

Mini-SAS cable

Enclosure

HDD(SATA) •
1TB x 8(RAID6)
この構成の至るところ(全部)
に不安定要因が・・・

505050 50
障害内容障害内容

Server –RAID間の通信断 •
からのFS破壊

によるデータロスト

突然HDDを認識しなくなる •
障害。あわわ。

515151 51
改善内容改善内容
安定化まで、、、
サーバ改善

RAIDカード改善

mini-SASケーブル改善

Enclosure改善

HDD改善

525252 52
改善内容改善内容
安定化まで、、、
サーバ改善

RAIDカード改善

mini-SASケーブル改善

Enclosure改善

HDD改善

535353 53
サーバサーバ
改善改善

リリース当初
DELL PE R200を利用
(注)DELL推奨構成での利用ではありません!!!

545454 54
サーバサーバ
改善改善

リリース当初
DELL PE R200を利用
(注)DELL推奨構成での利用ではありません!!!
障害
超超超超
多発

555555 55
全コンポーネントを列挙・調査
サーバ改善 サーバ改善

565656 56
全コンポーネントを列挙・調査
サーバ改善 サーバ改善
RAID Controller
定格温度:55℃

575757 57
全コンポーネントを列挙・調査
サーバ改善 サーバ改善
RAID Controller
定格温度:55℃
動作環境:7X℃

585858 58
DELL R200
温度:7X℃
サーバ改善 サーバ改善

595959 59
DELL R300
温度:5X℃
DELL R200
温度:7X℃
サーバ改善 サーバ改善

606060 60
DELL R300
温度:5X℃
DELL R200
温度:7X℃
サーバ改善 サーバ改善
コンポーネントは列挙する!

616161 61
諸々の対策を打つも、
その後・・・ その後・・・

突然HDDを認識しなくなる
障害。あわわ。
の完全解決に至らず、
最後の対策を・・・

626262 62
HDD全入替
最後は、 最後は、
1台のストレージあたり、
1TB ×8台
が、16セット=144台入替

636363 63
しかも、以前某A社のリコール級
問題で、全台リプレイス後・・・

646464 64
ちょーやりたくない・・・・
と思いつつリプレイス

656565 65
そして・・・・ そして・・・・

666666 66
安定!!!! 安定!!!!
某社製某社製某社製某社製某社製某社製某社製某社製

676767 67
安定!!!! 安定!!!!
某社製某社製某社製某社製某社製某社製某社製某社製
怪しい部品は交換する!
思い切る!!

686868 68
苦節2年弱
安定するストレージを
構築することができた

696969 69
苦労した点 苦労した点

安定化するまでのみちのり •
沢山対策(効果なしも含め) •
RAIDカード交換

FW/Driver update

Enclosure交換

Cable交換

動作確認、難しいんです

707070 70
苦労した点 苦労した点

安定化するまでのみちのり
沢山対策(効果なしも含め)

RAIDカード交換

FW/Driver update

Enclosure交換

Cable交換

動作確認、難しいんです
複数対策同時進行

717171 71

コンポーネント コンポーネント コンポーネント コンポーネントをををを列挙列挙列挙列挙するするする する

怪怪怪怪しいしいしい しい部品部品部品部品はははは交換交換交換交換するするするする!!!!

思思思思いいいい切切切切るるるる!!!!!!!!

複数対策同時進行 複数対策同時進行 複数対策同時進行 複数対策同時進行

データデータデータデータのののの流流流流れをれをれを れを考考考考えるえるえる える

物物物物をよくをよくをよくをよく見見見見るるるる!!!!!!!!!!!!
ストレージ構築の実践 ストレージ構築の実践
Practice Practice

727272 72
おしまい おしまいおしまい おしまい

737373 73
エンジニア募集中! エンジニア募集中!

スマートフォンアプリエンジニア スマートフォンアプリエンジニア スマートフォンアプリエンジニア スマートフォンアプリエンジニア

システムエンジニア システムエンジニア システムエンジニア システムエンジニア
((((Ameba Ameba Ameba Ameba、、、、AmebaPigg AmebaPigg AmebaPigg AmebaPigg、、、、モバイルゲーム モバイルゲーム モバイルゲーム モバイルゲーム))))

インフラエンジニア インフラエンジニア インフラエンジニア インフラエンジニア((((ネットワーク ネットワーク ネットワーク ネットワーク、、、、プラットフォーム プラットフォーム プラットフォーム プラットフォーム))))

データベースエンジニア データベースエンジニア データベースエンジニア データベースエンジニア

R&DR&DR&DR&Dエンジニア エンジニア エンジニア エンジニア

サーチエンジンディベロッパー サーチエンジンディベロッパー サーチエンジンディベロッパー サーチエンジンディベロッパー

社内社内社内社内システムエンジニア システムエンジニア システムエンジニア システムエンジニア
募集要項詳細 募集要項詳細 募集要項詳細 募集要項詳細はははは弊社弊社弊社弊社ののののHPHPHP HPをごをごをご をご確認確認確認確認ください くださいください ください。。。。
https://rec https://rec https://rec https://rec----log.jp/site/jobLst.aspx?company_id=5776 log.jp/site/jobLst.aspx?company_id=5776 log.jp/site/jobLst.aspx?company_id=5776 log.jp/site/jobLst.aspx?company_id=5776 ※※※※上記以外上記以外上記以外 上記以外のののの職種職種職種職種もももも募集募集募集募集しております しております しております しております!!!!

747474 74
Ameba Water Ameba Water
とと
エンジニアの紹介冊子を配布中!! エンジニアの紹介冊子を配布中!!

757575 75
質疑応答 質疑応答質疑応答 質疑応答