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
データ集計結果を提供するAPIとServerlessでの失敗談
Search
dasoran
January 18, 2019
Technology
580
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
データ集計結果を提供するAPIとServerlessでの失敗談
dasoran
January 18, 2019
More Decks by dasoran
See All by dasoran
llama.cppのバックエンドggmlを読もう
dasoran
0
110
Rift Sで沢山苦労した話といくつかの処方箋
dasoran
0
350
機械学習を支えるx86-64の拡張命令セットを読む会
dasoran
0
64
Other Decks in Technology
See All in Technology
積み重なった技術負債への挑戦 〜初手としての全社ゴト化〜
techtekt
PRO
0
1.3k
CLIライブラリ開発を支える技術
htnabe
0
120
その Lambda、8分で 管理者権限まで奪われます
k1nakayama
5
2.8k
銀行勘定系システムにおける開発プロセス刷新×AIによる環境モダナイゼーション / Development Process Transformation and AI-Driven Environment Modernization
muit
1
2.3k
ADKで始める業務改善 - AIエージェント開発時の考えと設計
harappa80
2
160
HHKBエバンジェリストになる方法
941
0
110
Azure Serverless 2026:Production-ready な AI エージェント基盤 / Azure Serverless 2026: Production-Ready AI Agent Platform
miyake
1
160
AI de Idea
kawaguti
PRO
2
120
range over func 2年間の軌跡 Issue #56413 はGoのエコシステムをどう変えたか
ryujicre8ive
0
190
例外の正しい扱い方 そのエラー try-catchして大丈夫?
jinwatanabe
3
510
山手線を徒歩で一周してわかった、 位置情報アプリは「足」が最強のデバッガー
hinakko
0
160
Claude in Chrome 入門 / Introduction to Claude in Chrome
cielo1985
0
840
Featured
See All Featured
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
240
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
410
Optimising Largest Contentful Paint
csswizardry
37
4k
We Are The Robots
honzajavorek
0
380
Skip the Path - Find Your Career Trail
mkilby
1
230
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Claude Code のすすめ
schroneko
67
230k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Utilizing Notion as your number one productivity tool
mfonobong
4
590
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
Thoughts on Productivity
jonyablonski
76
5.4k
Transcript
データ集計結果を提供するAPIと Serverlessでの失敗談 データとML周辺エンジニアリングを考える会 #1 2019/1/18 @dasoran2
自己紹介 - なんでもやるエンジニア - Python(クラウド系ツール、 Webアプリ、機械学習) - Java(Webアプリ) - Ruby(RailsだけだからRubyはできない)
- あとterraformとかansibleとか.... - 普段はML系の基盤とか火消しとか - GCP x k8sはじめました - 趣味でゲート式量子コンピュータしてます 安田 京太(@dasoran2)
はなすこと - ある日の出来事 - Serverlessとの出会い - やってみた - つらかったこと1 -
つらかったこと2 - まとめ
ある日の出来事 - 簡単なレコメンドAPIを作ることに 適当な集計 (協調フィルタとか) 類似関係のデータ (IDで引ける) 外部 APIサーバー HTTP
チーム内の会話 こんな簡単なシステムでいちいち ECS task書きたくないなぁ.... 最近 って フレームワークがいいらしい APIはこれでいくか....? terraformもいっぱい書きたくない
最近 って フレームワークがいいらしい APIはこれでいくか....? terraformもいっぱい書きたくない チーム内の会話 こんな簡単なシステムでいちいち ECS task書きたくないなぁ.... 面倒臭さと好奇心に敗北した エンジニア各位
やってみた データソース 集計batch (日次) 集計結果 API処理
やってみた データソース 集計batch (日次) 集計結果 API処理 Serverlessで楽できる
やってみた データソース 集計batch (日次) 集計結果 API処理 Serverlessで楽できる lambdaがいっぱい立ち上がるから RDSじゃなくDynamoDB
やってみた データソース 集計batch (日次) 集計結果 API処理 Serverlessで楽できる lambdaがいっぱい立ち上がるから RDSじゃなくDynamoDB アプリのdeployから分離するため
結局terraform管理
やってみた データソース 集計batch (日次) 集計結果 API処理 Serverlessで楽できる lambdaがいっぱい立ち上がるから RDSじゃなくDynamoDB 実行時間で諦めたECS
アプリのdeployから分離するため 結局terraform管理
やってみた データソース 集計batch (日次) 集計結果 API処理 Serverlessで楽できる lambdaがいっぱい立ち上がるから RDSじゃなくDynamoDB 実行時間で諦めたECS
アプリのdeployから分離するため 結局terraform管理 あれ、あまり楽になってない....
つらかったこと1: Lamda不安定問題 - 偶発的にレスポンスが極端に劣化する - Lambdaのコールドスタートに起因する様子 - リクエストが多いとわからないため負荷テスト時には発覚せず - pingを打って回避を試みても偶発的に発生する
- ググってもLambdaの仕様で起こるっぽい的な記事がでてくるが真偽は謎 - だれか解決策知ってたら教えてください
つらかったこと2: DynamoDB高すぎ問題 - 毎日すべてのコンテンツの類似コンテンツを集計した - 1日3時間程度 12000 Write Capacity が必要に
- 差分更新できれば良かったが .... - 結果、月$700程度DynamoDBのコストが発生
つらかったこと2: DynamoDB高すぎ問題 - 毎日すべてのコンテンツの類似コンテンツを集計した - 1日3時間程度 12000 Write Capacity が必要に
- 差分更新できれば良かったが .... - 結果、月$700程度DynamoDBのコストが発生 全件更新系のBatchには DynamoDBの課金体系は向かない
つらかったこと2+: スループット管理怖すぎ問題 - (先日の新しい課金プランで解決した) - Writeしている際に予期しないエラーでハンドリングできず batchが落ちた - Write Capacityが大きい状態のまま放置される
- ひどい金額の課金が発生した スループット管理は慎重に ....
まとめ - 少なくともDynamoDBは全件入れ替え系の集計には向かない - Lambdaが不安定なので以下の場合は向かない可能性がある - レスポンスタイム要求がシビア - リトライ等が難しい -
知らない方法で解決できると嬉しいな - 結局Serverlessと同じくらい容易にDeployできる基盤を構築したほうが、 現在の環境では利用可能範囲が広そう - Serverlessくらいの記述量で扱えるコンテナ基盤がほしい .... - がんばって研究中!