Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Client side log collection with AWS Mobile SDK
Search
y_matsuwitter
April 25, 2016
Programming
470
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Client side log collection with AWS Mobile SDK
Gunosy Beer #4にて
y_matsuwitter
April 25, 2016
More Decks by y_matsuwitter
See All by y_matsuwitter
LLMと共に進化するプロセスを目指して
ymatsuwitter
14
5.5k
Building Products in the LLM Era
ymatsuwitter
11
13k
Product Utilization of Large Language Models Starting Today
ymatsuwitter
3
3.5k
経営・意思・エンジニアリング
ymatsuwitter
23
22k
LLM in 2023 and 2024
ymatsuwitter
8
6.4k
Turbulent Technological Changes and Career Strategies
ymatsuwitter
2
3.3k
LLM in toB Service and Its UX
ymatsuwitter
7
12k
Agent and small LLM validation
ymatsuwitter
7
3.1k
Information management for a culture of speed: The story of Notion and LayerX
ymatsuwitter
4
11k
Other Decks in Programming
See All in Programming
テストを司るデーモンに会いに行く 〜隔離した仮想マシンでテストを通すまで〜
h1d3mun3
1
570
AWS Step Functions 大規模並列の壁を越える / jaws-sonic-2026-niigata-step-functions
kasacchiful
PRO
1
530
AI活用は、個人から組織へ|マルチプレイヤーエージェントハーネス「QM」の社内活用事例 / AI use is moving from individuals to orgs
rkaga
1
230
選挙速報を多くのユーザーへ 届ける Live Activities 設計
hamayokokuririn
0
160
App Storeの外へ──日本のiOSサイドローディング入門 for iOSDC Japan 2026
yuukiw00w
0
250
UnityでSystem.Net.WebSocketsなWebSocketサーバが動かないのでUnity Monoのコードを覗いてみた / about implementing websocket server with unity mono
drumath2237
1
360
LoopHub - ローカルで動く GitHub で、AI と共同開発
jugyo
1
570
速く作れる。その次は、速く確かめられる開発へ 〜AIネイティブ開発を支える、Shift Down〜 / Can build fast. Next, moving to development where we can verify fast.
rkaga
6
4.6k
Ghostty + Neovimで作る 透明でカッコ良い開発環境
j341nono
0
120
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
1
310
Vue Fes Japan 2026 タイムテーブル徹底解説
448jp
1
520
AGENTS.md Is Not Enough:Build Skills, Don't Download Them
lx_t
0
130
Featured
See All Featured
Evolving SEO for Evolving Search Engines
ryanjones
0
300
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
490
Facilitating Awesome Meetings
lara
57
7.1k
How to Ace a Technical Interview
jacobian
281
24k
Discover your Explorer Soul
emna__ayadi
2
1.3k
Are puppies a ranking factor?
jonoalderson
2
3.9k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.2k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3.1k
The SEO identity crisis: Don't let AI make you average
varn
0
560
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
670
Transcript
AWS Mobile SDKで始めるスケーラブルなログ収集 Gunosy Inc. 2016.04 @y_matsuwitter
2 ©Gunosy Inc. ⾃⼰紹介 n Gunosy Inc. – 開発本部執⾏役員 n
業務 – 開発全般のマネジメント – Go⾔語布教係 – パフォーマンスチューニング – ISUCONとか好きです n 担当 – 右⼿でiOS、左⼿でAndroid – Web – Infrastructure(AWSのみ) n 最近の興味 – ViveとOculus製品版買いました 松本 勇気 @y_matsuwitter
3 ©Gunosy Inc. 今⽇の話 n ⾃⼰紹介 n これまでのログ収集について – 計測ツールの利⽤
– サーバサイドのアクセスログ – 専⽤のfluentdプロキシ n AWS Mobile SDKの紹介 – AWSの認証とCognito – 使えるサービス群 – Kinesisとは n PureeとKinesisでさくさくログ収集 – Pureeを使ってみる – iOSとログ収集 – Androidとログ収集 モバイルアプリでのログ収集のこれまでと、AWS Mobileによるログの収集
4 ©Gunosy Inc. これまでのログ収集の歴史
5 ©Gunosy Inc. よくあるパターン: 計測ツールを使う 仮説検証に対して、ツールが提供できる分析範囲は狭い n ⼀般的なメトリクスは取れる – 画⾯ごとのPV
– ボタンを押した、などのカスタムイベン ト n よく使われるもの – Google Analytics – Reproなど n 難点 – ユーザー単位の細かい分析が難しい – 計測イベント数の上限あり おそらく多くのサービスで計測サービスを利⽤しているのではないでしょうか mixpanel Flurry Google Analytics Repro
6 ©Gunosy Inc. サーバのアクセスログを使う ユーザー⾏動と少々離れてるログが多く、情報が不⾜ n 今のシステムに対して組み込みやすい – Nginxのログをfluentdで収集 –
ユーザー単位でどんな機能利⽤があっ たか、パターンを探ることができる n よく使われるもの – FluentdからRedshift/BigQueryに送 るケースが多いかも – サマリ値をElasticsearchへ n 難点 – 計測イベント ≠ APIアクセス データのやり取りを実⾏するAPIのアクセスからログを集める APIサーバ アクセスログ 通常の APIアクセス
7 ©Gunosy Inc. ログコレクタへのプロキシAPIを作ってみる LGTM、 しかしスケーラビリティが必要 n ログコレクタ⾃体は簡易に作れる – グノシーではGoで任意のログをfluent
dへ送る仕組みを実装 n 求めていたログ収集 – 仮説に対して必要なログが集められる – クライアント側も⾃由にログの追加が できる時代がやってきた n 難点 – ログ送りすぎ問題、各レイヤで詰まる クライアントから任意のログをAPI経由で送れるようにする ログ収集サーバ 各イベントログ 必要なイベント ごとに送付
8 ©Gunosy Inc. AWS Mobile SDKの紹介
9 ©Gunosy Inc. モバイル開発にAWSの⼒を クライアント側だけで多くの機能を作成可能に n 各サービスへの認証系をサポート n サーバサイドの作業を減らす –
データストレージとのやり取りを直接 クライアントから – ユーザー認証など必要な機能もSDKの みで可能 AWSの各サービスへのアクセスをサポートする公式なライブラリ
10 ©Gunosy Inc. 使えるサービス群 ⼀例として、現状これらのサービスをクライアントから直接利⽤している Amazon Kinesis Amazon Cognito Amazon
SNS Cognito AWS SNS Kinesis ユーザーの認証、AWS系のサービスへの認証・認可、設定値のアプリ間同期など。 モバイル通知(APNS、GCM)のトークンを管理し、通知送信などを可能にする。 様々なイベントデータを送信、一定量をKinesisに保持し、ストリーム処理に繋げる。 Amazon Mobile Analy5cs MobileAnalytics AWSが提供するモバイルサービスの分析サービス。
11 ©Gunosy Inc. Kinesisとは サーバ管理不要な⼤規模データストリームの集計・変換サービス n ⼤量のログを受け取り処理するための受け⽫ – 同時処理性能を簡単に増減させられる –
24時間分のログを溜める n 主にStream処理、ログの1次加⼯に利⽤ – Kinesisのログを逐次その他システム で処理する – 例1:ログを加⼯してS3に永続化 – 例2:逐次的にログ集計、短時間でサ ービスに反映する n 何が嬉しいか – ログデータの安定した配送を簡単に実 現できる – Kinesisの関連プロダクトとの連携が 将来⾒込める ・行動ログ ・属性ログ …etc S3に対して ログを保存 EMRからログの分析 LOG LOG LOG LOG LOG LOG
12 ©Gunosy Inc. PureeとKineisisでログを送る
13 ©Gunosy Inc. Pureeとは ログ送信だけでなく、再送設定やバッファリングなど有⽤な機能多い n iOS/Android双⽅のライブラリあり n クライアントサイド向けログコレクタ –
fluentdと似た機構をもち、イベント を適宜バッファリングしつつ⾮同期送信 n ⾃⾝でOutputPluginを書く – Google Analyticsなどツールへの送信 – 指定のログごとに違うストラテジでロ グを送ることが可能 Cookpad社製のクライアント向けログコレクタ 出所: https://github.com/cookpad/puree-ios
14 ©Gunosy Inc. PureeのBufferedOutputとKinesis 複数のログをBufferingし、KinesisへのBatchリクエストとして⼀度で送信
15 ©Gunosy Inc. Androidの場合
16 ©Gunosy Inc. 実際の利⽤に関して ログの性質に応じて送信のパラメタをチューニングする n Swift: Enumを利⽤ n Android:Classを利⽤
n 出来る限り早く送付してほしいデータ – Bufferサイズを⼩さく n 収集頻度が⾼く、リアルタイム性の低いもの – Bufferサイズを⼤きく取り、別なQueu eから送信する ログごとにClassやEnumを定義、Output先を頻度で変更してしている LOG LOG LOG LOG バッファ・サイズを 種類ごとに変更 高頻度ログ 低頻度ログ
17 ©Gunosy Inc. まとめ
18 ©Gunosy Inc. まとめ Kinesis + Pureeで理想的・スケーラブルなログ収集 正しい分析ログを集めるために考えることは多い。 よりよいログ収集とは KinesisとPureeでログ収集
n 仮説に寄り添うログ収集 – システム都合のログではなく、 必要なログを集める仕組み n 容易にログを追加可能 – ログ追加のたびに設定などを要 しないクライアントに優しい仕 組み n スケーラビリティの担保 – ログをいくら投げてもスケール n 任意のデータをKinesisへ – 所定のjsonをKinesisに好きな タイミングで投げる n Pureeで送信を容易に – PureeのBuffredOutputから KinesisへBatchRequestで送信 – 送信失敗に対する対処が容易
19 ©Gunosy Inc. Gunosyでは、より新しい技術に挑戦しつつ ビジネス成果を上げたい! そんなエンジニアを募集しています!