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
Amazon Personalizeでやらかした話
Search
KosukeShimizu
July 10, 2019
Technology
890
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Amazon Personalizeでやらかした話
2019/07/10
KosukeShimizu
July 10, 2019
More Decks by KosukeShimizu
See All by KosukeShimizu
CloudVisionAPIでOCRする
thimi0412
0
210
Other Decks in Technology
See All in Technology
synctest時代のhttptest Go 1.27で変わるHTTPサーバテストの裏側 / go conference2026 synctest and httptest
budougumi0617
0
190
2026-09-11 【Snowflake World Tour Tokyo 2026】Snowflakeを起点に、AI Agentが自律稼働し続ける未来へ / Driving AI Agents with Snowflake
civitaspo
0
200
設計の世代交代を乗り越える、14年続くAndroidアプリの開発戦略
sansantech
PRO
1
150
多摩川(.dev)ランニング入門 / Tamagawa.dev#3
fujiwara3
3
400
Redmine 7.0で私が開発した新機能の狙いと背景
vividtone
1
110
少人数データチームのDevin活用実践事例
runandy16
2
450
Bet AI Day 2026丨バクラク Autopilot、業務システムの再設計
layerx
PRO
2
1.6k
スクラムで身についていた動き方を、XPで捉え直してみた
codmoninc
PRO
1
310
AI時代におけるプロダクト横断勉強会の設計
zozotech
PRO
0
170
WAF 運用改善の承認サイクル/SRE_BizReach_MIXI_1
visional_engineering_and_design
1
370
AI 駆動 Terraform 開発/SRE_BizReach_MIXI_2
visional_engineering_and_design
2
1.9k
Where Is JetBrains AI Heading- — Central CLI, Air Alpha, and the Agentic Development Stack
x5gtrn
PRO
0
150
Featured
See All Featured
Music & Morning Musume
bryan
47
7.4k
Building an army of robots
kneath
306
46k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Statistics for Hackers
jakevdp
799
230k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
890
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
680
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Docker and Python
trallard
47
4.2k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Mind Mapping
helmedeiros
1
350
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
870
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
540
Transcript
Copyright 2019 HANDS LAB INC. All rights reserved. Amazon Personalizeで
やらかした話 清水 幸佑(Kosuke Shimizu)
自己紹介 • 清水幸佑 (しみず こうすけ) • 1995年生まれの長野育ち • 青色大好き •
数学好き ◦ 鈴木貫太郎さんの動画が 面白い • ハンズラボ 2018新卒で入社 • よく書く言語 ◦ Python(メイン) ◦ PHP(サブ) ◦ Go(趣味) @thimi0412
2 何してんの? • 東急ハンズのECサイトの バックエンドを担当 • 最近は外部モール(楽天, Yahoo, etc) •
割となんでもやるマン • 消費税と戦闘中
Copyright 2019 HANDS LAB INC. All rights reserved. こっから本題
4 Amazon Personalizeとは • 2019/6/10に一般提供開始 • アプリケーションを使用している顧客に対して開発者が個別のレコメンデーションを 簡単に作成できるようにする機械学習サービス
• AutoMLの機能を使用すれば アルゴリズムの選択やモデルのトレーニングまで行ってくれる • APIのエンドポイントも作成してくれる • S3にCSVファイルを用意すればデータを取り込んでくれる • Qiitaに記事を書きました Amazon Personalizeでやらかさないための使い方とLamdbaでの使用方法 https://qiita.com/thimi0412/items/15ef2c22646634804034
5 Amazon Personalizeとは USER_ID,ITEM_ID, TIMESTAMP 582,456,1477897643 582,458,1477897643 582,490,1472037749 601,855,1472033257 601,451,1472033257
USER_ID,AGE,GENDER 180,71,male 185,55,female 332,30,female 352,51,male 365,22,female ITEM_ID,ITEM_NAEM,CATEGORY_ID 461,歯ブラシ(青),1 693,オールスパイス ,10 112,赤ワイン,9 113,白ワイン,9 369,キャンドル(10本入),6 ユーザと商品の購買データ ユーザのデータ 商品のデータ モデル API 全部自動でやってくれる! APIにユーザIDを送ることで 推薦する商品IDが得られる
Copyright 2019 HANDS LAB INC. All rights reserved. そうだ、東急ハンズの購買データで作ってみよう
7 作成したアーキテクチャ Amazon API Gateway AWS Lambda Amazon Personalize client
{ "item_list": [ "2200399000000", "4571243110130", "4539427300012", "2430000362002" ] } 推薦商品IDを格納したJSONが返される
8 どんな商品が推薦されているのか? import boto3 len(users) # およそ3万 personalizert = boto3.client(
'personalize-runtime' , region_name ='ap-northeast-1' ) for user in users: recommend_item = personalizert .get_recommendations( campaignArn ="<Campaign ARN>" , userId =user['user_id'],) • どんな商品が推薦されているか気になったので 以下のコードを実行! なんか遅いけど 大丈夫か!
Copyright 2019 HANDS LAB INC. All rights reserved. やらかしてしまった
10 事件の発覚 • 2019/6/13 • AWS SUMMIT DAY2に参加中 ウェーイ!
11 事件の発覚 こすとやばい Personalizeて、なんのサービス? A 俺 Kさんにより #pj_cost_optimizing に追加されました。
12 事件の発覚 A K 2日で気づいてよかった 傷は浅い
13 3,214.70$って何円だっけ • 約34万円 • なぜか何度も3,214.70$でググる • たった2日で34万円は辛い • AWSのサポートからも
大丈夫ですか的な連絡が来ている • AWS SUMMITのセッションの 内容が飛ぶほどの衝撃 申し訳ねぇ...
14 原因はTPSの最小値の設定 ここの数値を200にしていた! • TPS(transactions per second) 1秒に最低何回処理を行うか • TPSを1に設定すると
レコメンドの取得は1秒間に1回まで • DynamoDBのキャパシティー みたいな感じ • それにしても16,073.500TPS-hoursは さすがにやりすぎた • せめてやるならTPSを1にして 処理の間にスリープ処理を入れるべき だった
15 実運用する時はどうすればいいのか Amazon API Gateway AWS Lambda Amazon Personalize client
Amazon DynamoDB 1. 事前にユーザへの商品の推薦を行い DynamoDBに入れておく AWS ECS Task Schedule 2. LambdaはDynamoDBから推薦された商品 IDを取得する
16 得られた教訓 • 新しいサービスの事前調査をする • 課金体系にしっかり目を通す • 場合によってはAWSのサポートに聞くのもあり • 料金をおおよそでいいので計算できるようにする
• 以上のことを周りと共有すること
17 得られた教訓 とりあえず新サービスは気をつけろ!
18 次はForecastだ!
Thank you!