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
retty_image-optimizer_yamagoya2018
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
jp_taku2
October 24, 2018
Technology
2
1.3k
retty_image-optimizer_yamagoya2018
jp_taku2
October 24, 2018
Tweet
Share
More Decks by jp_taku2
See All by jp_taku2
Retty tech night 2017 Infra
jp_taku2
0
1k
Rettyの分析基盤について --データ分析基盤Night #1--
jp_taku2
6
4.8k
Other Decks in Technology
See All in Technology
VSCode中心だった自分がターミナル沼に入門した話
sanogemaru
0
850
GitHub Advanced Security × Defender for Cloudで開発とSecOpsのサイロを超える: コードとクラウドをつなぐ、開発プラットフォームのセキュリティ
yuriemori
1
110
開発チームとQAエンジニアの新しい協業モデル -年末調整開発チームで実践する【QAリード施策】-
kaomi_wombat
0
270
パワポ作るマンをMCP Apps化してみた
iwamot
PRO
0
240
Microsoft Fabricで考える非構造データのAI活用
ryomaru0825
0
480
AI時代のIssue駆動開発のススメ
moongift
PRO
0
300
Zephyr(RTOS)でARMとRISC-Vのコア間通信をしてみた
iotengineer22
0
100
Why we keep our community?
kawaguti
PRO
0
340
OCI技術資料 : ロード・バランサ 概要 - FLB・NLB共通
ocise
4
27k
来期の評価で変えようと思っていること 〜AI時代に変わること・変わらないこと〜
estie
0
120
【Oracle Cloud ウェビナー】データ主権はクラウドで守れるのか?NTTデータ様のOracle Alloyで実現するソブリン対応クラウドの最適解
oracle4engineer
PRO
3
120
20260326_AIDD事例紹介_ULSC.pdf
findy_eventslides
0
200
Featured
See All Featured
We Are The Robots
honzajavorek
0
200
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.8k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
78
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
300
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
64
54k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
170
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
140
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
160
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
100
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.5k
Designing for Timeless Needs
cassininazir
0
180
Transcript
Rettyにおける画像変換について Takumi Suzuki (@jp_taku2)
自己紹介 Retty すずたく @jp_taku2 2014.4 オールアバウト 新卒入社 2016.8 Retty 入社
インフラを主にやっています。
日本最大級の実名グルメサービス「Retty」 実名グルメサービス「 Retty」は、「信頼できる人からお店探しができる」グルメサービスとして、 2011年6月サービス開始以降、 利用者に実際行ったお店のオススメ情報を投稿していただく形で運営しています。 実名制の投稿、オススメの口コミ、周囲への拡散の仕組み など、スマートフォン時代のグルメサービスのスタンダードとしての特徴を兼ね備えたサービスとなっております。 (ご参考)Rettyのサービスコンセプト → https://retty.me/announce/philosophy/
スマホ時代の実名グルメサービス「Retty」 月間利用者数3,000万人突破
好みの合う人や達人のオススメ、 近くの人気店から探せるアプリとして支持を拡大
agenda 1. Rettyにおける画像利用 a. 従来の画像変換について b. 移行検討になった課題 2. サービス比較 a.
Image Optimizer b. ImageFlux c. Image Manager 3. 移行 a. 方法 b. 結果 4. まとめ
Rettyにおける画像利用
• web ◦ 店舗ページ ◦ エリアページ ◦ まとめページ • app
◦ タイムライン ◦ 店舗ページ ほぼ全てのページで利用 Origin画像数:約1500万枚 Rettyで使用されている画像
従来の画像変換について
従来の画像変換 第1期 ▪ 4つのテンプレートサイズの画像を用意 ▪ 原則全てのページでこれを使用する。
従来の画像変換 第2期 ▪ ImageMagick+Nginxで画像変換を行う ▪ webの一部のみ適用
従来の画像変換 第3期 ▪ 第3期 ✓ webをJavaScriptによる動的画像サイズ指定に変更 ✓ 第2期のものをWeb全展開(サーバー台数:4台→45台) ✓ アプリ全展開
✓ webp対応
発生した問題① ▪ 想定されていない利用による高負荷 ✓ 全展開して使用したことにより発生 ▪ 変換対象画像の多様化 ✓ JavaScriptにより動的画像サイズ変更により発生 ▪
画像レスポンス速度の低下 ✓ 多様なサイズ変更・高負荷によりレスポンス速度低下
発生した問題② ▪ コストの爆増 ✓ c4.largeが4台→45台 ▪ 運用コストが増えた ✓ アラートが毎週なるように鳴った。 ✓
なるはいいが対応が暫定対応しかできなくなってきた。 ▪ 改善の余地がなくなった ✓ Nginx + ImageMagickのシンプルな構造のためプログラムで
サービス比較
比較したサービス ▪ Image Optimizer ✓ Fastlyによって提供されている画像配信サービス ▪ ImageFlux ✓ さくらインターネット株式会社とピクシブ株式会社が
共同で開発、提供しているクラウド画像変換サービス ▪ Image Manager ✓ アカマイ・テクノロジーズの画像変換サービス
比較項目 ▪ 変換機能の充実度 ✓ 基本:crop / resize ✓ 何かサービスに活かせそうな機能 ▪
対応URL ✓ Origin 3種 ✓ 提携サイトの画像 ▪ 移行コスト ▪ 運用コスト ✓ アラートの数が増加 ✓ アップデートによる工数増加 ▪ 費用コスト ✓ 現状よりは下げたい
比較表 サービス名 従来の画像 変換 Image Optimizer (Fastly) ImageFlux (Sakura) Image
Manager (Akamai) 機能充実度 3 4 5 3 対応URL数 5 5 3 1 フォーマット 3 4 5 3 移行コスト 5 3 1 運用コスト 3 5 5 1 費用コスト 2 3 2 5 Total 3.2 4.3 3.5 2.3 ※1 (悪い) < … < 5(良い)
Image Optimizerがmatchした点 ▪ resizeの長編・短編合わせが設定できた ▪ Slackでの相談ができ、サポートが手厚かった ▪ 設定をVCLベースでGit管理にできる ▪ VCLにより、従来のPathを変更することがないため、
開発側の移行工数がテストのみで終わることができた。
移行について
移行方法 1. Custom VCLを使用して、既存のPathと新規に発生するPathを 共存させそのまま使用できるように設定した 2. 画像テスト用のページを作成し、サイト内で使用されているドメイン から、全て正常に返っているかのテストを行った 3. 全チームにテストを行ってもらい、期待通りの返り値が返っているか
テストを行った 4. DNS切り替え
移行方法① ▪ Custom VCLを使用して、既存のPathと新規に発生するPathを 共存させそのまま使用できるように設定した
移行方法② ▪ 画像テスト用のページを作成し、サイト内で使用されているドメイン から、全て正常に返っているかのテストを行った
移行方法③ ▪ 開発者にもテストを行ってもらい、期待通りの返り値が返っているか テストを行った
移行方法④ ▪ DNS切り替え ▪ DNSの設定ミスで切り替え失敗。。。 ▪ 深夜にリトライ
移行結果 1. 従来の画像変換サーバーではWebpを使用したい場合、明示的 にパラメータを渡しておく必要があったが、Fastlyを使用する事 により、UAによりAutoでwebpを返せるようになった。 2. 画像変換の変換速度によるボトルネックが消え、投稿後反映に かかる時間が小さくなった 3. 画像容量と一部レスポンス速度が改善した
移行結果① ▪ 従来の画像変換サーバーではWebpを使用したい場合、明示的にパ ラメータを渡しておく必要があったが、Fastlyを使用する事により、 UAによりAutoでwebpを返せるようになった。
移行結果② ▪ 画像変換の変換速度によるボトルネックが消え、投稿後反映にかか る時間が小さくなった ▪ 画像容量とレスポンス速度が安定しました
発生した課題
課題だった所 ▪ 最近、当初の予定よりトラフィックが多かったため、 再見積もりが必要になった。 ▪ Originアクセスが想定より多くなってしまい、 コストが余分に発生してしまった。
解決方法 ▪ 意図しないサイズで画像を使用していた場所を修正 ▪ Fastlyとの契約変更 ✓ 迅速に対応して頂き、当月適用してもらえた。
まとめ
まとめ ▪ Fastlyの移行までのサポートが手厚かった。 ✓ 開発途中だったAPIを提供して頂けた ▪ 従来よりはコストが下がった。 ✓ ちょっと見積もりが甘かったので手放しで喜ぶほど下がらなかった。 ▪
画像クオリティ・レスポンス・容量が向上した。 ▪ 運用コストが激減した。 ✓ アラートがならずに安眠ができて最高
ご清聴ありがとうございました.