ソフトウェア
中級
ビルドキャッシュ(ビルドキャッシュ)
ビルドプロセスで生成された中間成果物(コンパイル済みオブジェクト、依存解決結果、テスト結果)を保存し、次回ビルド時に再利用する仕組み。CI/CD の高速化に不可欠。
0 回閲覧
0 いいね
2026/5/2 更新
関連タグ
CI/CD
ビルド
Turbo
Bazel
GitHub Actions
概要
ビルドキャッシュ(Build Cache)は、ビルドプロセスで生成された中間成果物(コンパイル済みオブジェクト、依存解決結果、テスト結果)を保存し、入力が変わらない限り次回ビルド時に再利用する仕組みを指す。Monorepo の規模拡大と CI/CD 実行頻度の増加により、2026 年現在の Web 開発では事実上必須の最適化手段となっている。
主要なビルドキャッシュ実装
| ツール | 形態 | 効果 |
|---|---|---|
| Turborepo Remote Cache | Vercel ホスト or 自前 | ビルド時間 70〜95% 短縮(再ビルド時) |
| Nx Cloud | Nx 専用 | 分散ビルド + キャッシュ + テスト並列化 |
| Bazel Remote Execution | Google 由来 OSS | 巨大 monorepo(Google / Meta 規模)向け |
| GitHub Actions actions/cache@v4 | GitHub Actions | node_modules / .cache を S3 互換ストレージに保存 |
| Docker BuildKit | Docker 公式 | レイヤ単位のキャッシュ。BuildKit cache mount で速度 5〜10 倍 |
| Bun の install cache | Bun 公式 | ~/.bun/install/cache/ に並列展開、npm/pnpm より圧倒的に速い |
主な特徴・仕組み
- キャッシュキー: 入力(ソース / 依存 / 環境変数)のハッシュをキーとして成果物を保存
- ローカル vs リモート: ローカルキャッシュは個人開発者用、リモートキャッシュは CI / 複数開発者で共有
- 無効化: 入力ハッシュが変わると自動的に新しいキーで再ビルド・再保存
- ヒット率: 健全な monorepo なら CI で 80% 以上、ローカル開発で 95% 以上が目安
自作 PC / 開発環境での活用
- Turborepo の Local Cache:
.turbo/配下に自動保存。ローカル開発でbun run buildの 2 回目以降が一瞬 - GitHub Actions のキャッシュ:
actions/cache@v4を使い、~/.bun/install/cacheとnode_modulesをキーbun-${{ hashFiles('bun.lockb') }}で保存 - Docker BuildKit cache mount:
RUN --mount=type=cache,target=/root/.bun bun installでレイヤ間で共有 - NVMe 高速 SSD: ローカルキャッシュ展開速度に直結。Samsung 990 Pro / WD SN850X 推奨
関連用語との違い
| 用語 | 違い |
|---|---|
| 依存キャッシュ(dependency cache) | node_modules / Cargo registry 等のパッケージダウンロード結果のみ。ビルドキャッシュはコンパイル成果物まで含む |
| CDN キャッシュ | 配信時のキャッシュ。ビルドキャッシュは生成時のキャッシュ |
| Memoization | 関数単位の結果キャッシュ。ビルドキャッシュはタスク単位 |
よくある質問
Q1: Turborepo Remote Cache は無料で使える? A: Vercel ホストは月 2GB / 100 ユーザーまで無料。自前ホスト(GCS / S3 / Cloudflare R2)なら完全無償で運用可能。
Q2: GitHub Actions のキャッシュサイズ制限は? A: リポジトリあたり 10GB。超過すると古いものから自動削除される。
Q3: ビルドキャッシュが効かないケースは?
A: タイムスタンプ依存の処理(環境変数 DATE / git rev-parse HEAD を埋め込むビルド)はキャッシュキーが毎回変わる。turbo.json の env / inputs でキャッシュ対象から除外を明示する。
まとめ
- ビルドキャッシュは CI/CD の高速化に必須 の最適化手段
- 2026 年は Turborepo / Nx / Bazel + リモートキャッシュ が Web 開発の主流
- ヒット率の目安は CI で 80%、ローカルで 95% 以上