0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Google Lighthouse で自社ドメインからの配信量を計測する

Posted at

株式会社オズビジョンのユッコ (@terra_yucco) です。

オズビジョンのメインプロダクト「ハピタス」では画像配信の一部に CDN を用いていますが、CDN は配信量に応じて課金が発生します。
一時期、表示 200 x 200 程度の枠に対して、3000 x 3000 の画像をアップしてしまったりしたことで、配信量がえげつないことになり、最近は画像のサイズに気を使う風潮が出てきました。(石を投げないで)

そんな中、2019-06-06 時点ではハピタスの LP に Youtube 動画を埋め込んでいるのですが、表現に Youtube API の制限を受けるため、自社配信にできないか?という話が出てきました。
そのため、現在の LP の配信量と、それに対してどれくらい削減できるのか?を調べるため Google Lighthouse の Chrome 拡張を導入しましたが、値の見方で色々困ったので個人的にメモしたものになります。

自社ドメインからの配信量を計測する

測定手順

  1. Chrome の拡張機能として Lighthouse をインストール
    • 今回、以下で触れているのとは別に、IP 制限をかけているページも計測したかったので拡張機能を入れました
  2. 計測したいページを Chrome で開く
  3. Generate Report を押下

image.png

測定結果

Lighthouse の結果のうち「Keep request counts low and transfer sizes small」の項目を参照しました。

image.png

疑問になったこと

Transfer size の表は転記すると以下のとおりです。

Resource Type Requests Transfer Size
Total 212 4,173 KB
Image 79 1,308 KB
Script 52 951 KB
Other 18 916 KB
Font 49 826 KB
Stylesheet 8 133 KB
Document 6 39 KB
Media 0 0 KB
Third-party 146 2,915 KB

ただ、Image 以下の Transfer Size を全部足しても、Total と一致しませんでした。

公式ヘルプ

値について、公式ヘルプを見ると、Resource Type については以下のように記載がありました。

以下の表は上記サイトからの転載です。

Name Type Valid Value(s) Description
resourceType String total, document, script, stylesheet, image, media, font, other, or third-party. total measures all page resources. document measures HTML document requests. other includes any resource that does not match the other categories, including XHR or Fetch requests, and data transfers over WebSocket connections. third-party measures all resources from third-party domains.
  • total
    • すべてのページリソース
  • document
    • HTML ドキュメントのリクエスト分
  • other
    • ほかに属さないもの、XHR 通信や Web ソケットによるデータ通信も含む
  • third-party
    • third party ドメインからの全リソース

YouTube 動画はドメイン的に Third-party に入るのだろうと思いますが、実配信量はこの例で行くと 4,173 KB なのか、4,173 + 2,915 KB なのかが不明だったため (開発者ツールである程度わかるのかもしれませんが) 簡易的な HTML を作って計測をしました。

計測

簡易 HTML

<html>
<head><title>TEST</title></head>
<body>
<img src="https://img.hapitas.jp/img/images/anti_fraud/anti_fraud_bnr.png">
</body>
</html>

計測結果

ローカルの vagrant で動かしたので、画像も Third-party と判定されました。
画像は 11,371 byte、コードは見ての通り超軽量です。

なので、トータルは Third-party も含めた合算であり、自社から配信している量の近似量は Total - Third-party で計算出来そうということがわかりました。

Resource Type Requests Transfer Size
Total 2 12 KB
Image 1 11 KB
Document 1 0 KB
Stylesheet 0 0 KB
Media 0 0 KB
Font 0 0 KB
Script 0 0 KB
Other 0 0 KB
Third-party 1 11 KB

なお hapitas.jp の場合は xxx.hapitas.jp はサブドメインなので Third-party には含まれません。

Conclusion

弊社 SRE チームの活躍により CDN は以前より低価格になりましたが、それでも転送量課金があるので、エンジニアも画像サイズには気を遣う必要があります。
現状の配信量と、今回の記事には載せていませんが改善アドバイスもいろいろ記載されますので、一度は使ってみるといいのかな、と感じました。

CDN を最適化した話は、また別の機会に弊社 SRE チームが書いてくれるのではないかと期待しています :cat:

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?