はじめに
RUNTEQ Advent Calendar 2025 に参加するsahoです!
みなさんは課題やアプリ開発をする前にその技術について
どれくらい調べているでしょうか?
私は、issue作成時点でぼんやりと記事を見てしっかり調べていなかったので
失敗してしまったのでそのことをお伝えしようと思います。
私の失敗
カフェSNSアプリを開発していて、投稿に画像を追加できるよう ActiveStorage を実装しました。
その後、ファイルサイズ軽量化のため JPEG や PNG をWebP に変換する処理を実装。
そして本番環境での画像保存のため、S3 と Cloudinary のどちらを使うか
ここで初めてきちんと調べました。 ← これが手遅れだったのです😅
なぜ失敗したのか?
実装前に調べていれば、WebP 変換を実装せず Cloudinary を選んでいたはず。
実装後に調べたから、すでに WebP 変換のコードが完成していて
後から変更しにくくなってしまいました。
S3 vs Cloudinary の違い
Cloudinary は公式で「サイズ、品質、解像度が自動的に最適化される」と明記されています。
つまり、Rails で WebP 変換してから Cloudinary に送ると:
Rails(WebP に変換)→ Cloudinary(さらに最適化)= 二重最適化 ❌
一方 S3 は「ストレージサービス」なので:
Rails(WebP に変換)→ S3(そのまま保存)= 最適化は1回 ✅
学んだこと:実装前の調査が大切
- 複数の選択肢がある時は、実装前に比較検討する
- 公式ドキュメントで各サービスの仕様を確認する
- 一度実装したら戻すコストは大きい
最後に
調べるのは大変ですが、実装前のたった10分の調査が
後々の作業効率を大きく左右します。
皆さんは私のような失敗をしないよう、
技術選択が必要な場面では必ず事前に調べることをおすすめします!🌟