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
Jetpack Compose で挑む新聞紙面UI ─ 複合ジェスチャー・ポリゴン記事領域・適応的ページ構成という3つの壁/droidkaigi2026
nikkei_engineer_recruiting
0
230
2026/09/10 Spring_Bootから_Jakarta_EE_MicroProfileへの移行
megascus
0
150
Multica × 長期記憶:40個のミニプロジェクト管理
eiei114
0
180
「重なり」は迎える側がつくる ― 人もAIエージェントも歓迎するプロダクトエンジニアリング ―
go0517go
PRO
0
260
JAWS-UG初心者支部#88わいわい初心塾(夏休みの宿題やったかGit編)
otsuki
0
150
データエンジニアリングワークショップ:Auto LoaderとSparkで学ぶデータパイプライン構築
databricksjapan
PRO
0
190
【視聴者参加型!】AWSセキュリティアンチパターンクイズ
syoshie
0
450
推論の観測、できていますか? 〜 Google Cloud Gemini Enterprise Agent Platformで 3つの Gemini モデルを実測して踏んだ、評価の罠 〜
shukob
PRO
0
160
KAEN Company Deck
kaen
PRO
0
320
Bet AI Day 2026丨Agentは、「金融」という巨大産業の何を変えられるのか
layerx
PRO
0
1.1k
20260906 「AWS運用入門」著者が教える、運用業務への生成AI活用入門
masaruogura
0
240
bet_ai_day_2026_session02
agenticsec
1
1.3k
Featured
See All Featured
Balancing Empowerment & Direction
lara
6
1.3k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
380
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
430
Six Lessons from altMBA
skipperchong
29
4.5k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
870
First, design no harm
axbom
PRO
2
1.3k
Side Projects
sachag
455
43k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.3k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
The SEO Collaboration Effect
kristinabergwall1
1
550
Amusing Abliteration
ianozsvald
1
290
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!