CloudFrontのCDNキャッシュで実現した、サービス表示速度の大幅向上
株式会社マイベスト / Yudai Ueno
メンバー / バックエンドエンジニア
| 事業形態 |
|---|
B to C |
| 事業形態 | B to C |
|---|
アーキテクチャ

導入の背景・解決したかった問題
導入背景
ツール導入前の課題
マイベストは「インターネットで、最高の選択体験を実現する」を掲げ、さまざまな商品の比較・検証を自社で行いそのデータベースを元に、「選ぶ」という領域の課題を解決するサービスを提供しています。現在では、月間ユーザー数は3000万人を超えています。(例. 「ドラム式洗濯機の比較記事」)
より良い選択体験を実現するため、「比較検証する商品の追加」や「新機能の追加」を継続的に行なってきました。
一方で、その結果として 「1ページあたりのリクエスト数」と「1リクエストあたりのデータ量」が増加し、ページの表示速度の低下が問題になりはじめていました。
どのような状態を目指していたか
- 以下の条件をクリアしつつ、サービスの表示速度向上
- リアルタイム性が求められる情報がキャッシュされていない状態(リアルタイムで切り替わるようにすること)
- 特定のユーザーの情報がキャッシュされないような状態
比較検討したサービス
- Cloudflare
- Vercel
選定理由
元々アセット配信に CloudFront を利用していたため、以下の2点が決め手になりました。
- 導入に伴う工数を最小限に抑えられる点
- コスト試算がしやすく、運用コストを最小化しやすい点
※当時の課題を解決する上では高度な仕組みは不要で、 SSRのレスポンスを適切にキャッシュできる「シンプルなキャッシュ機能」 が実現できれば十分でした。
導入の成果
改善したかった課題はどれくらい解決されたか
- 導入当時、表示速度が課題になっていた負荷の高いページのレスポンス速度が約1/10まで短縮された🎉
どのような成果が得られたか
- 短時間でアクセスが集中した場合でも、サーバーへの負荷を抑えたまま、安定してリクエストを捌けるようになった
- それまでは、TV放送などでサービスが取り上げられるタイミングに合わせて、モニタリングやサーバーのスケールアップ対応を行う場合もあったが、基本的に不要になった
新たな課題
- オリジンサーバーのパフォーマンス悪化が徐々に始まった
導入に向けた社内への説明
上長・チームへの説明
導入コストとそれによって期待できる効果の概算を算出し、説明を行いました。
説明後には、以下のようなフィードバックがあったため、それらを踏まえ導入を進めました。
- 特定ユーザーの情報がキャッシュされないような仕組みを用意すること
- リアルタイム性が求められる情報がキャッシュされないようにすること
- 広告関連や期間限定のキャンペーン系の情報など
- キャッシュパージの仕組みやフローを用意しておくこと
- サービスに不具合などがあった場合、影響を最小限にするために、キャッシュを更新する仕組みが必要
活用方法
導入から1年以上が経過する中で、新たな課題も見えてきました。
新たな課題
直接的な原因ではないですが、CDNキャッシュの導入に伴い、以下のような副作用が起こりました。
副作用1. パフォーマンスの計測がしづらくなる
CDNキャッシュやSWRを導入する以前は、「オリジンサーバー」のパフォーマンスを確認すれば十分でした。 しかし、キャッシュがヒットした場合、リクエストはオリジンサーバーまで到達しなくなります。 そのため、ユーザーが実際にサービスを利用している際のパフォーマンスを計測したい場合は、CloudFrontの層までを含めてパフォーマンスを計測する必要がでてきました。
副作用2. パフォーマンス改善の優先度がどうしても下がってしまう
CDNキャッシュは非常に強力です。 そのため、オリジンサーバーのパフォーマンスが多少低下していたとしても、ユーザーへの影響は表面化しにくくなります。
結果として、オリジンサーバー側のパフォーマンス改善が後回しになりやすくなってしまいます。(というか、そもそも重要な課題として捉えづらくなる)
そして、キャッシュがヒットしない場合のパフォーマンスがどんどん悪化していきました。
対応策
運用していく中で発覚した課題の詳細やそれに対する対応策は「キャッシュ戦略改善で月間150万人のアクセスロスを防いだ話」で紹介しています。
よく使う機能
CDNキャッシュ機能
ツールの良い点
- (弊社の場合)基本的にAWSのサービスを利用しているため、親和性が高い
- シンプルながら、強力なキャッシュ機能を実現できる
ツールの課題点
- 特になし
株式会社マイベスト / Yudai Ueno
メンバー / バックエンドエンジニア
よく見られているレビュー
株式会社マイベスト / Yudai Ueno
メンバー / バックエンドエンジニア
レビューしているツール
目次
- アーキテクチャ
- 導入の背景・解決したかった問題
- 活用方法


