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
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
AI感のないAWS構成図をAIエージェントに描かせたい!
sagochiko
2
500
猫でもわかるKiro Web
kentapapa
1
160
覗いてみよう 関数型ビジュアル言語×2Dグラフィックスの世界
yohyamasaki
0
160
Oracle Cloud Infrastructure(OCI):Onboarding Session(はじめてのOCI/Oracle Supportご利⽤ガイド)
oracle4engineer
PRO
3
21k
AI Native Platform Engineering 〜PlatformとAgileで“作る速さ”を“価値”へ〜
uya116
0
590
プラットフォームを「作る」、 チームに「入り込む」
sansantech
PRO
0
510
HolmesGPTで始めるSREエージェント入門!プラットフォームの障害調査はAIにお任せ 〜
leveragestech
PRO
0
130
AIに書かせて、プラットフォームで縛る ― EKSプラットフォームで実践した責任境界と権限設計
elmodev09
1
1.1k
【Findyテック文化祭ワークショップ】新卒エンジニア&採用担当と作る、 なりたい姿と今やるべき一歩
dip_tech
PRO
0
150
Amazon Bedrock Agents ClassicからAmazon Bedrock AgentCoreへ移行した際、ガードレール設定が2箇所に割れた話
matsunobu
0
170
[2026-09-30]ロックンロールは鳴り止まないっ - 信頼性かまってちゃん - 「データ駆動を投げ捨ててまで。」追いかける信頼性改善に向けた取り組みの話
tosite
0
180
サーバーフルコンピューティング?AWS Lambda
iwatatomoya
0
130
Featured
See All Featured
First, design no harm
axbom
PRO
2
1.3k
A Tale of Four Properties
chriscoyier
163
24k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
520
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.5k
Crafting Experiences
bethany
1
360
Ruling the World: When Life Gets Gamed
codingconduct
0
380
How Software Deployment tools have changed in the past 20 years
geshan
2
34k
How to Talk to Developers About Accessibility
jct
2
560
Practical Orchestrator
shlominoach
192
12k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
Optimizing for Happiness
mojombo
378
71k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.7k
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!