はじめに
supabaseとVercelを使ったアプリの開発中にハマった件の共有です。
問題
supabaseとVercelを使ったアプリをサーバー上で挙動確認している時に、ページの初期表示が5秒近くかかっていることに気づきました。
確かに今開発中のアプリは割とトップページで色々やっているのですが、ローカルサーバーとローカルのsupabaseだと1秒以内でページが初期表示されるので、サーバーの設定がおかしそうだな、というところまではなんとなく考えてました。
解決方法
Vercelのリージョンがおかしかったです。
どうやらVercelの設定では、サーバーのデフォルトのリージョンがワシントンDCに設定されているようで、supabaseのリージョンは東京に設定していたので処理が重かったようです。。(リクエストの度にアメリカと日本を行き来してりゃそりゃそうなりますね…)
↓参考
というわけで、Vercelのダッシュボードから「Projects」→「Settings」タブ→「Function」から以下の通り設定します。
↑の設定を行った後、「Save」を押下して再デプロイすればリージョンが変わるはずです(ログのリクエストに「Tokyo, Japan (hnd1)」とあればOK)。
ちなみに、supabaseはプロジェクト作成時にリージョンを選択するので、東京になっていることを確認しましょう。
以上で設定は完了です。
おわりに
上記の設定をしただけで、なんと初期表示が5倍以上の速さになっていました。スゴイ。
最初は発行しているSQLが重いのかな?と思ったのですが、ローカルだと処理が高速で、サーバー上だと重くなっているということでなんとなくのアタリをつけられました。
エラー発生時は闇雲に考えるのでなく、「ここがこうなってるからこうなんだろうな」という想像力を働かせながら対応することが大事ですね!
JISOUのメンバー募集中🔥
プログラミングコーチングJISOUではメンバーを募集しています。
日本一のアウトプットコミュニティでキャリアアップしませんか?
気になる方はぜひHPからライン登録お願いします!👇