五条ハーレムのデータベースが止まったので、NeonをやめてSupabaseへ移った
葉月一日-五日
五条ハーレムのサイトが突然使えなくなった。
原因は、サイト本体を置いているVercelではなく、データベースとして使っていたNeonだった。無料枠の利用上限に達し、プロジェクトが停止したらしい。月が替われば利用枠が更新されて復旧すると思っていたのだが、表示されていた期間を過ぎても利用状況は更新されず、データベースは止まったままだった。
最初はサイバー攻撃も疑った。サイトが急に使えなくなれば、外部から何かされたのではないかと考えるのも自然だと思う。しかし、Neon Consoleの利用期間、Compute、Network transfer、停止警告を調べ、公式Discordにも問い合わせた結果、外部からの攻撃というよりNeon内部の利用枠更新か、Vercel連携との同期に問題がある可能性が高くなった。
無料枠の更新を待てば直るという説明もあった。しかし、8月1日を過ぎ、さらに8月2日になっても復旧しなかった。サイトが使えない状態で、いつ直るかわからないサービスを待ち続けるわけにはいかない。
そこでNeonをやめ、データベースをSupabaseへ移すことにした。
移行中に一番心配だったのは、これまでの投稿や設定が全部消えてしまったのではないかということだった。ログインできなかったり、接続先を変更した直後にいつもと違う動きをしたりすると、データがなくなったように見える。しかし実際には、保存されていたデータを確認しながら接続設定を直し、Vercelの環境変数をSupabase用へ切り替えることで復旧できた。
Supabase側のPostgres接続ではTLS設定も必要だった。接続文字列を置き換えるだけでは足りず、アプリ側が新しいデータベースへ安全に接続できるよう修正し、Vercelへ再デプロイした。最終的にはサイトが再び開き、投稿や設定も利用できる状態になった。
今回の件で、無料枠が大きいかどうかだけでサービスを選ぶのは危ないと感じた。障害が起きたときに利用状況が正しく更新されるか、問い合わせ先があるか、別のサービスへ移せる構造になっているかも重要だ。
また、データベースが止まったからといって、すぐにデータが消えたと決まったわけではない。画面に何も出ない状態と、保存データそのものが失われた状態は別だ。慌ててプロジェクトを削除したり作り直したりせず、元のデータを残したまま接続先を移したのは正解だった。
Neonの件は長く振り回されたが、最終的にはSupabaseへ移行し、五条ハーレムを再び使えるようにできた。壊れたサービスの復旧を待ち続けるだけでなく、自分のサイトを守るために移転するという選択肢を持てたのは大きい。
