SlideShare a Scribd company logo
Submit Search
Upload
Elasticsearch勉強会第8回 ElasticsearchとKibanaで実現する 30億req/dayのリアルタイム分析
Report
Naoyuki Yamada
Backend Software Engineer at Nileworks
Follow
•
35 likes
•
9,894 views
1
of
17
Elasticsearch勉強会第8回 ElasticsearchとKibanaで実現する 30億req/dayのリアルタイム分析
•
35 likes
•
9,894 views
Download Now
Download to read offline
Report
Internet
Naoyuki Yamada
Backend Software Engineer at Nileworks
Follow
Recommended
はてなブックマークに基づく関連記事レコメンドエンジンの開発
Shunsuke Kozawa
15K views
•
31 slides
ElasticSearch勉強会 第6回
Naoyuki Yamada
21.2K views
•
24 slides
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"
Kentaro Yoshida
7.1K views
•
74 slides
サービス改善はログデータ分析から
Kenta Suzuki
18.9K views
•
41 slides
Elasticsearchインデクシングのパフォーマンスを測ってみた
Ryoji Kurosawa
7.4K views
•
31 slides
Elasticsearch at CrowdWorks
佑介 九岡
12.2K views
•
37 slides
More Related Content
What's hot
Elasticsearchを使うときの注意点 公開用スライド
崇介 藤井
30.3K views
•
22 slides
ElasticSearch+Kibanaでログデータの検索と視覚化を実現するテクニックと運用ノウハウ
Kentaro Yoshida
65.5K views
•
70 slides
20120405 setsunaセミナー
Takahiro Iwase
848 views
•
50 slides
みんな大好き“全文検索 on AWS”を試してみました!
宗 大栗
8.7K views
•
22 slides
Caching ガイダンスの話
Sunao Tomita
4.3K views
•
67 slides
トレジャーデータ 導入体験記 リブセンス編
Kentaro Yoshida
5.8K views
•
52 slides
What's hot
(20)
Elasticsearchを使うときの注意点 公開用スライド
崇介 藤井
•
30.3K views
ElasticSearch+Kibanaでログデータの検索と視覚化を実現するテクニックと運用ノウハウ
Kentaro Yoshida
•
65.5K views
20120405 setsunaセミナー
Takahiro Iwase
•
848 views
みんな大好き“全文検索 on AWS”を試してみました!
宗 大栗
•
8.7K views
Caching ガイダンスの話
Sunao Tomita
•
4.3K views
トレジャーデータ 導入体験記 リブセンス編
Kentaro Yoshida
•
5.8K views
MySQLユーザ視点での小さく始めるElasticsearch
Kentaro Yoshida
•
16.8K views
いろいろ考えると日本語の全文検索もMySQLがいいね!
Kouhei Sutou
•
7.6K views
Elasticsearchで作る形態素解析サーバ
Shinsuke Sugaya
•
7K views
Fess/Elasticsearchを使った業務で使える?全文検索への道
Shinsuke Sugaya
•
11.8K views
Elasticsearch Authプラグインでアクセスコントロール
Shinsuke Sugaya
•
10.9K views
Embulkを活用したログ管理システム
Akihiro Ikezoe
•
4.9K views
EmbulkとDigdagとデータ分析基盤と
Toru Takahashi
•
22.5K views
ニコニコニュースと全文検索
techtalkdwango
•
3.5K views
JavaScriptから利用するFirebase
Takuji Shimokawa
•
7K views
安全なPHPアプリケーションの作り方2014
Hiroshi Tokumaru
•
55.3K views
Azure サービスを活用して作るフルマネージドな全文検索アプリケーション
Yoichi Kawasaki
•
10.5K views
[B32] クイズと都市伝説から見る、ありのままのPostgreSQL by Shigeyuki Tokuhara
Insight Technology, Inc.
•
1.4K views
CloudSearchによる全文検索 - CM:道 2014/08/01
Shuji Watanabe
•
6.8K views
Mroongaを選んだ理由と ちょっと嬉しかった話
Terui Masashi
•
5.5K views
Similar to Elasticsearch勉強会第8回 ElasticsearchとKibanaで実現する 30億req/dayのリアルタイム分析
デブサミ2013【15-C-6】5msの中身を公開!~ネット広告配信と支える職人達~
Developers Summit
3.5K views
•
37 slides
RTBにおける機械学習システムの実装と運用
Atsuhiro Narita
796 views
•
31 slides
AWSで透過プロキシをやってみた
kuro kuro
3.9K views
•
21 slides
高速処理と高信頼性を両立し、ペタバイト級の多種大量データを蓄積する、ビッグデータ/ IoT時代のデータベースとは??
griddb
65 views
•
36 slides
松本克彦 ピグにおけるリアルタイムランキングの導入
matsumoto_katsuhiko
2.6K views
•
21 slides
楽天市場を取り巻く状況と開発
Rakuten Group, Inc.
2K views
•
33 slides
Similar to Elasticsearch勉強会第8回 ElasticsearchとKibanaで実現する 30億req/dayのリアルタイム分析
(18)
デブサミ2013【15-C-6】5msの中身を公開!~ネット広告配信と支える職人達~
Developers Summit
•
3.5K views
RTBにおける機械学習システムの実装と運用
Atsuhiro Narita
•
796 views
AWSで透過プロキシをやってみた
kuro kuro
•
3.9K views
高速処理と高信頼性を両立し、ペタバイト級の多種大量データを蓄積する、ビッグデータ/ IoT時代のデータベースとは??
griddb
•
65 views
松本克彦 ピグにおけるリアルタイムランキングの導入
matsumoto_katsuhiko
•
2.6K views
楽天市場を取り巻く状況と開発
Rakuten Group, Inc.
•
2K views
アドテク×Scala×パフォーマンスチューニング
Yosuke Mizutani
•
14.4K views
Real World Cloud Architectures ~CDPの概念と実装~
statemachine
•
1.6K views
パーソナル広告配信徹底入門
yskn67
•
5K views
SCG-AT:静的コード生成のみによる自動チューニング実現方式
Takahiro Katagiri
•
656 views
Auto Scaling x Spot Instances によるスケーラビリティと コストカット
akitsukada
•
10.7K views
Akka-Streams in Production
Kazunobu Raita
•
2.8K views
Sano web広告最適化20131018v3
Masakazu Sano
•
31.1K views
ISACA名古屋支部_2023年7月SR分科会_フィッシング詐欺.pdf
Tatsuya Hasegawa
•
237 views
Agile meets bigdata
Tokyo, Japan
•
357 views
P1様 dsp spire_111218
Kenta Arai
•
1.4K views
M5 sinchir0
ShinichiroSaito
•
803 views
教師なし学習によるMackerelの異常検知機能について〜設計/運用/評価の観点から〜
syou6162
•
15.1K views
More from Naoyuki Yamada
KubernetesでRedisを使うときの選択肢
Naoyuki Yamada
4.8K views
•
21 slides
いわき情報技術研究会20170513
Naoyuki Yamada
1K views
•
39 slides
浪江町タブレットで採用した、 Cordovaで作るHTML5のAndroidアプリのしくみ
Naoyuki Yamada
1.6K views
•
28 slides
東北Tech道場郡山20151031
Naoyuki Yamada
1.2K views
•
7 slides
AWSからOpenStack, Chef SoloからChef Serverに インフラを置き換えた事例の紹介
Naoyuki Yamada
7.2K views
•
16 slides
CAジャーナルクラブ TAO: Facebook’s Distributed Data Store for the Social Graph
Naoyuki Yamada
1.5K views
•
38 slides
More from Naoyuki Yamada
(17)
KubernetesでRedisを使うときの選択肢
Naoyuki Yamada
•
4.8K views
いわき情報技術研究会20170513
Naoyuki Yamada
•
1K views
浪江町タブレットで採用した、 Cordovaで作るHTML5のAndroidアプリのしくみ
Naoyuki Yamada
•
1.6K views
東北Tech道場郡山20151031
Naoyuki Yamada
•
1.2K views
AWSからOpenStack, Chef SoloからChef Serverに インフラを置き換えた事例の紹介
Naoyuki Yamada
•
7.2K views
CAジャーナルクラブ TAO: Facebook’s Distributed Data Store for the Social Graph
Naoyuki Yamada
•
1.5K views
Adtech College#7 GitHubを中心とした開発フロー
Naoyuki Yamada
•
2K views
CAジャーナルクラブ Dremel: Interactive Analysis of Web-Scale Datasets
Naoyuki Yamada
•
1.9K views
ADTECH COLLEGE #2 近い将来、開発責任者になるあなたへ
Naoyuki Yamada
•
2.4K views
株式会社サイバーエージェント アドテクスタジオの技術と開発
Naoyuki Yamada
•
5.6K views
Functional Programming in Scala Reading #2
Naoyuki Yamada
•
2K views
Code for Japan 勉強会 Vol.1 CKAN入門 プロジェクトのFork、デプロイ、CIまで
Naoyuki Yamada
•
5.3K views
JAWS-2013-LT 10000req/secを50msecで返すサーバーインフラをAWSで作る
Naoyuki Yamada
•
3.3K views
社内勉強会:ソーシャルゲームのデータベース設計入門
Naoyuki Yamada
•
4.1K views
データマイニング+WEB勉強会資料第6回
Naoyuki Yamada
•
3.6K views
Social Web Japan Vol.3 "Social Application and their support services"
Naoyuki Yamada
•
1.3K views
ソーシャルアプリ業界を構成する中間サービスたち
Naoyuki Yamada
•
1.1K views
Elasticsearch勉強会第8回 ElasticsearchとKibanaで実現する 30億req/dayのリアルタイム分析
1.
ElasticsearchとKibanaで実現する 30億req/dayのリアルタイム分析 2015年2月13日 第8回Elasticsearch勉強会 株式会社サイバーエージェント 山田
直行
2.
目次 • 自己紹介 • ディスプレイ広告配信DSP「Smalgo」について •
インフラ全体の構成とElasticsearchの位置づけ • Kibanaを使った実際の分析項目とパネルの紹介 - Bid率 / Win率 / Unhandled Exception数 / NoBidの理由の内訳 - レスポンスタイムの時系列分布 / Worstレスポンスタイム - BidType別Bid数・Imp数 / Click数, CV数 / BidType別のWin価格の平均と標準偏差 - Bid価格・Win価格の時系列分布 / SSP毎のRequest数・Bid数 / 生ログの調査
3.
自己紹介 • 山田 直行(やまだ
なおゆき) @satully / blog.kirishikistudios.com / www.facebook.com/yamadanaoyuki • 株式会社サイバーエージェント アドテク本部 Smalgoカンパニー ソフトウェアエンジニ ア • アドネットワーク・DSPに携わって2年 • 担当分野:インフラ・DevOps・サーバーサイドアプリケーション全般 • 好きなキーワード:自動化・大量トラフィック・イミュータブル • AWS認定ソリューションアーキテクト アソシエイト • データの活用について、インフラ構築から分析、実サービスへの適用までを通してできる エンジニアを目指しています
4.
ディスプレイ広告配信DSP「Smalgo」 • ディスプレイ広告( バナー広告)の配信プラットフォーム •
2014年5月から提供(前身となるプロダクトを含めると2014年2月から) • サイバーエージェント アドテクスタジオ内の1プロダクト(1事業部) • RTB & 第三者配信、CPA/CPC課金に対応。コンバージョン獲得に特化した 配信ロジックを持つ • さまざまな配信手法と広告フォーマットに対応、多くの接続先と在庫量を持つ • 開発・運用に携わるエンジニアは計6人
5.
インフラ全体の構成とElasticsearchの位置づけ • 2014年9月に発表した資料 ElasticSearch勉強会 第6回 http://www.slideshare.net/Satully/elasticsearch- study6threaltime20140916 •
今回は、このときからの変遷も交えてお話します
6.
サーバーインフラ全体の構成 配信 サーバー ログサーバー (Fluentd) S3 Redshift MySQLRedis Elasticsearch Kibana Tableau
7.
Elasticsearch部分の詳細 ElasticSearch Data Nodes ElasticSearch Coordinate Nodes ElasticSearch Data
Nodes ElasticSearch Data Nodes ElasticSearch Data Nodes Elasticsearch Data Nodes ELB Elasticsearch Coordinate Nodes master: true/ data: false EC2: c3.2xlarge + 80GBのInstanceStore x 2 2ノード master: false / data: true EC2: c3.2xlarge + 80GBのInstanceStore x 2 14ノード 12シャード & 1レプリカ ログサーバー (Fluentd) EC2: c3.largeインスタンス + EBS(GP2)200GBを横に並べる td-agent1.1系 独自のプラグインで ElasticsearchへBulkInsert Kibana Kibana3の最新版 EC2: m1.small + ElasticIP フロントにapache VPC内の Internal ELB ElasticSearchバージョン:1.4.2
8.
半年前と比べて構成を変更したところ • レポーティングと分析の基盤はバッチ処理形式のRedshiftで構築。 ElasticsearchはKibanaを使った数時間以内のリアルタイムな調査・モニタリ ングに役割を特化 • 以前は30日分データを保持していたが、現在では最大3日分程度のみ保持 •
Elasticsearchに使うインスタンスはEBSをやめ、InstanceStoreを2つアタッ チしてデータディレクトリを2つ指定してIOを分散 • データノードの台数は28台→14台に減らせた (秒間書き込みレコード数は3万→6万に増加したが捌けた) • サーチノードを廃止し、コーディネートノードに一本化
9.
Kibanaを使った実際の分析項目
10.
• Bid率 Bidした量とNoBidで返した量の比率を 円グラフで表示。 そもそもBidしないとImpressionも出 ないので、一定以上に保てるようにする • Win率(Bidの勝率) Imp数
Bid数=Win率。 これも基本的には高くしていきたい指標
11.
• UnhandledException数 想定外の例外を投げた際にカウントされ る。エラーログが出ているはずなので、 調査する • NoBidの理由の内訳 オークションに参加できなかった理由 をID別に円グラフで表示。 原則としてBid率は高めていきたいの で、なぜBidしなかったかの内訳を把 握しておく
12.
• Bidレスポンスタイムの時系列分布 50msec or
die なので、ほとんど全 面をブルーの状態(50msec以内)に保つ 赤い部分が出てきたら、それは障害 • Bidレスポンスタイムのうち、最も 遅かったレスポンスタイムを表示 全てのリクエストに対して100%を 50msecで返すことは不可能だが、数 秒以上かかっているレスポンスがあれば 異常のサイン
13.
• BidType別Bid/Imp数 Bidロジック(配信方法)別にどれくら いのボリュームが出ているか • Click/Conversion数 コンバージョン数は数日以上さかの ぼってカウントする場合もあるので、 ここに出てくる値とは一致しない。 なので参考程度だが、計測連携のテ ストをするときなどは便利
14.
• CPMの基礎統計 配信方法ごとに、いまいくらでBidし ているかの俯瞰を表示。最小値・最 大値・平均値・標準偏差の4つ • CPMの時系列分布 価格帯ごとにクエリを分け、それを 積み重ねグラフとして表示。 リリース直後・設定変更直後などの 急激な価格変動を見ている
15.
• SSPごとの時系列での Request数、Bid数 特に新しいSSP(配信先パートナー)をつ なぐときに使うことが多い。1秒あたり の数で表示しているので、配信サーバー の台数と性能の比較でキャパシティを把 握できる。 また、接続後も大きく変動したりすると 実はSSP側が障害になっていることもあっ た。
16.
• 生ログの調査 フィルタを使って任意のリクエストの詳細をみる ※この用途には、Kibana4はかなり動作が速く使いやすくてオススメ
17.
まとめ • 少人数で比較的大きなシステムを見ているのでElasticsearchもそれほど深く使えているわ けではありませんが、逆に手がかからず安定して動作しています(特にver1.2以降安定し たイメージがあります) • リアルタイムのモニタリング用途に特化した使い方をしていますが、役割をしぼったことで かえって上手く使えている気がします。Kibanaのダッシュボードはチームの席の近くにあ る大きなテレビに映していて、誰でも見られるようになっています •
24時間365日動かし続けなければいけないシステムなので、監視システムのアラートが鳴 る前でも、異常な徴候があれば気づきたい。また、配信ロジックも複雑かつリリース頻度も 多いので、特にデプロイ直後、監視システムだけでは捉えられないサービスレベルの変化に 気づくには、こうしたサービスの数値をモニタリングするシステムは有用だと思います • ElasticsearchとKibanaの活用方法の一つとして、参考になれば幸いです