この選択が変えるもの
この選択は、競合、ネットワーク、障害境界を変化させます。分離が有用なのは、運用上の利点が別のホスト、認証情報パス、復旧手順を正当化する場合だけです。
決定要因を比較する
| 要因 | 1台のVPS上のAPIとデータベース | アプリとデータベースを別VPSに分離 |
|---|---|---|
| リクエスト経路 | ローカル接続によりホスト間のネットワークホップを回避します。 | すべてのクエリがネットワーク経路とその認証に依存します。 |
| リソース競合 | API、ワーカー、データベースがCPU、RAM、ディスク活動を共有します。 | 各ホストが個別のリソース予算を持ちます。 |
| 障害境界 | 1つのホストの障害がアプリとデータベースの両方に同時に影響し得ます。 | アプリホストの障害がデータベースを停止させる必要はありませんが、サービスには両方が必要です。 |
| アクセス範囲 | 1つの管理者境界が両方のコンポーネントに到達できます。 | データベース管理はより狭いホストとネットワーク境界を使用できます。 |
| 接続計画 | ローカルプールでもAPIとワーカー全体で制限が必要です。 | プールには制限に加え、ネットワークタイムアウトとリトライの判断が必要です。 |
| 復旧 | 1回の再構築で両方の役割と互換バージョンを再構築する必要があります。 | 各リストアとアプリからデータベースへの接続を一緒にリハーサルする必要があります。 |
各オプションがその地位を得る場合
計測された重複が予備と1つの保守境界で許容できる範囲に収まる間は、小規模スタックを統合したままにします。データベースのリソース、アクセス、復旧要件が独立して重要になったら分離します。