SlideShare a Scribd company logo
1 of 32
スケールアウト再考
〜数千億アクセスへの道〜
Supership 山崎大輔(@yamaz)
山崎大輔(@yamaz)
Supership 取締役
(旧Scaleout代表)
Scaleoutはnanapi, Bitcellerと合併して
Supershipになりました。
広告システムと検索システム作ってます。
広告システムについて
システム : インターネット広告システム
アクセス : 月間数千億〜
サーバ台数: 1000台程度
レスポンス : 〜100msec
ユーザ数 : 数億UU〜
上記のシステムを安定運用するための考え方
について話したいと思います。
現在のインターネット
広告配信の仕組み
4
DSP
メディア側広告サーバ(SSP)
DSP DSP ③ビッディング
①広告Request
②オークション
開催
ブラウザ ④広告Result
広告1配信(1imp)ごとにオークションを行う
(参考)弊社採用のソフトウェア群
配信系: nginx, apache, 独自エンジン(C++)
KVS: memcached,
独自KVS(tokyocabinetベース)
集計: hadoop, hive, spark, vertica
管理画面: Ruby On Rails
DB : PostgreSQL
ほぼオンプレ
いきなりですが、質問です。
いつも10人並んでるATMが1台があります.
ここで新たにATMを1台足すと行列の数はどうな
るでしょう?
ATM
ATM
ATM
答え
だいたい0人に近づいていく
いつも10人並んでるATMとは
→ 単位時間に到着する人数とATMが
処理できる人数が釣り合ってるということ
いつも10人
ATM
ATMが1台増えると?
→ ATMが処理できる人数の方が多くなる
→ 行列の数がどんどん減っていく
→ 最終的に0人になる
ATM
ATM
ATMの処理性能 < 到着数の時
処理が間に合ってないってことな
ので、行列がどんどん増えて
最終的にめちゃくちゃ遅くなる
ATMの処理性能 > 到着数の時
処理が間に合ってるってことなの
で、行列がどんどん減って最終的
には0に近づく
リトルの公式(Little’s formula)
平均の待ち行列の数
L = λ * W
L: システムの平均待ち行列数
λ: システムの平均到着率
W: システムの平均待ち時間
ここまでのまとめ
イイネ!
システムの処理性能 > アクセス
ヨクナイネ!
システムの処理性能 < アクセス
スケールアップとスケールアウト
スケールアップとスケールアウト
どちらも
システムの処理性能 > アクセス
を維持するための手法
スケールアップとスケールアウト
スケールアップ:
システムの処理性能 > アクセス
になるまでサーバをパワーアップ
スケールアウト:
システムの処理性能 > アクセス
になるまでサーバを増やす
スケールアウトという手法
システムの処理性能 > アクセス
になるまでサーバを増やす
ではなく
システムの処理性能 > アクセス
になるまで1台あたりのアクセスとデータ量を減らす
と考えてみる
(おさらい)システムの処理性能 < アクセス
→ 待ち行列がどんどん増えていく
→ システムはどんどん遅くなる
ATM
システムの処理性能 < アクセス
1%しか超えてなくても、この状態が
ずーっと続く限りは待ち行列は永遠に
増える
→システムは無限に遅くなる
スケールアウトあるある
応答速度が10倍遅くなった!
えぇっ?10倍サーバを足す必要があるの??
→必要ありません
システムの処理性能 > アクセス
を満たせばいいので、大抵の場合数割の増強で
事足りるはず
逆を言うと?
1台あたり数割の性能劣化が10倍以上の速度
低下をもたらす可能性がある!!
ミドルウェアの選定基準
ピーク性能ではなく、性能の安定度(分散の小
ささ)に着目する
パフォーマンスが不安定なものはピーク性能が
良くても良くないものだと考える
性能の分散が小さい
=制御しやすい
ソフトA
ソフトB
性能高性能低
品質工学の考え方:
ソフトBのほうがよいと考える
ミドルウェアの選定基準
1. 複雑な機構を持ったものを避け、単純なもの
を採用する
2. GCやデータリバランスなどコントロールしにく
い挙動のものを避ける
「やかんは壊れない」の心意気
スケールアウトあるある
システムは設計を端折ったところからほころび
始める。
あらゆる箇所が現在の100倍になっても大丈夫
か確認しましょう。
スケールアウトあるある
処理能力を超えると一気にダメになる
対策:
- ピークアクセス時の予兆を見逃さない
- カナリアサーバの準備
- アクセスの強制的な平滑化
スケールアウトあるある
処理能力を超えると一気にダメになる
対策:
- ピークアクセス時の予兆を見逃さない
- カナリアサーバの準備
- アクセスの強制的な平滑化
スケールアウトあるある
処理能力を超えると一気にダメになる
対策:
- ピークアクセス時の予兆を見逃さない
- カナリアサーバの準備
- アクセスの強制的な平滑化
スケールアウトあるある
処理能力を超えると一気にダメになる
対策:
- ピークアクセス時の予兆を見逃さない
- カナリアサーバの準備
- アクセスの強制的な平滑化
それでもダメなら
スケールアップも積極的に検討しましょう。
SSDには随分と助けられました。
なおネットワーク帯域はスケールアップしにくい
領域なので、極力ネットワーク負荷の低いシス
テム設計にしましょう。
最後に
1. 「システムの処理性能 > アクセス」の維持を強く意識
しましょう
2. 普通をきちんと積み重ねるだけで数1000億のアクセ
スは十分対応可能
3. とはいえ、大量アクセスを浴び続けることで養われる
ものもある
そんなシステムを取り回してみたい方はぜひ弊社に!
http://recruit.supership.jp/

More Related Content

What's hot

[211]대규모 시스템 시각화 현동석김광림
[211]대규모 시스템 시각화 현동석김광림[211]대규모 시스템 시각화 현동석김광림
[211]대규모 시스템 시각화 현동석김광림
NAVER D2
 

What's hot (20)

AWS導入から3年 AWSマルチアカウント管理で変わらなかったこと変えていったこと
AWS導入から3年 AWSマルチアカウント管理で変わらなかったこと変えていったことAWS導入から3年 AWSマルチアカウント管理で変わらなかったこと変えていったこと
AWS導入から3年 AWSマルチアカウント管理で変わらなかったこと変えていったこと
 
WayOfNoTrouble.pptx
WayOfNoTrouble.pptxWayOfNoTrouble.pptx
WayOfNoTrouble.pptx
 
心理的安全性を 0から80ぐらいに上げた話
心理的安全性を 0から80ぐらいに上げた話心理的安全性を 0から80ぐらいに上げた話
心理的安全性を 0から80ぐらいに上げた話
 
What is quality culture? Is it something tasty?
What is quality culture? Is it something tasty?What is quality culture? Is it something tasty?
What is quality culture? Is it something tasty?
 
Redash・SQL勉強会 ~目指せクエリ女子~
Redash・SQL勉強会 ~目指せクエリ女子~ Redash・SQL勉強会 ~目指せクエリ女子~
Redash・SQL勉強会 ~目指せクエリ女子~
 
バンディットアルゴリズム入門と実践
バンディットアルゴリズム入門と実践バンディットアルゴリズム入門と実践
バンディットアルゴリズム入門と実践
 
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
 
今なら間に合う分散型IDとEntra Verified ID
今なら間に合う分散型IDとEntra Verified ID今なら間に合う分散型IDとEntra Verified ID
今なら間に合う分散型IDとEntra Verified ID
 
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design PatternAWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
 
Rust と Wasmの現実
Rust と Wasmの現実Rust と Wasmの現実
Rust と Wasmの現実
 
結果的に組織がAgileな状態であること #agile #scrum #leanstartup
結果的に組織がAgileな状態であること #agile #scrum #leanstartup結果的に組織がAgileな状態であること #agile #scrum #leanstartup
結果的に組織がAgileな状態であること #agile #scrum #leanstartup
 
とある診断員とAWS
とある診断員とAWSとある診断員とAWS
とある診断員とAWS
 
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
 
XSS再入門
XSS再入門XSS再入門
XSS再入門
 
正しいものを正しくつくる
正しいものを正しくつくる正しいものを正しくつくる
正しいものを正しくつくる
 
[211]대규모 시스템 시각화 현동석김광림
[211]대규모 시스템 시각화 현동석김광림[211]대규모 시스템 시각화 현동석김광림
[211]대규모 시스템 시각화 현동석김광림
 
データ・ドリブン・マーケティングの15指標
データ・ドリブン・マーケティングの15指標データ・ドリブン・マーケティングの15指標
データ・ドリブン・マーケティングの15指標
 
レコメンドアルゴリズムの基本と周辺知識と実装方法
レコメンドアルゴリズムの基本と周辺知識と実装方法レコメンドアルゴリズムの基本と周辺知識と実装方法
レコメンドアルゴリズムの基本と周辺知識と実装方法
 
App013 ここはあえて紙と
App013 ここはあえて紙とApp013 ここはあえて紙と
App013 ここはあえて紙と
 
君にグロースハックはいらない
君にグロースハックはいらない君にグロースハックはいらない
君にグロースハックはいらない
 

Viewers also liked

RailsとCで広告システムを作って起業した話
RailsとCで広告システムを作って起業した話RailsとCで広告システムを作って起業した話
RailsとCで広告システムを作って起業した話
Daisuke Yamazaki
 
HTTPプロキシによるゼロダウンタイムなアドサーバー移行
HTTPプロキシによるゼロダウンタイムなアドサーバー移行HTTPプロキシによるゼロダウンタイムなアドサーバー移行
HTTPプロキシによるゼロダウンタイムなアドサーバー移行
Ryo Aita
 

Viewers also liked (20)

Rtb30min
Rtb30minRtb30min
Rtb30min
 
RailsとCで広告システムを作って起業した話
RailsとCで広告システムを作って起業した話RailsとCで広告システムを作って起業した話
RailsとCで広告システムを作って起業した話
 
高速な広告配信サーバの作り方のコツ
高速な広告配信サーバの作り方のコツ高速な広告配信サーバの作り方のコツ
高速な広告配信サーバの作り方のコツ
 
HTTPプロキシによるゼロダウンタイムなアドサーバー移行
HTTPプロキシによるゼロダウンタイムなアドサーバー移行HTTPプロキシによるゼロダウンタイムなアドサーバー移行
HTTPプロキシによるゼロダウンタイムなアドサーバー移行
 
WebRTCサービスを個人で運営してみた話
WebRTCサービスを個人で運営してみた話WebRTCサービスを個人で運営してみた話
WebRTCサービスを個人で運営してみた話
 
HTTPとサーバ技術の最新動向
HTTPとサーバ技術の最新動向HTTPとサーバ技術の最新動向
HTTPとサーバ技術の最新動向
 
ソノアプリ リジェクト サレルッテヨ
ソノアプリ リジェクト サレルッテヨソノアプリ リジェクト サレルッテヨ
ソノアプリ リジェクト サレルッテヨ
 
Extra view @ kyobashi.swift
Extra view @ kyobashi.swiftExtra view @ kyobashi.swift
Extra view @ kyobashi.swift
 
ソフトウェアエンジニアに知ってほしいAerospike
ソフトウェアエンジニアに知ってほしいAerospikeソフトウェアエンジニアに知ってほしいAerospike
ソフトウェアエンジニアに知ってほしいAerospike
 
アドテク案件入門講座 8月20日(公開版)
アドテク案件入門講座 8月20日(公開版)アドテク案件入門講座 8月20日(公開版)
アドテク案件入門講座 8月20日(公開版)
 
フルスクラッチで書いたアドサーバの開発運用史
フルスクラッチで書いたアドサーバの開発運用史フルスクラッチで書いたアドサーバの開発運用史
フルスクラッチで書いたアドサーバの開発運用史
 
JavaScript Unit Test Why? What? How?
JavaScript Unit Test Why? What? How?JavaScript Unit Test Why? What? How?
JavaScript Unit Test Why? What? How?
 
Goでwebアプリを開発してみよう
Goでwebアプリを開発してみようGoでwebアプリを開発してみよう
Goでwebアプリを開発してみよう
 
STFとAppiumをもちいたAndroidアプリの自動テスト
STFとAppiumをもちいたAndroidアプリの自動テストSTFとAppiumをもちいたAndroidアプリの自動テスト
STFとAppiumをもちいたAndroidアプリの自動テスト
 
広告の最適化
広告の最適化広告の最適化
広告の最適化
 
機関車トーマスで説明するRTB
機関車トーマスで説明するRTB機関車トーマスで説明するRTB
機関車トーマスで説明するRTB
 
Practical ngx_mruby
Practical ngx_mrubyPractical ngx_mruby
Practical ngx_mruby
 
メディアマネタイズは次の世界へ。プライベートマーケットプレイス超入門
メディアマネタイズは次の世界へ。プライベートマーケットプレイス超入門メディアマネタイズは次の世界へ。プライベートマーケットプレイス超入門
メディアマネタイズは次の世界へ。プライベートマーケットプレイス超入門
 
アサマスタークロスウォーク2010
アサマスタークロスウォーク2010アサマスタークロスウォーク2010
アサマスタークロスウォーク2010
 
「インターネット広告」に関するインターネットユーザーの意識動向調査
「インターネット広告」に関するインターネットユーザーの意識動向調査「インターネット広告」に関するインターネットユーザーの意識動向調査
「インターネット広告」に関するインターネットユーザーの意識動向調査
 

Similar to スケールアウト再考

秒間5万リクエストを処理する リアルタイム広告システム / BS3-3 新しい潮流:ビッグデータのリアルタイム応用:ユーザ事例 #QConTokyo
秒間5万リクエストを処理する リアルタイム広告システム  / BS3-3 新しい潮流:ビッグデータのリアルタイム応用:ユーザ事例 #QConTokyo秒間5万リクエストを処理する リアルタイム広告システム  / BS3-3 新しい潮流:ビッグデータのリアルタイム応用:ユーザ事例 #QConTokyo
秒間5万リクエストを処理する リアルタイム広告システム / BS3-3 新しい潮流:ビッグデータのリアルタイム応用:ユーザ事例 #QConTokyo
Takahiro Yasuda
 
Tim casestudy 2013 01
Tim casestudy 2013 01Tim casestudy 2013 01
Tim casestudy 2013 01
Arai Ran
 
AdServerの仕組み
AdServerの仕組みAdServerの仕組み
AdServerの仕組み
Eiji Kuroda
 
Ad stir媒体資料 20140204
Ad stir媒体資料 20140204Ad stir媒体資料 20140204
Ad stir媒体資料 20140204
AdStir
 
Aws summits2014 サイバーエージェント_ユーザーの趣味嗜好に適した広告配信システムdynalystができるまでad_techstudioでの...
Aws summits2014 サイバーエージェント_ユーザーの趣味嗜好に適した広告配信システムdynalystができるまでad_techstudioでの...Aws summits2014 サイバーエージェント_ユーザーの趣味嗜好に適した広告配信システムdynalystができるまでad_techstudioでの...
Aws summits2014 サイバーエージェント_ユーザーの趣味嗜好に適した広告配信システムdynalystができるまでad_techstudioでの...
Boss4434
 
Ad stir媒体資料 20131224
Ad stir媒体資料 20131224Ad stir媒体資料 20131224
Ad stir媒体資料 20131224
AdStir
 

Similar to スケールアウト再考 (20)

Uuyアドテクセミナー
UuyアドテクセミナーUuyアドテクセミナー
Uuyアドテクセミナー
 
秒間5万リクエストを処理する リアルタイム広告システム / BS3-3 新しい潮流:ビッグデータのリアルタイム応用:ユーザ事例 #QConTokyo
秒間5万リクエストを処理する リアルタイム広告システム  / BS3-3 新しい潮流:ビッグデータのリアルタイム応用:ユーザ事例 #QConTokyo秒間5万リクエストを処理する リアルタイム広告システム  / BS3-3 新しい潮流:ビッグデータのリアルタイム応用:ユーザ事例 #QConTokyo
秒間5万リクエストを処理する リアルタイム広告システム / BS3-3 新しい潮流:ビッグデータのリアルタイム応用:ユーザ事例 #QConTokyo
 
Tim casestudy 2013 01
Tim casestudy 2013 01Tim casestudy 2013 01
Tim casestudy 2013 01
 
AdServerの仕組み
AdServerの仕組みAdServerの仕組み
AdServerの仕組み
 
The new LINE Ads Platform
The new LINE Ads PlatformThe new LINE Ads Platform
The new LINE Ads Platform
 
Ad stir媒体資料 20140204
Ad stir媒体資料 20140204Ad stir媒体資料 20140204
Ad stir媒体資料 20140204
 
Aws summits2014 サイバーエージェント_ユーザーの趣味嗜好に適した広告配信システムdynalystができるまでad_techstudioでの...
Aws summits2014 サイバーエージェント_ユーザーの趣味嗜好に適した広告配信システムdynalystができるまでad_techstudioでの...Aws summits2014 サイバーエージェント_ユーザーの趣味嗜好に適した広告配信システムdynalystができるまでad_techstudioでの...
Aws summits2014 サイバーエージェント_ユーザーの趣味嗜好に適した広告配信システムdynalystができるまでad_techstudioでの...
 
Puppet Camp Tokyo 2014: Application Release Utlizing MCollective
Puppet Camp Tokyo 2014: Application Release Utlizing MCollectivePuppet Camp Tokyo 2014: Application Release Utlizing MCollective
Puppet Camp Tokyo 2014: Application Release Utlizing MCollective
 
0515 mrocセミナー 第二部_公開
0515 mrocセミナー 第二部_公開0515 mrocセミナー 第二部_公開
0515 mrocセミナー 第二部_公開
 
0416 mrocセミナー 第二部_公開
0416 mrocセミナー 第二部_公開0416 mrocセミナー 第二部_公開
0416 mrocセミナー 第二部_公開
 
SmartNews TechNight vol5 SmartNews Ads大図解
SmartNews TechNight vol5 SmartNews Ads大図解SmartNews TechNight vol5 SmartNews Ads大図解
SmartNews TechNight vol5 SmartNews Ads大図解
 
IoT/GPSトラッキング プラットフォームがサーバレス だからこそ2ヶ月で構築できた話
IoT/GPSトラッキング プラットフォームがサーバレス だからこそ2ヶ月で構築できた話IoT/GPSトラッキング プラットフォームがサーバレス だからこそ2ヶ月で構築できた話
IoT/GPSトラッキング プラットフォームがサーバレス だからこそ2ヶ月で構築できた話
 
クラウド時代を生き残る経営戦略策定のススメ「クラウドは敵か?味方か?」(山口・岡山)
クラウド時代を生き残る経営戦略策定のススメ「クラウドは敵か?味方か?」(山口・岡山)クラウド時代を生き残る経営戦略策定のススメ「クラウドは敵か?味方か?」(山口・岡山)
クラウド時代を生き残る経営戦略策定のススメ「クラウドは敵か?味方か?」(山口・岡山)
 
6th Japan IT week autumn
6th Japan IT week autumn6th Japan IT week autumn
6th Japan IT week autumn
 
リクルートのビッグデータ活用基盤とデータ活用に向けた取組み
リクルートのビッグデータ活用基盤とデータ活用に向けた取組みリクルートのビッグデータ活用基盤とデータ活用に向けた取組み
リクルートのビッグデータ活用基盤とデータ活用に向けた取組み
 
Bitbucketを活用したコードレビュー改善事例
Bitbucketを活用したコードレビュー改善事例Bitbucketを活用したコードレビュー改善事例
Bitbucketを活用したコードレビュー改善事例
 
Ad stir媒体資料 20131224
Ad stir媒体資料 20131224Ad stir媒体資料 20131224
Ad stir媒体資料 20131224
 
スタートアップがAWSを使うべき3つの理由
スタートアップがAWSを使うべき3つの理由スタートアップがAWSを使うべき3つの理由
スタートアップがAWSを使うべき3つの理由
 
We Should Know About in this SocialNetwork Era 2011_1112
We Should Know About in this SocialNetwork Era 2011_1112We Should Know About in this SocialNetwork Era 2011_1112
We Should Know About in this SocialNetwork Era 2011_1112
 
デブサミ2013【15-C-6】5msの中身を公開!~ネット広告配信と支える職人達~
デブサミ2013【15-C-6】5msの中身を公開!~ネット広告配信と支える職人達~デブサミ2013【15-C-6】5msの中身を公開!~ネット広告配信と支える職人達~
デブサミ2013【15-C-6】5msの中身を公開!~ネット広告配信と支える職人達~
 

スケールアウト再考