vercelのassets類の手前にCDN置きたい系の話
cloudflare pagesとかopen-nextとかは一足飛びすぎるからEdge Requestだけ減らしたいみたいな話
-
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
- https://vercel.com/docs/pricing/regional-pricing
- https://vercel.com/docs/pricing/regional-pricing/hnd1
こっちみるとEdge Requestが1000万になっている
一気に全部切り替えるのがだいぶ怖いが、assetPrefixがビルド時決定なので1/2で配信とかできない。vercelプロジェクトクローン作ってマルチテナントで片方だけ、とかありえるけどちょっときついこと多い。
まず画像だけとかでも効果はあるか。
-
https://vercel.com/guides/how-to-setup-verified-proxy
vercelは推奨はしてない(とはいえポジショントークか?って思うとこあり)
Verified Proxyとしては一通り有名どころっぽいのは存在している
キャッシュをデプロイ時に消さないよ、的な話をしているの、確かにnext.js以外まで考えたりすればそれは考慮する必要のある話ではある
header設定。public/assetsが通常cacheされないので、かけておく。next/image使えるならそれはそれでアリ
headers() {
return [{
source: "/assets/:path*",
headers: [
key: "Cache-Control",
value: "public, immutable, max-age=31536000"
}]
}
- デプロイ切り替え
/_next/assets/xxxxx?dpl=yyyy とかdplのクエリがキャッシュバスター的に動く、はず。
-
https://github.com/vercel/next.js/discussions/63350
これは逆にそれで困っている話
CloudFrontでキャッシュキーを消せば良い。とある。(肌感でいうと危険じゃないそれ?という感じする)
だめだ。全のっけかえの話ばっかり出てくる