DBAtlas · データベース運用アトラス

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) · 全サーバーでロールを確認する · アプリケーションからの接続
  • 構築後の作業 — バックアップ · 監視 · セキュリティに関する推奨事項
環境に合わせた手順プランを開く →