Black background with a sleek gray graphic

QiitaがImgixの導入でUXを大幅改善。画像の読み込み速度向上と高品質化を実現

お客様について

Qiitaは、日本最大級のエンジニア向けナレッジ共有プラットフォームであり、ブログ記事やプロフィール画像を含む月間140万枚の画像を配信しています。しかし、従来のCDNでは高トラフィック時のパフォーマンスに課題があり、画像の読み込み遅延が発生していました。

ImgixのCDNとRuby SDK(imgix-rb)を導入することで、画像の読み込み速度を向上させ、高品質な画像配信を実現しました。

Qiitaは、2011年に海野弘成氏が創業した日本のエンジニア向けプラットフォームで、Qiita Jobs(リクルーティングサービス)やQiita Team(社内情報共有ツール)を提供しています。エンジニアコミュニティの中心的存在として、多くの技術者がQiitaを活用し、月間250万枚以上の画像をレンダリングしています。これに伴い、CDNのトラフィックは14TB以上、リクエスト数は3億回以上に達します。

‍

91%
ページ読み込み時間の改善
5倍
CDNのレスポンス速度
250万枚
月間配信画像数

課題

Imgixを導入する前は、QiitaはRuby on Railsをバックエンドに、Reactをフロントエンドに採用し、AWS CloudFront + Lambda@Edge + Camoを組み合わせたCDN構成を使用していました。動的な画像リサイズや圧縮にはURLクエリパラメータを活用していましたが、以下の問題に直面していました。

  • Lambda@Edgeでは1MB以上の画像を処理できない
  • アップロードされる画像の多くが10~20MBと大容量
  • ブラウザ判定・フォーマット変換(WebP対応)・ロスレス圧縮に時間がかかる
  • キャッシュがない画像はロード時間が1秒以上かかる

「ユーザーは最適化された画像をまったく見ていませんでした」とQiitaのプロダクト開発マネージャー・清野氏は語ります。
実際に表示される画像はサイズ・クロッピングが適切でなく、読み込みも遅い状態でした。この結果、サイト全体のパフォーマンス低下、SEO順位の低下、コンバージョン率の低下を引き起こしていました。「開発チームは画像変換を機能させるために多くの時間を費やしていました。信頼性が高く、簡単に導入できるサービスがどうしても必要だったのです」(清野氏)

また、QiitaチームはS3に保存した画像をすべて最適化することを検討しましたが、後から画像サイズを変更するたびに再最適化とURL更新が必要になるという課題がありました。内部開発での維持コストが大きすぎると判断し、SaaS型の外部サービス導入を決定しました。

‍

qiita website
「開発者コミュニティにとってベストプラクティスの一次情報源であるQiitaにとって、可能な限り高速なページ表示と最高のユーザー体験を備え、Webパフォーマンスの最先端にいることは不可欠です。」
清野様
Qiita プロダクト開発マネージャー
qiita blog

解決策

「ImgixのドキュメントとSDKは非常に直感的で、すぐに導入できました。Rendering APIも他のCDNよりはるかに堅牢です」と清野氏は語ります。

QiitaはAmazon S3にオリジナル画像を保存し、Imgixを介して動的に最適化された画像を配信しています。対象画像には、ブログ記事のグラフィック、ユーザーのアバター画像、OGP画像などが含まれます。

導入の第一歩として、Qiitaはimgix-rbを活用し、全画像にsrcset属性を適用することで、静的な画像配信をやめ、レスポンシブ対応を実現しました。さらに、以下のImgixの主要機能を活用し、サイトのパフォーマンスとUXを大幅に改善しました。

Qiitaが活用したImgixの主要パラメータ

  • s:画像URLの不正改変を防ぐセキュリティレイヤーを追加
  • gif:静止画・アニメーションGIFを最適化し、サイト全体で利用
  • fm:WebP、png32、JPEGなど、非可逆・可逆・透過に対応した出力フォーマットを指定
  • q:高DPR(高解像度)向けに品質を最適化
  • fit:指定したサイズに合わせて画像を適切にリサイズ

導入効果と今後の展開

ImgixのCDNと画像変換機能により、Qiitaは大容量(1MB超)の画像を高速に配信できるようになりました。
あるテストでは、23MBの画像を3.51秒で完全ロード(データ量は約23分の1に圧縮)することに成功しました。Imgix導入前は、同じ画像のロードに40.67秒かかっていました。

また、Imgix導入によりWebP形式の画像を200~300ミリ秒で配信できるようになり、非対応ブラウザにはプログレッシブJPEGを最適な品質で提供。ロスレス圧縮もシームレスに適用され、CDNのキャッシュなしでもレスポンス速度が5倍向上(1,000ミリ秒→200ミリ秒)しました。

Qiitaは、複数行のテキストオーバーレイや複雑な合成処理も簡単に実装できるようになり、エンジニアチームの負担を大幅に削減。清野氏は「Imgixの充実したドキュメント、サンプルコード、詳細な実装例が非常に役立ちました」と評価しています。

Qiitaのエンジニアチームは、バックエンドでの画像処理に時間を費やすことなく、Imgixの機能を活用することで、より重要なプロダクト開発に集中できるようになりました。またImgixの導入により、Qiitaは画像の品質・パフォーマンスを向上させ、エンジニアコミュニティに最高のUXを提供することに成功しました。

‍

ケーススタディホームに戻る