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
高スループット・低レイテンシを実現する技術
Search
tokku5552
September 01, 2023
Technology
17k
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
高スループット・低レイテンシを実現する技術
https://cyberagent.connpass.com/event/291186/
tokku5552
September 01, 2023
More Decks by tokku5552
See All by tokku5552
他責思考で考える、EMとICの本音
tokku5552
1
200
Google CloudとAWSのコンテナ実行環境比較
tokku5552
0
270
AWS CDKのススメ
tokku5552
1
580
Messaging APIのメッセージオブジェクトを検証できるChrome拡張機能を作った話
tokku5552
1
180
FlutterにLINEログインを仕込んで通知メッセージを送る
tokku5552
2
1.1k
AWS CDK × Reactでliffをつくる
tokku5552
1
620
Flutterで単体テストを行う方法とGitHub Actionsを使った自動化
tokku5552
1
170
ネットワーク基礎 - WEBページが表示されるまで
tokku5552
1
340
インフラエンジニアのお仕事(オンプレ)
tokku5552
0
180
Other Decks in Technology
See All in Technology
Tofu-Controller lightning talk @ Containerday 2026
gionn
0
120
Conditional PED-ANOVA: Hyperparameter Importance in Hierarchical & Dynamic Search Spaces
pfn
PRO
0
140
DBについての基礎説明(MySQL編) - コロプラ 2026年度 新卒研修
colopl
0
140
⾮構造化データを価値に変える AI エージェント基盤とその組織
ivry_presentationmaterials
0
200
Benchmarking Disaggregated Serving on vLLM + Dynamo with a Real Coding-Agent Workload
nttcom
1
200
スキマバイトという雇用形態は存在しないので、雇用期間1日のアルバイト契約を事業者とワーカーが結ぶ手続きを支えるのがタイミーなんです
akitoshiga
0
210
宣言型部分更新は何を解決しどこへ向かうのか
shuta13
1
490
開発を高速化。AIコーディングエージェントとCodeRabbitでループエンジニアリング
moongift
PRO
0
100
「エーアイ」をバズワードにしないために RPA 導入経験と Kiro 上での Claude モデル利用経験から
kazzpapa3
0
100
Code for Security プロジェクト紹介 2026年10月
yu23ki14
0
110
Classmethod Company Deck
satoshi7
1
740
フロントエンドカンファレンス関西2026 - 速すぎるUIに、待ち時間を
teamlab
PRO
0
200
Featured
See All Featured
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
460
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
58k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
600
Art, The Web, and Tiny UX
lynnandtonic
304
22k
The Cult of Friendly URLs
andyhume
79
7k
Six Lessons from altMBA
skipperchong
29
4.5k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
260
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
18k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
The Curious Case for Waylosing
cassininazir
1
570
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
What the history of the web can teach us about the future of AI
inesmontani
PRO
2
740
Transcript
高スループット・低レイテンシを実現する技術 株式会社CyberAgent AI事業本部 徳田真之介
自己紹介 • 徳田真之介(@tokkuu) • 略歴 ◦ 2023/05 〜
▪ CyberAgent AI事業本部 ◦ 2021/10 - 2023/04 ▪ ミロゴス株式会社(Web系) ◦ 2017/04 - 2021/09 ▪ 日鉄日立システムエンジニアリング(SIer) • 好きな技術 ◦ TypeScript/Next.js/AWS/Golang/Terraform/Flutter • 趣味 ◦ バンド(ex. ggrks) ◦ 娘 ◦ ディズニーランド
RTBの仕組みをおさらい
AD AD AD SSP SSP SSP 秒間 数十万リクエスト に対して 50ms
でレスポンス ・ ・ ・ ・ ・ ・ DSP ユーザー 広告主 キャンペーン1 キャンペーン2 キャンペーン3 ・ ・ ・ 再掲
AD AD AD SSP SSP SSP 秒間 数十万リクエスト に対して 50ms
でレスポンス ・ ・ ・ ・ ・ ・ DSP ユーザー 広告主 キャンペーン1 キャンペーン2 キャンペーン3 ・ ・ ・ 再掲 • どのキャンペーンの広告をいくらで 出すのか? • 入札したあと、勝ったのか?それを 見たのか?クリックしたのか?
AD AD AD SSP SSP SSP 秒間 数十万リクエスト に対して 50ms
でレスポンス ・ ・ ・ ・ ・ ・ DSP ユーザー 広告主 キャンペーン1 キャンペーン2 キャンペーン3 ・ ・ ・ 再掲 ・bid SSPからのリクエストを受けて 入札額を返す ・imp 広告が表示されたら リクエストが来る ・その他 計測用
AD AD AD SSP SSP SSP 秒間 数十万リクエスト に対して 50ms
でレスポンス ・ ・ ・ ・ ・ ・ DSP ユーザー 広告主 キャンペーン1 キャンペーン2 キャンペーン3 ・ ・ ・ 再掲 ・bid SSPからのリクエストを受けて 入札額を返す ・imp 広告が表示されたら リクエストが来る ・その他 計測用 ・ユーザー情報から候補となる広告を選定 ・ユーザーの属性に合わせて入札額を決定 ・入札額と広告内容をSSPへ応答
AD AD AD SSP SSP SSP 秒間 数十万リクエスト に対して 50ms
でレスポンス ・ ・ ・ ・ ・ ・ DSP ユーザー 広告主 キャンペーン1 キャンペーン2 キャンペーン3 ・ ・ ・ 再掲 ・bid SSPからのリクエストを受けて 入札額を返す ・imp 広告が表示されたら リクエストが来る ・その他 計測用 ・どのキャンペーンの広告が見られたかを計測 ・消化額++ ・予算に到達していたらストップ
アーキテクチャ概観
None
• SSPからbidサーバーへ入 札リクエストが飛んでくる • 広告のマスターデータや最 適化パラメータはAuroraや DynamoDBに格納されてお り、これを元に入札額を決定 し、広告データをレスポンス
• 最適化パラメータはパー トナーのユーザー情報DB からS3を経てCA側の Snowflakeで計算し、 DynamoDBに格納
• SSPからbidサーバーへ入 札リクエストが飛んでくる • 広告のマスターデータや最 適化パラメータはAuroraや DynamoDBに格納されてお り、これを元に入札額を決定 し、広告データをレスポンス
• 最適化パラメータはパー トナーのユーザー情報DB からS3を経てCA側の Snowflakeで計算し、 DynamoDBに格納
• SSPからbidサーバーへ入 札リクエストが飛んでくる • 広告のマスターデータや最 適化パラメータはAuroraや DynamoDBに格納されてお り、これを元に入札額を決定 し、広告データをレスポンス
• 最適化パラメータはパー トナーのユーザー情報DB からS3を経てCA側の Snowflakeで計算し、 DynamoDBに格納
bid処理を高速化する
None
bid処理の基本構成と高速化 • 使用言語はGolang • 標準出力をfluentdでKinesis Data Streams->Kinesis Data Firehose->S3へと流している •
Auroraにあるマスタデータはインメ モリキャッシュへ • DynamoDBへの情報はMemcached などを挟んで取得
bid処理の基本構成と高速化 • 使用言語はGolang • 標準出力をfluentdでKinesis Data Streams->Kinesis Data Firehose->S3へと流している •
Auroraにあるマスタデータはインメ モリキャッシュへ • DynamoDBへの情報はMemcached などを挟んで取得 多段キャッシュでread処理を高速化 出力は標準出力のみ
imp処理の高速化 • impではDynamoDBへの書き込みが発生する • DynamoDBにそのまま書き込んでもある程度耐えられるはずだが、bidレスポンスほどの即時性 は必要ないため、SQSを挟んで非同期化
最適化ロジック周り
AD AD AD SSP SSP SSP 秒間 数十万リクエスト に対して 50ms
でレスポンス ・ ・ ・ ・ ・ ・ DSP ユーザー 広告主 キャンペーン1 キャンペーン2 キャンペーン3 ・ ・ ・ 再掲 • どのキャンペーンの広告をいくらで 出すのか? • 入札したあと、勝ったのか?それを 見たのか?クリックしたのか?
• SSPからbidサーバーへ入 札リクエストが飛んでくる • 広告のマスターデータや最 適化パラメータはAuroraや DynamoDBに格納されてお り、これを元に入札額を決定 し、広告データをレスポンス
• 最適化パラメータはパー トナーのユーザー情報DB からS3を経てCA側の Snowflakeで計算し、 DynamoDBに格納
最適化ロジック • どの広告をいくらで出すのかを決めるため に、配信実績をもとに定期的にパラメーターを 更新している • 配信実績はS3のログからSFnのworkflowでリ フレッシュをかけてSnowflakeに保存 •
DynamoDBへテーブルを分けてユーザー毎、 広告毎に一意にパラメーターが取得できる
まとめ • read処理はインメモリ→ memcached/redis → Aurora/DynamoDBと多段にキャッシュすることで 高速化 • writeが必要な処理はSQSを使って非同期化
• 複雑なロジックが必要な部分のうち、予め計算しておけるところは バッチ処理で計算