ハイパーマッスルエンジニア

Vim、ShellScriptについてよく書く

NextAuth を使ったアプリのログイン処理を最適化:Vercel リージョンを東京に変更するだけで爆速に

NextAuth を使って認証処理を実装しているアプリで、ページアクセスからログイン状態になるまで少し時間がかかるのが気になっていた。 体感的にはアクセスから 2 秒ぐらい経ってからユーザーアイコンが表示される感じだった。

右上のユーザーアイコンが、アクセスから 2 秒ぐらい経つと表示される

調べたところ、Vercel のリージョンが原因だったことがわかったので書いていこうと思う。

Vercel のリージョンを東京に変えよう

リージョンによる通信遅延が発生するのは既知だったが、Vercel でリージョンの設定をする箇所があることを知らなかった。
Vercel > 該当のプロジェクト > Settings > Functions の「Function Region」で設定が可能。
デフォルトではワシントン D.C になっているので、ここを Tokyo に変更する。

Vercel > 該当のプロジェクト > Settings > Functions > Function Region

リージョンを変更したらアプリの再起動が必要なので、改めてデプロイする。

Tokyoに変更したら改めてデプロイ

リージョンを東京にするとセッション取得が爆速になる

リージョンを変更したときの差分が以下。2.09s かかっていたのが 722ms まで速くなった!

リージョン変更前、2秒近くかかっている

リージョンを Tokyo に変更後、722ms になった!

大体 2 倍以上速くなっていることがわかる。

体感的にもかなり速くなっていることを実感できた

終わりに

個人開発のアプリだったので、気になってはいたがまあ後でいいか〜と思い放置していた。でも調べてみると一瞬で解決することだったので、やはりこういうのは後回しにしないほうがいいなと改めて思った。ありがとう Vercel。