Save 37% off PRO during our Black Friday Sale! »

Log collector with Puree and AWS Kinesis

Log collector with Puree and AWS Kinesis

Potatotips#31にて

05e8adce66be4e80390a29ace0075161?s=128

y_matsuwitter

July 21, 2016
Tweet

Transcript

  1. Puree  +  Kinesisでのログ収集パターン Gunosy  Inc. 2016.07 @y_̲matsuwitter

  2. 2 ©Gunosy  Inc. ⾃自⼰己紹介 n Gunosy  Inc. – 開発本部執⾏行行役員 n

    業務 – 新規事業開発、及びチームビルディング – Go⾔言語布教係 – パフォーマンスチューニング – ISUCONとか好きです n 担当 – iOS、Android – Web – Infrastructure(AWSのみ) n 趣味 – VR 松本 勇気 @y_̲matsuwitter
  3. 3 ©Gunosy  Inc. 今⽇日の話 n ⾃自⼰己紹介 n モバイルでのログ収集について、またその課題 n PureeとKinesisでさくさくログ収集

    – Pureeとは – Kinesisとは – Androidとログ収集 PureeとKinesisを使ったお⼿手軽なログ収集の実装パターンの紹介
  4. 4 ©Gunosy  Inc. モバイルでのログ収集について、またその課題

  5. 5 ©Gunosy  Inc. モバイルでのログ収集について、またその課題 解析ツールやサーバのアクセスログが提供できる機能には不不⾜足が発⽣生しがち n そもそもなぜ収集するのか? – 緻密な定量量分析はサービス成⻑⾧長の要 n

    ⼀一般的な実装パターン – サードパーティ製アクセス解析ツール – APIサーバのアクセスログ n 課題 – イベントと属性の柔軟な紐紐付け – サービス上でのユーザー属性単位のクロ ス分析等複雑な解析 – 計測イベント数の上限問題 多くのケースでは、サードパーティーが提供する計測ツールを利利⽤用している。 mixpanel Fabric Flurry GA APIサーバ アクセスログ 通常の APIアクセス
  6. 6 ©Gunosy  Inc. PureeとKinesisでさくさくログ収集

  7. 7 ©Gunosy  Inc. Pureeとは ログ送信だけでなく、再送設定やバッファリングなど多くの必須機能を持つ n iOS/Android双⽅方向けにライブラリあり n クライアントサイド向けログコレクタ –

    fluentdと似た機構をもち、イベントを 適宜バッファリングしつつ⾮非同期送信 n ⾃自⾝身でOutputPluginを書く – Google  Analyticsなどツールへの送信 – 指定のログごとに違うストラテジでログ を送ることが可能 Cookpad社製のクライアント向けログコレクタ event event event Puree API Filter Buffering fail Retry
  8. 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. 9 ©Gunosy  Inc. Puree  +  Kinesisで実装してみる PureeのBuffering機構とKinesisのBulk送信機構で任意のログを効率率率よく収集。 PureeBufferedOutput を利利⽤用する

  10. 10 ©Gunosy  Inc. Puree  +  Kinesisで実装してみる PureeのBuffering機構とKinesisのBulk送信機構で任意のログを効率率率よく収集。 KinesisのBulk送信を呼び 出し、ログを詰める

  11. 11 ©Gunosy  Inc. Puree  +  Kinesisで実装してみる PureeのBuffering機構とKinesisのBulk送信機構で任意のログを効率率率よく収集。 AWS SDKは⾮非同期処理理がな いので⾃自前で⾮非同期送信

  12. 12 ©Gunosy  Inc. 実装上の注意点 Authorizationが必要 Partition  Keyの設定 初期化前のログ送信に気をつける ユーザーごとなどで別なキーを指定 n

    AWSのサービスへのアクセスには独 ⾃自の認証機構(Cognito)を通る必要 n 初回はCognito SDKを介して認証・認 可のプロセスをHTTPを介して実⾏行行す る – ログ送信と初期化の順序に注意 n Kinesis側で処理理を分散させるために 必要なキー – 裏裏側ではshardという単位でログ を分散してQueueingしている n =>  同じキーを指定すると分散処理理で きない AWS⾃自体やKinesisのコンセプトを理理解して利利⽤用しましょう。 AWS SDKの癖に注意しましょう。
  13. 13 ©Gunosy  Inc. まとめ n サービス改善の要となるログは柔軟に使えるフォーマットで収集 – ユーザー単位や属性単位の複雑な分析へ n PureeとKinesisを使う

    – ログをバッファリングして、まとめて送信する機構が⽤用意に実 現できる n SDKの癖に注意する – AWSならではの認証・認可、Kinesisの設定など Puree  +  Kinesisで簡単・スケーラブルなログ収集を実現しよう!
  14. 14 ©Gunosy  Inc. ⼀一緒に新規事業⽴立立ち上げやサービス改善に 挑んでくれる仲間を募集しています。