本文へスキップ
NextCode.ltd
開発記録

Vercel だけ東京にしても、まだ遅かった。データベースがムンバイにいたから

Vercel だけ東京にしても、まだ遅かった。データベースがムンバイにいたから

関数を東京に置いたのに、まだ遅い。残っていたのは、データベースまでの往復でした。

日本向けのアプリが、なんだかもっさりしている。そういう時、最初に疑うのは Vercel の実行場所でした。

Vercel の関数は、何も書かないと アメリカ東海岸(iad1) で動きます。日本からの通信は、まず太平洋を渡る。これを東京(hnd1)に変えるだけで、驚くほど速くなる。実際、そうでした。

でも、それだけでは終わらなかった、という話です。

1まず、Vercel を東京にした

vercel.json に "regions": ["hnd1"] を1行足すだけです。short-maker というアプリで測ると、こうでした。

実行場所を東京に変えただけの結果(2026-06-30・同じ画面を測り直し)

測った所変える前東京にした後
/share(動的なページ)2.30秒◎0.38秒
/api/sales-bot0.73秒◎0.35秒

測る時の注意が1つ。静的なページやキャッシュから返るページで測ると、どこで動いていても速く見えます。必ず動的なルートに curl -sD- -o /dev/null を投げて、返事の x-vercel-id の2つ目を見ます。iad1 なら米国、hnd1 なら東京です。静的なページで測って「速い」と言ったら誤診です。

2それでも遅いアプリがあった

東京にしても、まだ遅いアプリがある。調べると、データベースが別の場所にいました。

うちの複数のアプリが、ひとつの共有の Supabase(データベースを貸してくれるサービス)を使っていました。そのリージョンを supabase projects list で見ると、ムンバイ(ap-south-1)。インドです。

関数が東京にいても、データを読むたびに東京からインドまで往復します。日本からムンバイの認証の窓口を5回叩いて測ったら、1回 0.25〜0.37秒。

3往復の数が、問題を大きくしていた

1回の往復なら、0.3秒ほどです。困るのは、往復が重なる時でした。迷子札のアプリ(NFCドッグタグ)で、タグへの書き込み1回あたりの通信を数えたら、約25往復。単純に掛け算すると 6〜9秒分になります(これは計算で、書き込み全体の時間を測った数字ではありません)。

そこで 2026-10-08、この迷子札アプリのデータだけを、東京の新しいプロジェクトへ移しています。拾った人が開くページの表示は、移す前の 0.31〜0.73秒 から、移した後の 0.20〜0.29秒 に。この日に測った数字で、今の速さを保証するものではありません。

4移し方でも、迷った

全部は移していません。ログインだけは、ムンバイのままです。配布済みの iOS アプリが、ログインの URL を中に持っているからです。アプリを更新しないと、ログインは動かせません。

データだけ東京に移し、サーバーはログインの印(トークン)の署名を、元の鍵でその場で確かめます。合わない時は拒まず、本来の確認に回す。鍵を間違えて全員を締め出す事故を避けるためです。

もう1つ。「元に戻す」が使えなくなります。Vercel の「前の版に戻す」を押すと、データの向き先もムンバイに戻って、東京で増えたデータが見えなくなる。なので、ムンバイ側の表は消さずに残す。戻すなら、差分を写してから。そう決めています。

5間違えていたこと

恥ずかしい話が1つあります。

  • 「共有のプロジェクトに、表の名前の頭に印をつけて足す」という前の決まりが、ムンバイに載せ続ける抜け道になっていました。2026-10-08 に、新しく作るものは東京だけ、ムンバイには1つも載せない、と決め直しています

6正直に言うと、まだ分からないこと

うちのアプリが全部で何本、いまも実行場所が米国のままなのかは、数えていません。東京にする決まりは全アプリが対象ですが、既存のものを1本ずつ x-vercel-id で測り直してはいません。

言えるのは、Vercel だけ東京にして安心すると、データベースが遠くに残る、ということ。関数とデータベースの両方が東京にいて、はじめて往復が最短になります。次は、いまのアプリを1本ずつ x-vercel-id で測って、結果をここに足します。ほかの作品は 制作実績、開発の記録は ブログ にまとめています。

この記事を書いた人

NextCode(沖縄県宜野湾市)は、iOSアプリ・ホームページ/LP・NFCデジタル名刺・AI業務自動化を作っている開発スタジオです。ここで書いているのは、実際に作って公開したものと、その過程で詰まったことだけです。

お問い合わせフォームは24時間受け付けています。

この記事が役に立ったらシェアしてください