手元で動くアプリを公開するときに、構成と秘密情報をどう扱うかを見ます。

このページでわかること

  • 画面・APIとデータベースの配置
  • 環境変数の役割
  • 公開後も必要な確認

置き場所を分ける

v1の設計では、Next.jsの画面とAPIをVercel、認証とPostgreSQLをSupabaseに置きます。利用者のブラウザは公開された画面へアクセスし、APIが必要な処理をサーバー側で行います。

公開は終点ではない

マイグレーションの適用、動作確認、監査、エラーの調査が必要です。公開環境でデータを直接直すのではなく、履歴が残る手順で変更します。v1は学習用のため、実際の銀行サービスとして運用する前提ではありません。

公開前の順序を決める

新しい機能が新しい表や関数を使うなら、コードを公開する前にデータベース側を準備します。ただし古いコードがしばらく動いても問題ない形にしておくことが大切です。列を追加して切り替え、利用がなくなった後に古い列を削除するように段階を分けます。

「ローカルでは動いた」は、公開環境の設定、既存データ、権限、実行順序まで確認したことにはなりません。

設定を環境ごとに分ける

開発用、検証用、公開用で接続先と秘密を分けます。公開用のサービスロールキーを開発端末へむやみに置かず、ブラウザへ渡るコードに混ぜません。デモ用OTP表示のような学習向け設定も、公開時には明示的に確認します。

設定が足りないときに、危険な既定値で動き続けるより、起動や操作を止めて原因を示す方が安全な場合があります。

変更に失敗した場合

画面だけを以前の版へ戻せても、データベースの変更は簡単に巻き戻せないことがあります。公開前に変更の影響を確認し、バックアップ、復旧方法、互換性のある旧版を準備します。

特に帳簿のデータは「直前の状態に戻す」だけでは、公開後に成立した取引を消しかねません。コードの戻し方と、取引データの扱いを別々に考えます。

公開後の観測

健康確認のAPIが応答しても、送金や帳簿が正しいとは限りません。エラー率、処理時間、監査記録、照合結果を合わせて見ます。問い合わせで「送金が完了したか不明」と言われたら、リクエストIDや取引履歴から調べられることが必要です。

v1は学習用の公開構成を示します。実サービスに必要な当番体制、障害連絡、復旧訓練は別に設計する領域です。

公開設定の事前確認

必要な環境変数が欠けているときは、動くふりをして重要操作の途中で失敗するより、早く設定不足を検知した方が安全です。接続先、公開してよいキー、サーバーだけが読むキーを一覧にし、検証環境と公開環境で値を取り違えないようにします。

デモ用設定を公開環境へ持ち込まないことも確認項目です。

秘密が漏れたときの備え

秘密のキーは「公開しない」で終わりません。誤って共有された場合に交換できるか、どこで使われているか追えるか、交換中にアプリがどう動くかを考えます。強い権限のキーほど利用範囲を絞り、ブラウザのコードやログへ出さないようにします。

学習用v1の構成を公開運用へ進めるなら、鍵の更新手順を具体化する必要があります。

データの復旧を取引と分けて考える

障害時にコードを前の版へ戻しても、その間に成立した送金は消せません。バックアップから戻す場合も、どの時点の取引まで反映され、戻した後の取引をどう扱うかを決める必要があります。

帳簿の整合性を確かめる手順と、利用者へ状況を伝える手順まで含めて、復旧の計画になります。

← 前の記事次の記事 →