---
title: 高アクセスとコストを踏まえたレコメンド機能の実装について
tags:  #lambda #aws  
author: [とらのあなラボ](https://www.docswell.com/user/toranoana_lab)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/LEL2P1KX7R.jpg?width=480
description: 機能説明 プレゼンテーションでは、年商140億円、月間5000万PV以上を誇り、10万点以上の作品を取り扱う世界最大規模の同人ECサイト「とらのあな通信販売」が紹介されています。 このサイトのレコメンド機能は、ユーザーが購入した商品や「買いたいものリスト」に登録した商品に応じて、表示される商品の順序やリストが変化するというものです。 レコメンドのデータ量対策 レコメンド機能の強化はサービス拡大とユーザー増加につながり、それがデータ量と必要な性能の増大、ひいてはインフラコストの増加とレコメンド更新頻度の低下を引き起こすという課題が指摘されています。この課題への対策として、以下の点が挙げられています: •購入履歴の集計範囲の整理: 「集計する期間」と「興味があると判断する範囲」を整理します。 •興味があると判断する範囲の絞り込み: ユーザーが様々な種類のものを購入することで興味のあるものがずれてしまう問題に対し、集計する種類の最大個数を設定することで対応します。  高アクセス対策 高アクセスによるコスト増大への対策として、以下の3つの戦略が紹介されています: 1.集計タイミングの整理 : ◦購入した商品は「購入時」。 ◦「ほしいものリスト」に商品があれば「ほしいものリストに追加時」。 ◦特定条件で集計した商品は「集計後」。 ◦ログインは「ログイン後」。 ◦ログインを継続している人には「1日1回集計」を行うよう集計タイミングを調整します。  2.キャッシュサービスの利用: ◦利用者増加や人気商品・イベントによる突発的なアクセス増に対応するため、高スペックなインフラによる高コスト化を避ける目的でキャッシュサービスを利用します。 ◦検索結果を一定時間保存し、ログイン直後は「数分」、ログインから一定期間後は「数時間」といったように、CloudFrontのURLにパラメータを入れてキャッシュ時間を制御します。 ◦システム構成としては、ユーザーからのアクセスはCloudFront、キャッシュ、ALB、Lambdaを介してRDSにアクセスし、バッチ処理は直接RDSにアクセスすることで、必要なリクエストを適切に処理する構成を策定しています。  3.あえて多めのデータを渡す: ◦リクエスト数が多い、かつ時間で切り替えが必要な部分（例えば、0時ぴったりに表示したいバナーなど）で実施されます。 ◦キャッシュを使用しない場合はアクセス数に合わせて性能を上げる必要があり、コストがかかります。キャッシュを使用すると時間通りに表示できない問題が生じます。 ◦この問題を解決するため、「今必要なデータ」だけでなく、「1日以内に必要になるデータ」を含め、あらかじめ多めのデータを渡すことで、アプリケーション側で本当に必要なデータに限定し、キャッシュにデータがあることで高頻度で検索する必要をなくします。   結果 これらの対策により、RDSの性能を抑えつつレコメンド機能が実現されました。具体的には、リーダーインスタンス1台とライターインスタンス1台の構成で十分であり、Lambdaの同時実行数やRDSの負荷の推移を示したグラフから、ログインなどの操作や画面表示に影響を与えないアクセス速度が達成しました。
published: June 13, 25
canonical: https://www.docswell.com/s/toranoana_lab/5YD37E-2025-06-13-113040
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/LEL2P1KX7R.jpg)

TORANOANA Lab
高アクセスとコストを踏まえた
レコメンド機能の実装について
サブカル業界Developer 勉強会Vol.9
蓬莱
Copyright (C) 2025 Toranoana Lab Inc. All Rights Reserved.


# Page. 2

![Page Image](https://bcdn.docswell.com/page/4JM84W23JW.jpg)

今回話す内容は・・・
1.機能説明
2.レコメンドのデータ量対策
3.高アクセス対策
Copyright (C) 2025 Toranoana Lab Inc. All Rights Reserved.


# Page. 3

![Page Image](https://bcdn.docswell.com/page/PJR5WYMRE9.jpg)

今回話す内容は・・・
1.機能説明
2.レコメンドのデータ量対策
3.高アクセス対策
→インフラコストなどが理由で機能が実現できていない方向け
Copyright (C) 2025 Toranoana Lab Inc. All Rights Reserved.


# Page. 4

![Page Image](https://bcdn.docswell.com/page/PEXKPGVYJX.jpg)

自己紹介
名前：蓬莱寿成
独立系SIerをへて2019年に虎の穴ラボに入社
春ぐらいからFantiaの開発チームのリーダー
継続していること LT登壇、ブログ更新、水泳
Copyright (C) 2025 Toranoana Lab Inc. All Rights Reserved.


# Page. 5

![Page Image](https://bcdn.docswell.com/page/3EK5D4Q4JD.jpg)

1.機能説明
Copyright (C) 2025 Toranoana Lab Inc. All Rights Reserved.


# Page. 6

![Page Image](https://bcdn.docswell.com/page/L73KRLPD75.jpg)

とらのあな通信販売
年間売上140億円を誇る
世界最大規模の同人ECサイト
取扱作品10万点以上
月間5,000万PV以上
クリエイターの魂がこもった同人誌
を、ファンにお届けします。
https://ecs.toranoana.jp/tora/ec/
Copyright (C) 2025 Toranoana Lab Inc. All Rights Reserved.


# Page. 7

![Page Image](https://bcdn.docswell.com/page/87D3YNL2JG.jpg)

機能説明
購入した商品で
順序が変わる
購入したり欲しい物
に入れたりすると
商品の一覧が変わる
Copyright (C) 2025 Toranoana Lab Inc. All Rights Reserved.


# Page. 8

![Page Image](https://bcdn.docswell.com/page/VJP4652L78.jpg)

2.レコメンドのデータ量
Copyright (C) 2025 Toranoana Lab Inc. All Rights Reserved.


# Page. 9

![Page Image](https://bcdn.docswell.com/page/2EVX3PD6JQ.jpg)

レコメンドのデータ量の増加
ユーザーの
増加
レコメンドの
強化
サービスの
拡大
レコメンド
の更新頻度
が落ちる
データ量↑
必要性能↑
Copyright (C) 2025 Toranoana Lab Inc. All Rights Reserved.
インフラ
コストが
上がる


# Page. 10

![Page Image](https://bcdn.docswell.com/page/57GV3PY27L.jpg)

レコメンドに必要なデータの増加を抑えるために
購入履歴の集計範囲の整理を実施
・集計する期間
購入
・興味があると判断する範囲
レコメンドの集計する
期間
購入
購入
購入
購入
購入
購入
購入
購入
購入
購入
Copyright (C) 2025 Toranoana Lab Inc. All Rights Reserved.
購入


# Page. 11

![Page Image](https://bcdn.docswell.com/page/4EQ652M9EP.jpg)

集計する期間について
オレンジの商品に今興味がある
購入
購入
購入
Copyright (C) 2025 Toranoana Lab Inc. All Rights Reserved.


# Page. 12

![Page Image](https://bcdn.docswell.com/page/KJ449L4RJ1.jpg)

集計する期間について
購入
購入
購入
購入
購入
購入
購入
購入
Copyright (C) 2025 Toranoana Lab Inc. All Rights Reserved.
購入


# Page. 13

![Page Image](https://bcdn.docswell.com/page/LE14KL4VEG.jpg)

集計する期間について
・長期間続いているコンテンツが優先され、興味のあるものからずれる
→期間の区切りの設定が必要
購入
購入
購入
購入
購入
購入
購入
購入
Copyright (C) 2025 Toranoana Lab Inc. All Rights Reserved.
購入


# Page. 14

![Page Image](https://bcdn.docswell.com/page/GEWXDVX372.jpg)

集計する期間について
・長期間続いているコンテンツが優先され、興味のあるものからずれる
→期間の区切りの設定が必要
購入
購入
購入
購入
購入
購入
購入
購入
集計期間(180日)
Copyright (C) 2025 Toranoana Lab Inc. All Rights Reserved.
購入


# Page. 15

![Page Image](https://bcdn.docswell.com/page/47Z6G46G73.jpg)

集計する期間について
・長期間続いているコンテンツが優先され、興味のあるものからずれる
オレンジの商品に今興味がある
→期間の区切りの設定が必要
購入
購入
購入
購入
購入
購入
購入
購入
購入
緑や青の商品に今興味がある
Copyright (C) 2025 Toranoana Lab Inc. All Rights Reserved.


# Page. 16

![Page Image](https://bcdn.docswell.com/page/YJ62Y32Q7V.jpg)

興味があると判断する範囲について
・様々なものを買う＝様々な種類が増えて興味のあるものがずれる
→集計した種類の最大の個数を設定する
購入
購入
購入
購入
購入
購入
購入
購入
購入
絞り込み
購入
購入
購入
購入
購入
Copyright (C) 2025 Toranoana Lab Inc. All Rights Reserved.
購入
購入


# Page. 17

![Page Image](https://bcdn.docswell.com/page/GJ52GL22J4.jpg)

3.高アクセス対策
Copyright (C) 2025 Toranoana Lab Inc. All Rights Reserved.


# Page. 18

![Page Image](https://bcdn.docswell.com/page/LE3KRLK1E5.jpg)

高アクセス対策
理想：レコメンドのデータを常に最新
現実：レスポンス速度やインフラの関係で難しい
・集計タイミングの整理
・キャッシュサービスの利用
・少し多めのデータを返す
Copyright (C) 2025 Toranoana Lab Inc. All Rights Reserved.


# Page. 19

![Page Image](https://bcdn.docswell.com/page/8ED3YN3K7G.jpg)

3.1集計タイミングの整理
Copyright (C) 2025 Toranoana Lab Inc. All Rights Reserved.


# Page. 20

![Page Image](https://bcdn.docswell.com/page/V7P46543E8.jpg)

集計タイミングの整理
・購入した商品→購入
・商品があればほしい「ほしいものリスト」→ほしいものリストに追加
・特定条件で集計した商品→特定条件で集計した後
・ログイン→ログイン後
・ログインを継続している人→1日1回集計する
Copyright (C) 2025 Toranoana Lab Inc. All Rights Reserved.


# Page. 21

![Page Image](https://bcdn.docswell.com/page/2JVX3PXN7Q.jpg)

集計タイミングの整理
数分内
1時間内
適切なタイミングで集計を分けて実行
Copyright (C) 2025 Toranoana Lab Inc. All Rights Reserved.
1日以内


# Page. 22

![Page Image](https://bcdn.docswell.com/page/5EGV3PV5EL.jpg)

3.2キャッシュサービスの使用
Copyright (C) 2025 Toranoana Lab Inc. All Rights Reserved.


# Page. 23

![Page Image](https://bcdn.docswell.com/page/4JQ6526LJP.jpg)

キャッシュサービスの使用
・データを保存したデータストアへの想定するアクセスの保証が必要
1)利用者が増えることでアクセスする人が増える
2)人気な商品やイベントなどで突発的に増える
→高アクセスを許容するインフラ＝高スペック＝高コスト
Copyright (C) 2025 Toranoana Lab Inc. All Rights Reserved.


# Page. 24

![Page Image](https://bcdn.docswell.com/page/K7449L4571.jpg)

キャッシュサービスの使用
高アクセスを吸収するためにキャッシュサービスを利用
一定時間検索結果を保存
・ログイン直後→数分
・ログインから一定期間後→数時間
CloudFrontのURLにパラメータを入れて、キャッシュ時間を制御
Copyright (C) 2025 Toranoana Lab Inc. All Rights Reserved.


# Page. 25

![Page Image](https://bcdn.docswell.com/page/LJ14KL42JG.jpg)

キャッシュサービスの使用
必要なリクエストを適切に処理する構成を策定
アプリ(ユーザーが操作)
CloudFront
キャッシュ
ALB
Lambda
RDS
Copyright (C) 2025 Toranoana Lab Inc. All Rights Reserved.
アプリ(バッチ)


# Page. 26

![Page Image](https://bcdn.docswell.com/page/GJWXDVX2E2.jpg)

3.3あえて多めのデータを渡す
Copyright (C) 2025 Toranoana Lab Inc. All Rights Reserved.


# Page. 27

![Page Image](https://bcdn.docswell.com/page/4EZ6G464E3.jpg)

3.3 あえて多めのデータを渡す
リクエスト数が多い＋時間で切り替えが必要な部分で実施
Copyright (C) 2025 Toranoana Lab Inc. All Rights Reserved.


# Page. 28

![Page Image](https://bcdn.docswell.com/page/Y762Y32GEV.jpg)

3.3 あえて多めのデータを渡す
0時から表示したいバナーがある
キャッシュを使用しない
キャッシュを使用する
アクセス数の合わせて性能を上げる必要がある
時間通りに出せない
Copyright (C) 2025 Toranoana Lab Inc. All Rights Reserved.


# Page. 29

![Page Image](https://bcdn.docswell.com/page/G752GL2X74.jpg)

3.3 あえて多めのデータを渡す
今必要なデータ
1日以内に必要にな
るデータ
１日以上先に必要に
なるデータ
ここで取得したデータは直後に開始される
バナーのデータも含まれる
Copyright (C) 2025 Toranoana Lab Inc. All Rights Reserved.


# Page. 30

![Page Image](https://bcdn.docswell.com/page/9J24YL4Q7R.jpg)

3.3 あえて多めのデータを渡す
今必要なデータ
1日以内に必要にな
るデータ
・必要になる時間をデータとして渡す
⇨アプリ側で本当に必要なデータに限定
・キャッシュにもデータがあり
⇨高頻度で検索する必要がなくなる
Copyright (C) 2025 Toranoana Lab Inc. All Rights Reserved.
１日以上先に必要に
なるデータ


# Page. 31

![Page Image](https://bcdn.docswell.com/page/DEYMGQMYEM.jpg)

結果
Copyright (C) 2025 Toranoana Lab Inc. All Rights Reserved.


# Page. 32

![Page Image](https://bcdn.docswell.com/page/VJNWGKWRJ8.jpg)

結果
RDSも性能を抑えて実現
リーダーインスタンス1台＋ライターインスタンス1台の構成で十分
Lambdaの同時実行数
RDSの負荷の推移
ログインなどの操作や画面表示にも影響ないアクセス速度
Copyright (C) 2025 Toranoana Lab Inc. All Rights Reserved.


# Page. 33

![Page Image](https://bcdn.docswell.com/page/YE9XWVXZ73.jpg)

もっと虎の穴ラボを知りたい方へ
Copyright (C) 2025 Toranoana Lab Inc. All Rights Reserved.


# Page. 34

![Page Image](https://bcdn.docswell.com/page/GE82NP9YED.jpg)

もっと虎の穴ラボを知りたい方へ
採用サイト
虎の穴ラボ技術ブログ
Note
https://toranoana-lab.co.jp/
https://toranoanalab.hatenablog.com/
https://note.com/toranoana_lab/
虎の穴ラボのエンジニアを
中心に技術、
働き方について発信中
虎の穴ラボのマーケター／
ディレクターを中心に
業務内容、働き方について発信中
採用に関するイベント情報や
募集中の職種一覧などを掲載
Copyright (C) 2025 Toranoana Lab Inc. All Rights Reserved.


