Next.js セカンドインプレッション - koudenpaのブログで、書いた通りNext.jsとはしっかり付き合いはじめて日が浅いのだけれど、横目で眺めていた時期と主体的に触って感じたことからどういう構成をとるのかの考えが固まってきたので書いておく。
暫くたって見直して「とんちんかんなことを考えていたな」となるのも一興。
なお、「こんな感じで行こう」の対象は本業ではなくプライベートです。
考え方
目的
- ユーザーの体感速度向上
- システムへの負荷低減≒ホスティングコスト低減
- JavaScriptを処理しないクローラへのコンテンツ提供
この辺は当たり前のことではあるけれど、目的を見失わないように何を考えてキャッシュするのかは考えておきたい。
ポリシー
- キャッシュはシンプルに構成する
Amazonのような大手でも(大手だからこそか?)キャッシュの構成ミスで他人の情報を応答してしまうようなことがある。 そのくらいキャッシュは難しい。 そうした不測の出来事を避けつつ、キャッシュする利点を得られる落としどころを考えたい。
構成
ポリシー
ユーザー固有の情報のキャッシュは諦める形。
最新情報を表示する需要への対応
必要に応じて辺りの対応をとっていこうと思う。
想定AWS構成
Serverless Next.js Component を使わせてもらおうと考えている。
Next.jsは別にLambda@Edgeではない普通のLambdaでいい*1のだけれど、どうやらNext.js界隈はVercelを見習ってエッジで処理したい思いが強いように感じる。
感想
まぁまぁシンプルで実際的な構成になったのではないか。
雑に検索するとどうやってキャッシュコントロールするのかは分かるのだけれど、どう構成するのがいいのかはあんまり出てこない気がする。検索の仕方が悪いだけなんだろうか。
ともあれ、テキストに起こして作図したらすっきりしたので、後はこれをベースに構成して課題が出てきたら都度潰そうかと思う。
*1:制限も緩いし