Open16

vercelのassets類の手前にCDN置きたい系の話

terrierscriptterrierscript
  • https://vercel.com/docs/cdn
    Fast Data Transfer First 100 GB $0.15 per 1 GB
    Fast Origin Transfer First 10 GB $0.06 per 1 GB
    Edge Requests First 1,000,000 $2.00 per 1,000,000 Requests

  • https://aws.amazon.com/jp/cloudfront/pricing/
    Free: 最初の 1,000 万件の HTTP (S) リクエスト / 0.0120 USD per 10,000 req -> * 100 => $1.2
    インターネットへのリージョンレベルのデータ転送 (OUT) (GB あたり)
    0.060 USD per GB
    オリジンへのリージョンレベルのデータ転送 (OUT) (GB あたり)
    Free: 最初の 1 TB / 0.114 USD per 1GB

terrierscriptterrierscript

一気に全部切り替えるのがだいぶ怖いが、assetPrefixがビルド時決定なので1/2で配信とかできない。vercelプロジェクトクローン作ってマルチテナントで片方だけ、とかありえるけどちょっときついこと多い。

まず画像だけとかでも効果はあるか。

terrierscriptterrierscript
terrierscriptterrierscript

キャッシュをデプロイ時に消さないよ、的な話をしているの、確かにnext.js以外まで考えたりすればそれは考慮する必要のある話ではある

terrierscriptterrierscript

header設定。public/assetsが通常cacheされないので、かけておく。next/image使えるならそれはそれでアリ

headers() {
      return [{
        source: "/assets/:path*",
        headers: [
            key: "Cache-Control",
            value: "public, immutable, max-age=31536000"
        }]
    }