飽き性の頭の中
Firebase Hostingで無料枠をいつの間にか超えていたのでダウンロード量を削減してみるのサムネイル

Firebase Hostingで無料枠をいつの間にか超えていたのでダウンロード量を削減してみる

2023-10-16に公開

Gatsby.jsで生成したファイルをFirebase Hostingにデプロイすることで、このブログは運営されている。

月間数千アクセスくらいしかないので、基本的に無料枠で十分収まっていたのだが、ある日から無料枠を超えていて課金されるようになっていた。

しばらくは、誤差の範囲だろうと気にしていなかったが、あまりにも無料枠を超える日が多かったので、対策することにした。

アクセス数も特に急増したとかはないので、何かデプロイしている生成物の側に要因があると思われる。

結果的に、無料枠の範囲に収まるようになったが、厳密に原因を特定するように対策しなかったので、あくまで参考程度に見てほしい。

原因調査

費用のログを見ると、9月21日頃から費用が増えていることが分かる。

2023 10 16 21 37 55

そして対策が行われる10月の中頃まで、費用が増え続けている。

2023 10 16 21 40 38

最新月のみストレージとダウンロードの使用量が見れるので確認すると、ダウンロードが無料枠を超えていることがわかった。

2023 10 16 21 41 28

ちなみにストレージは、コードを修正したりデプロイを繰り返した日は超えることはあるが基本的には無料枠で収まっている。

2023 10 16 21 42 04

ということで、費用がかさみ始めた頃のコードの変更を見ると、

  • フォントの変更
  • リッチリンクの実装

を行っていた。

このあたりが原因でユーザーがダウンロードする必要のあるものが増えたのではないかと思われる。

そのため、バンドルサイズを削減する方法を調べつつ、対策を講じることにした。

【参考】

https://blog.tawa.me/entry/gatsby-rich-link
https://blog.tawa.me/entry/gatsby-rich-link

対策

急増した原因のことをさておいても、最適化はそろそろしないととは思っていたので、軽く調べてみた。

調べてみて、原因となりうる箇所を見渡しても、結局フォント周りの変更が一番怪しそうだったので、まずはそこを対策することにした。

フォントをGoogle Fontから取得

元々、私の場合は、fontsourceというパッケージを使って、フォントを取得して、自前で配信していた。つまり、フォントのデータもFirebase Hostingからダウンロードされていた(はず)。

よって、これをGoogle Fontから取得するように変更すれば、Firebase Hostingのダウンロード量を削減できるということである。

ただこれがダウンロード量の面からすればいい気もするが、パフォーマンスの観点からいいのかは定かではない1

しかし、とりあえず、Typography.jsでGoogle Fontから取得するように変更してみた。

その作業には、このあたりの記事を参考にさせてもらった。

結果

結果は、(すでに上のグラフでも示されていたように)無料枠の範囲に収まるようになった。

【再掲】

2023 10 16 21 40 38

まとめ

Firebase Hostingの無料枠を超えていたので、ダウンロード量を削減する方法を調べて対策した。

無料枠を超え始める前から、別のフォントをfontsouceでyarn addして同じく配信していたので、なぜ突然フォント変更とともに増え始めたのかはわからないが、とりあえず対策はできた。

「リッチリンクの実装」は、リッチリンクに必要な情報を含むJSONを新たに配信するようにしたので、影響している可能性もなくはないはずだが、それはまた別の機会に調べることにする。


  1. むしろこの観点から、Google Fontからfontsourceにする人が多いような気もしている。

関連記事

このブログの運営者

Profile picture

たわ / tawachan

1994年生まれ(29歳)

大学院修士課程(政治学)(2021-2023)

Web開発(2017-)

タグ

#福岡:39#東京:20#大学院:15#移住:10#Firebase:9#Google:9#エナジードリンク:9#ブロックチェーン:9#Apple:7#Mac:7#Next.js:7#Sony:7#Webエンジニア:7#インドネシア:6#サントリー:6#英語:6#Googleフォト:5#a7iii:5#埼玉:5#AWS:4#Anker:4#Canon:4#EOS 8000D:4#Gatsby.js:4#Kindle:4#React:4#TypeScript:4#ZONe:4#iPad mini:4#コワーキングスペース:4#セブンイレブン:4#ラーメン:4#京都:4#仮想通貨:4#修士論文:4#内省:4#民主主義:4#社会人:4#鴨川シーワールド:4#Docker:3#EOS8000D:3#Firebase Hosting:3#Google Drive:3#Lightroom:3#Markdown:3#Pixel:3#React Native:3#Soundcore:3#d.school:3#iPad:3#アマルティア・セン:3#アメリカ:3#ジャカルタ:3#スピーカー:3#デザイン思考:3#ブログ:3#レッドブル:3#ワークショップ:3#卒業旅行:3#寿司:3#旅行:3#研究:3#紅葉:3#長崎:3#API:2#ChatGPT:2#Creative:2#ECR:2#ERC20:2#Expo.io:2#Firestore:2#GPT4:2#GitHub Actions:2#Kindle Oasis:2#Kindle Paperwhite:2#Kubernetes:2#LINE:2#Mac mini:2#MacBook Pro:2#NestJS:2#Notion:2#Oculus:2#Oculus Quest:2#Pixel Buds:2#VS Code:2#Zotero:2#iPhone:2#pandoc:2#re:Invent:2#かき小屋:2#くら寿司:2#カフェ:2#ギグワーカー:2#サーチコンソール:2#シェアオフィス:2#スターバックス:2#ステーキ:2#スマートウォッチ:2#ソラマチ:2#チョコレート:2#デモクラシー:2#ニューヨーク:2#バリ島:2#パンとエスプレッソと:2#ヒュッゲ:2#ビーチ:2#ブックスタンド:2#マクドナルド:2#ミズマチ:2#モンスターエナジー:2#リモートワーク:2#ワイヤレスイヤホン:2#三千院:2#両国:2#兵庫:2#千葉:2#博多:2#堀江貴文:2#宮崎:2#就活:2#嵐山:2#川越:2#広島:2#引用:2#新宿御苑:2#日米学生会議:2#早稲田:2#有馬温泉:2#東寺:2#東浩紀:2#機械学習:2#歯医者:2#歴史:2#江ノ島:2#浅草:2#清澄白河:2#温泉:2#独自ドメイン:2#神奈川:2#神戸:2#英検:2#転職:2

©2023 tawachan All Rights Reserved.