Redis Sentinel による高可用性構成 (master + replica + 3 Sentinel)
Redisレベル: 中級所要時間: 45〜60 分3 台のサーバーで Redis 7.2 / 8.2 または Valkey の高可用性構成をゼロから構築します。master 1 台、replica 2 台、各サーバーに Sentinel 1 つという構成です。RAM に応じた maxmemory、永続化 (RDB/AOF)、パスワード、カーネル設定、quorum とタイムアウト、計画的な failover テスト、Sentinel 対応のクライアント接続を順に設定します。最終的に、master がダウンすると数秒以内に自動で新しい master を選出する、パスワードで保護された構成になります。データが 1 台のサーバーのメモリに収まらない場合や、書き込み負荷が 1 台の master の処理能力を超える場合は Redis Cluster のガイドを参照してください。構築後の日常運用、バックアップ、ハードニングは別の Redis ガイドで扱います。
構成: サーバー 3 台: 各サーバーに Redis (master 1 + replica 2) と Sentinel
開始前の確認
- すべてのサーバーが同じオペレーティングシステムのバージョンで、最新の状態に更新されている。時刻が NTP (chrony) で同期されている。
- RAM がフォームに入力した値と一致している。swap は小さくても設定されている (fork 時の OOM 対策)。ディスクに RAM の 2 倍以上の空き容量がある (RDB/AOF の書き換え用)。
- サーバー同士が IP で通信できる (Redis の設定では IP を使用する)。
- サーバー間で …、… ポートが開いており、これらのポートを他のサービスが使用していない。
- ……サーバーからオペレーティングシステムの AppStream リポジトリ (または EPEL) …サーバーから rpms.remirepo.net と EPEL (dl.fedoraproject.org) のリポジトリ………サーバーから Ubuntu の universe リポジトリ…サーバーから packages.redis.io リポジトリ……にアクセスできる、または社内ミラーが設定されている。
- サーバーに他の Redis/Valkey がインストールされていない (バージョンの競合)。
- root または sudo 権限でログインしている。メンテナンスウィンドウが承認されている。
ガイドのフェーズ
- オペレーティングシステムの準備 (全サーバー) — ホスト名: … · システムの更新とツール · カーネル設定 (sysctl) · sysctl の設定を適用する
- インストール (全サーバー) — Remi と EPEL のリポジトリを追加する · packages.redis.io リポジトリを追加する · … ソフトウェアをインストールする
- Redis の設定 — …: … · パスワードを設定する · Redis を起動する · ファイアウォールでポートを開放する · レプリケーションを確認する
- Sentinel の設定 — …: … · Sentinel のパスワードを設定する · Sentinel を起動する · Sentinel 同士が互いを検出したことを確認する
- failover テスト — 計画的 failover (SENTINEL FAILOVER) · 全サーバーでロールを確認する · アプリケーションからの接続
- 構築後の作業 — バックアップ · 監視 · セキュリティに関する推奨事項