Redisを本番環境で運用するとき、「Masterが落ちたら自動で切り替えてほしい」というニーズは誰でも持ちます。Redis Sentinelはその自動フェイルオーバーを担う仕組みで、Ubuntu 24.04 LTSなら標準パッケージとしてすぐに使えます。本記事では実際にDockerコンテナ(Ubuntu 24.04)でインストールから動作確認まで実行した結果を載せます。
この記事のポイント
apt install redis-server redis-sentinel一発で Redis 7.0.15 + Sentinel が入る- Sentinel は
sentinel monitor行でMasterを登録するだけで監視を開始できる quorum(仲裁数)とdown-after-milliseconds(障害検知時間)が設定の核心- 本番では Sentinel を3台以上用意してquorum=2にするのが鉄則
- Ubuntu 24.04 の Redis 7.x は 22.04 の 6.x より ACL・パフォーマンスが強化されている
Redis Sentinelとは
RedisはデフォルトではシングルMasterの構成です。Masterが落ちると、手動で再起動するか別のサーバーを昇格させる作業が必要になります。これが深夜に発生したら大変です。
Redis Sentinelはそれを自動化するコンポーネントです。Sentinelプロセスが常にMasterを監視し、「一定時間応答がない」と判断したとき、自動でReplicaをMasterに昇格させます。これを自動フェイルオーバーと呼びます。
SentinelはRedisのクラスター機能(Redis Cluster)とは別物です。クラスターがデータの水平分散を担うのに対し、SentinelはMaster1台の高可用性(HA)を担うという違いがあります。まずVPS1〜2台で運用している個人開発者には、クラスターより Sentinel のほうがシンプルで導入しやすいです。
| 機能 | Redis Sentinel | Redis Cluster |
|---|---|---|
| 目的 | Master の高可用性(HA) | データの水平分散 |
| 自動フェイルオーバー | あり | あり |
| 最小構成 | Master + Replica + Sentinel×1 | Master×3 + Replica×3(計6台) |
| 向いている用途 | VPS1〜3台の小規模本番 | 大規模・高スループット |
| 複雑さ | 低〜中 | 高 |
前提環境
- OS:Ubuntu 24.04 LTS(Noble Numbat)— Docker公式イメージ
ubuntu:24.04で実行 - Redis バージョン:7.0.15(apt からインストール)
- 検証日:2026年6月14日
注意
本記事のコマンドは Ubuntu 24.04 LTS で検証しています。Ubuntu 22.04 では Redis 6.0.16 が入ります(後述のバージョン比較表を参照)。本番では長期サポートのある Ubuntu 24.04 LTS を推奨します。
インストール手順
手順1:パッケージを更新する
Hit:1 http://archive.ubuntu.com/ubuntu noble InRelease
Get:2 http://security.ubuntu.com/ubuntu noble-security InRelease [126 kB]
Reading package lists… Done
手順2:redis-server と redis-sentinel をインストールする
Redis Sentinel は redis-sentinel パッケージに含まれています。redis-server と同時にインストールするのが便利です。
Get:5 … redis-tools amd64 5:7.0.15-1ubuntu0.24.04.4 [1166 kB]
Get:6 … redis-sentinel amd64 5:7.0.15-1ubuntu0.24.04.4 [12.2 kB]
Get:7 … redis-server amd64 5:7.0.15-1ubuntu0.24.04.4 [51.7 kB]
Setting up redis-server (5:7.0.15-1ubuntu0.24.04.4) …
Setting up redis-sentinel (5:7.0.15-1ubuntu0.24.04.4) …

インストール後に以下のファイルが自動生成されていることを確認します。
-rw-r—– 1 redis redis 106604 Apr 12 redis.conf
-rw-r—– 1 redis redis 14052 Apr 12 sentinel.conf
$ redis-server –version
Redis server v=7.0.15 sha=00000000:0 malloc=jemalloc-5.3.0 bits=64
$ redis-sentinel –version
Redis server v=7.0.15 sha=00000000:0 malloc=jemalloc-5.3.0 bits=64
redis-sentinel は実体としては Redis と同じバイナリです。--sentinel フラグまたは設定ファイルで Sentinel モードで起動します。
Ubuntu 22.04 / 24.04 バージョン比較
バージョンを選ぶ前に、どちらのUbuntuを使うべきか確認しておきましょう。実際にDockerコンテナで apt-cache show を実行して確認しました。

Ubuntu 22.04 は Redis 6.0.16、Ubuntu 24.04 は Redis 7.0.15 が入ります。Redis 7.x は ACL(アクセスコントロールリスト)の強化、パフォーマンス改善、新しいコマンドが追加されており、新規で構築するなら Ubuntu 24.04 + Redis 7.x を選ぶのが正解です。
sentinel.conf の設定
インストール後に /etc/redis/sentinel.conf が生成されています。このファイルを編集して Sentinel を設定します。
デフォルト設定の確認
実際に Ubuntu 24.04 のコンテナで確認したデフォルト値(コメント行を除く)が以下です。

port 26379
daemonize yes
pidfile /run/sentinel/redis-sentinel.pid
logfile /var/log/redis/redis-sentinel.log
dir /var/lib/redis
# Master の監視設定
sentinel monitor mymaster 127.0.0.1 6379 2
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000
sentinel deny-scripts-reconfig yes
重要な設定値を解説します。
| 設定キー | デフォルト値 | 意味 |
|---|---|---|
port |
26379 | Sentinel が待ち受けるポート(デフォルト 26379) |
sentinel monitor |
— (要設定) | 名前 IPアドレス ポート quorum の形式で Master を登録する |
quorum |
2(デフォルト設定) | フェイルオーバーを開始する判断に必要な Sentinel の合意数 |
down-after-milliseconds |
30000(30秒) | Master が応答しない時間がこの値を超えたら障害と判断 |
failover-timeout |
180000(3分) | フェイルオーバー完了のタイムアウト時間 |
parallel-syncs |
1 | フェイルオーバー後に新Masterと同期する Replica の並列数 |
quorum の考え方
quorum(クォーラム)はフェイルオーバーの「仲裁数」です。Sentinel が3台いて quorum=2 のとき、2台以上が「Masterは落ちた」と判断したときにフェイルオーバーを開始します。Sentinel が1台だと quorum=1 で動作しますが、本番ではネットワーク分断(スプリットブレイン)を防ぐために3台・quorum=2が推奨されます。
本番向け sentinel.conf の設定例
Masterサーバーのアドレスを実際のIPに変更し、down-after-milliseconds を短くすることで障害検知を速くできます。
daemonize yes
logfile /var/log/redis/redis-sentinel.log
# ← Master サーバーのIPに変更(192.168.1.10 は例)
sentinel monitor mymaster 192.168.1.10 6379 2
# 10秒応答なしで障害と判断(デフォルト 30秒 を短縮)
sentinel down-after-milliseconds mymaster 10000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 60000
sentinel deny-scripts-reconfig yes
Replica の設定(redis.conf)
Masterに対してデータを同期するReplicaの設定も確認しましょう。Replicaの /etc/redis/redis.conf に以下を追記します。
replicaof 192.168.1.10 6379
# 任意:Replica を読み取り専用にする(デフォルトで yes)
replica-read-only yes
Sentinel + Replica の動作確認
Sentinel を起動する
設定ファイルを編集したら、systemctl で Sentinel を起動します。
$ sudo systemctl enable redis-sentinel
Created symlink /etc/systemd/system/redis.target.wants/redis-sentinel.service
$ sudo systemctl status redis-sentinel
● redis-sentinel.service – Advanced key-value store
Loaded: loaded (/lib/systemd/system/redis-sentinel.service; enabled)
Active: active (running) since …
Sentinel の監視状態を確認する
実際にUbuntu 24.04コンテナで「Master + Replica + Sentinel」構成を起動し、sentinel masters コマンドで確認した結果です。status=ok が表示されれば Sentinel が正常にMasterを監視中です。

# Sentinel
sentinel_masters:1
sentinel_tilt:0
master0:name=mymaster,status=ok,address=127.0.0.1:6379,slaves=1,sentinels=1
$ redis-cli -p 26379 sentinel masters
name mymaster
ip 127.0.0.1
flags master
quorum 2
num-slaves 1
Master + Replica のレプリケーション確認
MasterとReplicaの接続状況も確認しましょう。実際にDockerコンテナ内でMaster(port 6379)とReplica(port 6380)を起動して確認しました。

# Replication
role:master
connected_slaves:1
slave0:ip=127.0.0.1,port=6380,state=online,offset=156,lag=0
master_failover_state:no-failover
repl_backlog_active:1
connected_slaves:1 が表示され、Replicaがオンラインであることが確認できました。
フェイルオーバーの仕組みと確認方法
Sentinelが実際にフェイルオーバーを行う流れは以下の通りです。
- SentinelがMasterへのPINGが
down-after-milliseconds(デフォルト30秒)応答なしを検知する - Sentinelが
SDOWN(主観的ダウン)を宣言する - quorum数(デフォルト2台)のSentinelが同意すると
ODOWN(客観的ダウン)に移行する - フェイルオーバーが開始し、ReplicaのいずれかがMasterに昇格する
- 他のReplicaは新しいMasterを指すように自動更新される
- クライアントは
sentinel get-master-addr-by-name mymasterで新しいMasterのアドレスを取得できる
フェイルオーバーをテストするには、Masterプロセスを一時停止する方法が安全です。
$ redis-cli -p 26379 sentinel failover mymaster
OK
# フェイルオーバー後に新しい Master を確認
$ redis-cli -p 26379 sentinel get-master-addr-by-name mymaster
1) “192.168.1.11” ← 旧Replicaが新Masterに昇格
2) “6379”
注意
sentinel failover コマンドは本番環境では慎重に使用してください。テスト環境でフェイルオーバーが正常に機能することを確認してから、本番設定に適用することを推奨します。
サービスの自動起動設定(systemd)
本番環境では、Redis と Sentinel がサーバー再起動後に自動起動するよう設定します。
$ sudo systemctl enable redis-server
Created symlink …/redis.target.wants/redis-server.service
# Sentinel の自動起動を有効化
$ sudo systemctl enable redis-sentinel
Created symlink …/redis.target.wants/redis-sentinel.service
# 起動状態を確認
$ sudo systemctl status redis-server redis-sentinel
● redis-server.service – Advanced key-value store
Active: active (running)
● redis-sentinel.service – Advanced key-value store
Active: active (running)
よくあるエラーと解決策
①エラー:Can't open the log file: Permission denied
Sentinelのログファイルへの書き込み権限がないときに発生します。
$ sudo chmod 750 /var/log/redis/
$ sudo systemctl restart redis-sentinel
②エラー:Sentinel が Master を認識しない
sentinel.conf の sentinel monitor 行のIPアドレスが間違っているか、ファイアウォールでポート6379が塞がれている場合です。
$ redis-cli -h 192.168.1.10 -p 6379 ping
PONG
# UFW でポートを開けていない場合
$ sudo ufw allow 6379/tcp
$ sudo ufw allow 26379/tcp
③エラー:NOAUTH Authentication required
Masterに認証パスワードが設定されているのにSentinelに設定されていない場合です。sentinel.conf に以下を追記します。
sentinel auth-pass mymaster your_redis_password
④エラー:+sdown master mymaster がログに出続ける
SentinelがMasterをSDown(主観的ダウン)と判断している状態です。down-after-milliseconds の値が短すぎる、またはMasterへのネットワーク遅延が大きい場合です。
+odown master mymaster 192.168.1.10 6379 #quorum 2/2
+failover-triggered master mymaster 192.168.1.10 6379
+promoted-slave slave 192.168.1.11:6379 192.168.1.11 6379 @ mymaster …
+failover-end master mymaster 192.168.1.10 6379
この場合は down-after-milliseconds を増やすか、ネットワークの遅延を改善します。
著者コメント
本番環境での推奨構成
個人VPSで Redis Sentinel を本番運用するなら、最低でも以下の構成を推奨します。
| サーバー | 役割 | Redis ポート | Sentinel ポート |
|---|---|---|---|
| server-1 | Master + Sentinel-1 | 6379 | 26379 |
| server-2 | Replica + Sentinel-2 | 6379 | 26379 |
| server-3 | Replica + Sentinel-3(仲裁) | 6379 | 26379 |
3台構成で quorum=2 にすると、1台が落ちてもフェイルオーバーが正常に判断できます。VPS費用を抑えたい場合は、Sentinel専用の軽量サーバー(1GBプラン)を使うのも有効です。
まとめ
Ubuntu 24.04 で Redis Sentinel を設定する手順をまとめます。
apt install redis-server redis-sentinelで Redis 7.0.15 + Sentinel が一括インストールできる(2026年6月現在)- Sentinel の設定は
/etc/redis/sentinel.confのsentinel monitor行にMasterのIPとquorumを書くだけ down-after-milliseconds(デフォルト30秒)とfailover-timeout(デフォルト3分)を用途に応じて調整する- 本番では Sentinel を3台・quorum=2 にしてスプリットブレインを防ぐ
redis-cli -p 26379 INFO sentinelでstatus=okを確認すれば正常動作中- Ubuntu 24.04 の Redis 7.x は Ubuntu 22.04 の 6.x より ACL・パフォーマンスが向上しており、新規構築には 24.04 を推奨
Redis Sentinelを使えば、Masterが落ちても自動で切り替わる高可用性構成が自前VPSで実現できます。次のステップとして、VPS選びが気になる方は以下の比較記事も参考にしてください。



コメント