logo

高可用性デプロイ

同じサービスを複数インスタンスで起動し、リクエストを自動で振り分け。単一インスタンスが落ちても止まりません

PanPan
高可用性デプロイ

Zeabur が高可用性(High Availability)デプロイに対応しました。インスタンス数を増やすだけで、同じサービスが複数同時に稼働し、受信したリクエストは自動で振り分けられます。単一インスタンスが落ちてもサービスは止まりません。

高可用性とは?

ひとことで言うと、高可用性とは同じサービスのインスタンスを複数同時に動かすことです。リクエストが届くと、Zeabur がそのうちの 1 つのインスタンスへ自動で振り分けて処理します。

リクエストZeabur自動振り分けインスタンス 1 · 正常インスタンス 2 · 正常インスタンス 3 · ダウン

インスタンス 3 がダウンすると、Zeabur がトラフィックをインスタンス 1・2 へ自動で振り分け、サービスは止まりません。

これには 2 つの明確なメリットがあります。

  • 単一障害点でサービスが止まらない:あるインスタンスが落ちても、ほかのインスタンスがすぐに引き継ぐため、ユーザーはほとんど気づきません。
  • 負荷がより均等に:リクエストが各インスタンスへ均等に分散されるので、1 つのインスタンスだけに負荷が集中して、ほかは遊んでいるという状態になりません。

使い方

1. レプリカ数を設定する

サービス設定で Replicas(インスタンス数) を 2 以上にすると、Zeabur がその数だけインスタンスを起動し、トラフィックの振り分けを自動で始めます。

レプリカ数を設定

2. 各 Pod のステータスを確認する

Zeabur ダッシュボードでは、各 Pod(インスタンス)のリアルタイムなステータスを確認でき、すべてが正常に稼働しているかを把握できます。

各 Pod のステータス

3. リクエストが各インスタンスへ分散されることを確認する

API を連続で何度か叩くと、レスポンスが異なるインスタンスから返ってくるのがわかります。これがロードバランシングが動いている証拠です。

bash
$ curl https://your-service.zeabur.app/
I'm service-6a3ca3e3b0b8a7a4b0863e66-7fd4658d88-2mk9t!
 
$ curl https://your-service.zeabur.app/
I'm service-6a3ca3e3b0b8a7a4b0863e66-7fd4658d88-jwhnx!
 
$ curl https://your-service.zeabur.app/
I'm service-6a3ca3e3b0b8a7a4b0863e66-7fd4658d88-2mk9t!
 
$ curl https://your-service.zeabur.app/
I'm service-6a3ca3e3b0b8a7a4b0863e66-7fd4658d88-64sw5!

レスポンスごとに Pod 名が異なっており、リクエストが各インスタンスへ確かに分散されていることがわかります。

今後の予定

現在、TerminalFiles は特定の Pod を指定して接続することにまだ対応していません。近日中に対応を進め、デバッグや確認のために指定したインスタンスへ接続できるようにする予定です。

この機能を楽しみにしている方は、ぜひ Zeabur Support の Roadmap+1 してください!皆さまのフィードバックが開発の優先順位に直接反映されます。

ご質問があれば、いつでも Zeabur Support からお気軽にお声がけください。