Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up
for free
Log collector with Puree and AWS Kinesis
y_matsuwitter
July 21, 2016
Programming
2
1.1k
Log collector with Puree and AWS Kinesis
Potatotips#31にて
y_matsuwitter
July 21, 2016
Tweet
Share
More Decks by y_matsuwitter
See All by y_matsuwitter
ymatsuwitter
21
9.1k
ymatsuwitter
2
2.7k
ymatsuwitter
2
1.4k
ymatsuwitter
0
1.7k
ymatsuwitter
32
46k
ymatsuwitter
1
620
ymatsuwitter
2
2.3k
ymatsuwitter
3
7.2k
ymatsuwitter
11
10k
Other Decks in Programming
See All in Programming
voyage_tech
0
110
pluu
0
450
takapy
0
120
yumemi
1
100
prof18
0
1.5k
martysuzuki
1
500
itok
1
740
mrtc0
2
1k
ianaya89
1
220
alperhankendi
1
150
aftiopk
0
120
grapecity_dev
0
180
Featured
See All Featured
philhawksworth
192
8.8k
danielanewman
1
520
sferik
610
55k
destraynor
222
47k
zenorocha
296
40k
brettharned
93
3k
jonrohan
1021
380k
garrettdimon
288
110k
swwweet
206
6.9k
tmm1
61
9.4k
jponch
103
5.1k
bkeepers
321
53k
Transcript
Puree + Kinesisでのログ収集パターン Gunosy Inc. 2016.07 @y_̲matsuwitter
2 ©Gunosy Inc. ⾃自⼰己紹介 n Gunosy Inc. – 開発本部執⾏行行役員 n
業務 – 新規事業開発、及びチームビルディング – Go⾔言語布教係 – パフォーマンスチューニング – ISUCONとか好きです n 担当 – iOS、Android – Web – Infrastructure(AWSのみ) n 趣味 – VR 松本 勇気 @y_̲matsuwitter
3 ©Gunosy Inc. 今⽇日の話 n ⾃自⼰己紹介 n モバイルでのログ収集について、またその課題 n PureeとKinesisでさくさくログ収集
– Pureeとは – Kinesisとは – Androidとログ収集 PureeとKinesisを使ったお⼿手軽なログ収集の実装パターンの紹介
4 ©Gunosy Inc. モバイルでのログ収集について、またその課題
5 ©Gunosy Inc. モバイルでのログ収集について、またその課題 解析ツールやサーバのアクセスログが提供できる機能には不不⾜足が発⽣生しがち n そもそもなぜ収集するのか? – 緻密な定量量分析はサービス成⻑⾧長の要 n
⼀一般的な実装パターン – サードパーティ製アクセス解析ツール – APIサーバのアクセスログ n 課題 – イベントと属性の柔軟な紐紐付け – サービス上でのユーザー属性単位のクロ ス分析等複雑な解析 – 計測イベント数の上限問題 多くのケースでは、サードパーティーが提供する計測ツールを利利⽤用している。 mixpanel Fabric Flurry GA APIサーバ アクセスログ 通常の APIアクセス
6 ©Gunosy Inc. PureeとKinesisでさくさくログ収集
7 ©Gunosy Inc. Pureeとは ログ送信だけでなく、再送設定やバッファリングなど多くの必須機能を持つ n iOS/Android双⽅方向けにライブラリあり n クライアントサイド向けログコレクタ –
fluentdと似た機構をもち、イベントを 適宜バッファリングしつつ⾮非同期送信 n ⾃自⾝身でOutputPluginを書く – Google Analyticsなどツールへの送信 – 指定のログごとに違うストラテジでログ を送ることが可能 Cookpad社製のクライアント向けログコレクタ event event event Puree API Filter Buffering fail Retry
8 ©Gunosy Inc. AWS Kinesisとは サーバ管理理不不要な⼤大規模データストリームの集計・変換サービス n ⼤大量量のログを受け取り処理理するための受け⽫皿 – 同時処理理性能を簡単に増減させられる
– 24時間分のログを溜溜める n 主にStream処理理、ログの1次加⼯工に利利⽤用 – Kinesisのログを逐次その他システムで 処理理する – 例例1:ログを加⼯工してS3に永続化 – 例例2:逐次的にログ集計、短時間でサー ビスに反映する n 何が嬉しいか – ログデータの安定した配送を簡単に実現 できる – Kinesisの関連プロダクトとの連携が将 来⾒見見込める(Kinesis Analyticsなど) – モバイル向けSDKから直接送信可能 ・行動ログ ・属性ログ …etc S3に対して ログを保存 EMRからログの分析 LOG LOG LOG LOG LOG LOG
9 ©Gunosy Inc. Puree + Kinesisで実装してみる PureeのBuffering機構とKinesisのBulk送信機構で任意のログを効率率率よく収集。 PureeBufferedOutput を利利⽤用する
10 ©Gunosy Inc. Puree + Kinesisで実装してみる PureeのBuffering機構とKinesisのBulk送信機構で任意のログを効率率率よく収集。 KinesisのBulk送信を呼び 出し、ログを詰める
11 ©Gunosy Inc. Puree + Kinesisで実装してみる PureeのBuffering機構とKinesisのBulk送信機構で任意のログを効率率率よく収集。 AWS SDKは⾮非同期処理理がな いので⾃自前で⾮非同期送信
12 ©Gunosy Inc. 実装上の注意点 Authorizationが必要 Partition Keyの設定 初期化前のログ送信に気をつける ユーザーごとなどで別なキーを指定 n
AWSのサービスへのアクセスには独 ⾃自の認証機構(Cognito)を通る必要 n 初回はCognito SDKを介して認証・認 可のプロセスをHTTPを介して実⾏行行す る – ログ送信と初期化の順序に注意 n Kinesis側で処理理を分散させるために 必要なキー – 裏裏側ではshardという単位でログ を分散してQueueingしている n => 同じキーを指定すると分散処理理で きない AWS⾃自体やKinesisのコンセプトを理理解して利利⽤用しましょう。 AWS SDKの癖に注意しましょう。
13 ©Gunosy Inc. まとめ n サービス改善の要となるログは柔軟に使えるフォーマットで収集 – ユーザー単位や属性単位の複雑な分析へ n PureeとKinesisを使う
– ログをバッファリングして、まとめて送信する機構が⽤用意に実 現できる n SDKの癖に注意する – AWSならではの認証・認可、Kinesisの設定など Puree + Kinesisで簡単・スケーラブルなログ収集を実現しよう!
14 ©Gunosy Inc. ⼀一緒に新規事業⽴立立ち上げやサービス改善に 挑んでくれる仲間を募集しています。