Vercel Hobbyの関数ストレージが100%になった話|main直pushの本番デプロイ履歴とRetention設定
#Vercel · #Hobby · #デプロイ · #star-moti · #Build Notes · #ブログ運用 · #インフラ
公開
更新
Vercel Hobbyの関数ストレージが100%になった話|main直pushの本番デプロイ履歴とRetention設定
star-moti の改修ログは サイト改修ハブ にまとめています。今回はインフラ側の小トラブルメモです。
Vercelから、無料チーム(Hobby)の 関数ストレージ無料枠(10GB)が100% になった、という通知が来ました。「サイトが成長しています!」みたいな明るい文面だけど、中身は ストレージ満杯アラート。放置すると、新規デプロイが止まったり失敗したりすることがあります。

結論から言うと、だいたい main にずっと直接 push し続けて、Production デプロイの履歴が積み上がった のが本体、という理解です。
1. 何が起きたのか?
- 対象: このサイトを載せている 無料チーム(Hobby)
- 通知: 関数ストレージ の無料枠 10GB が 100%
- 候補アクション: Proへアップグレード/利用の最適化・プロジェクト削除など
まず Pro 課金に飛びつく前に、履歴の掃除と保持期間の見直し で足りるか見ました。
Vercel側では、デプロイの出力や関数バンドルの保持がストレージに効きます。Deployment Storage と Functions Storage は別メーターですが、どちらも「残っているデプロイの数 × 1本あたりの大きさ」で積み上がりやすい、という感覚です。
2. なぜ Preview削除だけでは足りないのか?
最初は「Previewを消そう」と思いました。Deployments一覧を見ると、しかし 全部 Production に見える。
理由は2つあります。
- フィルタで
Environment Productionが付いていると、Productionしか出ない
× で外すと Preview があれば見える。 - star-moti は main 直push運用
記事を出すたびに本番デプロイが作られる。PRプレビューをほとんど使っていないので、履歴の大半が Production。
つまり、「Previewを消す」手順自体は正しいけど、このサイトのストレージ圧迫の主因は 古い本番デプロイの山 の可能性が高い、という話でした。
main に永遠に(というか頻繁に)push し続けた結果、というのはだいたいその理解で合っています(^^;
3. 対処の方針
| やり方 | 向き |
|---|---|
| 古い Production を手で Delete | 今すぐ枠を空けたいとき。いまの本番(一番上)は消さない |
| Deployment Retention Policy を短くする | 今後の自動掃除。数が多いときの本命 |
| 使ってないプロジェクト削除 | チームに別プロジェクトがあるとき |
| Pro課金 | 掃除してもすぐ再逼迫するときの検討 |
手削除は、公式だとだいたい「一覧 → デプロイを開く → ⋯ → Delete」で 1個ずつ になりがち。ブログ運用で履歴が大量なら、Retentionの方が楽です。
4. Retentionの設定場所(ここ)
設定は Settings を開いて、左メニューの Build and Deployment を選べば そこにあります。ページ内の Deployment Retention Policy が該当ブロックです。
導線のイメージ:

手順:
- 対象プロジェクトを開く
- Settings を開く(Overview の ⋯ メニューからも可)
- 左メニューで Build and Deployment を選ぶ
- Deployment Retention Policy までスクロールして、保持期間を短くして Save
※ 似た名前の Deployment Protection(アクセス制限)とは別物です。引っかかりやすいので注意。

今回入れた値
| 項目 | 設定 |
|---|---|
| Canceled Deployments | 1 week |
| Errored Deployments | 1 week |
| Pre-Production Deployments | 1 week |
| Production Deployments | 2 weeks |
ロールバック用に本番履歴を少し残しつつ、ストレージは抑える、というバランスです。
5. 最新の本番は消えない?
いま本番に紐づいている最新デプロイは残る 想定です。
Retentionは「古い履歴を期限後に消す」仕組みで、動いている本番を落とすためのものではありません。Hobbyだと直近の本番 Ready が数個は例外で残る、といった説明もあります。
消えたあともすぐ全部消えるわけではなく、裏側のジョブで順に処理されることがあります。Usageの数値反映も遅れることがあるので、「保存した瞬間に0%」にはならない、くらいの心づもりでOKです。
6. いま時点のまとめ
- Hobbyの関数ストレージ100%通知は、課金より先に デプロイ履歴の圧迫 を疑う
- main直push運用だと、履歴の大半が Production。Preview掃除だけでは足りないことがある
- 手削除は「今の本番以外の古いProduction」
- 本命は Settings → Build and Deployment(その中の Retention)
- 最新本番は残る。あとは期限超えから順に減っていく想定
同じように「記事を出すたびに main へ push」している個人サイト勢の、備忘録になればうれしいです(^^)