Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
GunosyでのKinesis Analytics利用について / AWS Solution...
Search
koid
July 05, 2017
Technology
0
270
GunosyでのKinesis Analytics利用について / AWS Solution Days 2017 -AWS DB Day-
koid
July 05, 2017
Tweet
Share
More Decks by koid
See All by koid
新しい技術の導入時に大切にしていること / IVS CTO Night 2018 LT
koid
2
7.2k
GunosyでのKinesis Analytics利用について / BigData JAWS 6 Kinesis Analytics
koid
1
990
re:Inventに行ってきました - 気になった新サービス / AWS re:Invent2016 Participants LT
koid
0
2.1k
AWS Lambda - ピーキーなアクセスに備える / Gunosy Beer Bash #8
koid
0
2.2k
AWS Lambdaで複数アカウント間でアレコレする / Gunosy Beer Bash #7
koid
1
2.2k
サーバにログインしない・させないサービス運用 / AWS Summit 2015 Devcon
koid
6
9.2k
GunosyのMicroServicesとOpsWorks / よくわかる AWS OpsWorks
koid
18
6.1k
Other Decks in Technology
See All in Technology
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
14
82k
現場の壁を乗り越えて、 「計装注入」が拓く オブザーバビリティ / Beyond the Field Barriers: Instrumentation Injection and the Future of Observability
aoto
PRO
1
680
仕様駆動開発を実現する上流工程におけるAIエージェント活用
sergicalsix
6
2.9k
Kubernetes self-healing of your workload
hwchiu
1
610
ViteとTypeScriptのProject Referencesで 大規模モノレポのUIカタログのリリースサイクルを高速化する
shuta13
3
220
頭部ふわふわ浄酔器
uyupun
0
230
ハノーファーメッセ2025で見た生成AI活用ユースケース.pdf
hamadakoji
1
500
SOTA競争から人間を超える画像認識へ
shinya7y
0
610
可観測性は開発環境から、開発環境にもオブザーバビリティ導入のススメ
layerx
PRO
4
1.8k
ゼロコード計装導入後のカスタム計装でさらに可観測性を高めよう
sansantech
PRO
1
540
AI時代の発信活動 ~技術者として認知してもらうための発信法~ / 20251028 Masaki Okuda
shift_evolve
PRO
1
120
20251027_findyさん_音声エージェントLT
almondo_event
2
490
Featured
See All Featured
Six Lessons from altMBA
skipperchong
29
4k
We Have a Design System, Now What?
morganepeng
53
7.8k
Designing for humans not robots
tammielis
254
26k
Rails Girls Zürich Keynote
gr2m
95
14k
GitHub's CSS Performance
jonrohan
1032
470k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
34
2.3k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.5k
Leading Effective Engineering Teams in the AI Era
addyosmani
7
650
The Pragmatic Product Professional
lauravandoore
36
7k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.7k
KATA
mclloyd
PRO
32
15k
It's Worth the Effort
3n
187
28k
Transcript
GunosyでのKinesis Analytics利⽤について 株式会社Gunosy ⼩出 幸典
⾃⼰紹介 • 名前 – ⼩出 幸典 (こいで ゆきのり) • 所属
– 株式会社Gunosy • 好きなAWSサービス – OpsWorks, Lambda, Kinesisファミリー, ECS
株式会社Gunosy – 「情報を世界中の⼈に最適に届ける」 Gunosyは 情報キュレーションサービス「グノシー」と 2016年6⽉1⽇にKDDI株式会社と共同でリリースした 無料ニュース配信アプリ「ニュースパス」を提供する 会社です。「情報を世界中の⼈に最適に届ける」を ビジョンに活動しています。 ネット上に存在するさまざまな情報を、
独⾃のアルゴリズムで収集、評価付けを⾏い ユーザーに届けます。 情報キュレーションサービス 「グノシー」 600媒体以上のニュースソースをベースに、 新たに開発した情報解析・配信技術を⽤いて⾃動的に 選定したニュースや情報をユーザーに届けます。 無料ニュース配信アプリ 「ニュースパス」
Gunosyと機械学習・データ分析 • Gunosyでは、様々な情報を収集し、独⾃のアルゴリズム で評価付けを⾏い、ユーザに届けています 各種コンテンツ (記事、商品、動画)
Gunosyと機械学習・データ分析 • ユーザの⾏動から、属性(年齢・性別・etc)を推定し、 コンテンツとのマッチングを⾏っています 各種コンテンツ (記事、商品、動画) 性別 年齢 地域... カテゴリ
著者 地域性...
Gunosyと機械学習・データ分析 • 本⽇はニュース領域での事例についてお話させて頂きます 各種コンテンツ (記事、商品、動画)
本⽇お話させていただく内容 Gunosyでどのように Kinesis Analyticsを利⽤しているか
なぜストリーム処理/マイクロバッチ処理をしたいのか • 「情報を世界中の⼈に最適に届ける」 – 時間(鮮度)の制約 • 情報には「鮮度」がある – 頻度(量)の制約 •
⾒せられる情報量には限りがある • どういった⼈に、どういった情報が適しているのか – 事前に「どのぐらい読まれそうか」といった推定はしているが、 ⾄近の実績値も即座にサービスにフィードバックしたい – より短い時間・より少ない試⾏で、サービスに反映したい
例えば • 記事クリックの(ニア)リアルタイム算出 – 「⼤域的な」傾向を掴みたい
Gunosyでのストリーム集計の右往左往 • 2013 mongodb Capped Collections • 2014 Redshift –
fluentdのflush intervalが短すぎるとcopyが詰まってくる • 2015 Norikra – 知⾒が無さすぎて運⽤がままならず – 我々には早かった • 2016 Kinesis+Spark Streaming (on EMR) – ⾃由度は⾼い⼀⽅、開発コスト⾼し、サーバコスト⾼し – 我々にはオーバースペックだった
本題 Kinesis Analyticsの適⽤
ざっくりとした構成 • 以前よりfluentdを利⽤してログ配送をしていた – 同じログをStreams/Firehoseに送る • fluent-plugin-kinesis • Kinesis Analyticsはまだ東京へは来ていないので、他リージョンへ
Web servers (fluentd) Kinesis Firehose S3 (backup) Kinesis Analytics Elastic Search Service summary log Mobile apps Source Stream log Tokyo Oregon Kinesis Firehose
Reference Dataの追加 • ユーザのセグメント別の集計 – どういったユーザが興味を⽰しているのか • S3にセグメント情報を配置 • ログにセグメント情報を付加し、セグメント別に集計
S3 User–Data Reference Data Web servers (fluentd) Kinesis Firehose S3 (backup) Kinesis Analytics Elastic Search Service summary log Mobile apps Source Stream log Kinesis Firehose
SQL例 • ⼀度中間ストリームを作る – Source StreamとReference DataをJOIN
SQL例 • 中間ストリームのデータを1分おきに集計して、出⼒へ
クエリ結果のイメージ • ユーザのセグメント毎に、傾向を知ることができる
サービスへのフィードバック(出⼒) • 現在のところバッチサーバからESSへ取りに⾏っている – ESSはIAM Roleでアクセス制御できる • クロスリージョンやVPCを意識しなくて良い – ESの集計関数が使える
Web servers (fluentd) Kinesis Firehose S3 (backup) Kinesis Analytics Elastic Search Service summary log Mobile apps Source Stream log Tokyo Oregon Kinesis Firehose Batch Server Tokyo
Tips
東京リージョンのStreamsから他リージョンへの転送 • クライアントから直接ログを投げ込んでいるケース – 余り⼿をかけてコンシューマを開発したくない • Lambdaも試したが、スループットの⾯で厳しかった Kinesis Streams log
Mobile apps Tokyo Oregon Kinesis Streams ?
東京リージョンのStreamsから他リージョンへの転送 • コンシューマとしてfluentdを利⽤ – inputプラグインで東京のStreamsから取り出し • outputプラグインで他リージョンのStreams/Firehoseへ転送 • タグによるルーティングや、必要に応じて整形を実施 Kinesis
Streams Mobile apps Tokyo Oregon Kinesis Streams fluentd server
利⽤していての所感
まとめ • 開発が楽になった – IAMの設定は⼤変だが省⼒化できる – クエリだけ集中して考えれば良い • 運⽤も楽になった –
フルマネージド – 但し、前後(Streams/Firehose)の流量には注意 • サーバコストも安くなった – ※もちろん、ケース次第です → トータルコストの削減+デリバリの短縮へ
宣伝 • エンジニアブログやっています http://data.gunosy.io/ http://tech.gunosy.io/
終わりに • ご清聴ありがとうございました