データベースフェイルオーバー用のRedisクラスターを作成する方法 - TechRepublic

データベースフェイルオーバー用のRedisクラスターを作成する方法 - TechRepublic

出版

ジャック・ウォーレンの画像

Jack Wallen が、データベースの高可用性と自動フェイルオーバーを実現する Redis クラスターを簡単にセットアップする方法を紹介します。

デスクトップコンピューターで作業する、スマートな男性ITプログラマー。ソフトウェア開発/コードライティング/ウェブサイトデザイン/データベースアーキテクチャ。技術部門オフィス。
画像: ゴロデンコフ/Adobe Stock

Redisはオープンソースのインメモリデータベースで、豊富な機能と、エンタープライズレベルのアプリやサービスに十分すぎるほどのパフォーマンスを提供します。最近、Redisを単一サーバーにデプロイする方法を紹介しました。単一サーバーでもプロジェクトには十分対応できますが、Redisのクラスタリングに伴う高度なフェイルオーバー機能を追加したいと考える可能性が高くなります。そこで、今回はまさにその点についてご紹介します。

Redis クラスターを使用すると、最大 1,000 ノードの高パフォーマンス、非同期レプリケーション、線形スケーリングを実現できます。

参照: 採用キット: データベースエンジニア (TechRepublic Premium)

Redisクラスターを適切にデプロイするには、6ノードのうち3ノードをコントローラーとして構成することが推奨されます。ここでは、このようなクラスターを以下のレイアウトで構築します。

  • コントローラ1: 192.168.1.100
  • コントローラ2: 192.168.1.101
  • コントローラ3: 192.168.1.102
  • ノード1: 192.168.1.200
  • ノード2: 192.168.1.201
  • ノード3: 192.168.1.202

元のチュートリアルに従い、すべてのマシンにRedisがインストールされていることを前提とします。これらが完了したら、クラスタリングの段階に進む準備が整います。

必要なもの

Redisが動作するマシンが6台必要です。あと必要なのはsudo権限を持つユーザーだけです。これで完了です。クラスタリングを始めましょう。

クラスターの構成方法

6台のマシンすべてで設定ファイルを編集する必要があります。以下のコマンドでファイルを開き、編集します。

sudo nano /etc/redis/redis.conf

最初に変更する必要があるのはbindオプションです。bind 127.0.0.1またはbind 0.0.0.0と記載されている箇所を、以下の様に置き換えてください。

bind SERVER

ここで、SERVER はそのマシンの IP アドレスです。つまり、コントローラ 1 は(私の例では)次のようになります。

bind 192.168.1.100

コントローラ 2 は次のようになります。

bind 192.168.1.101

などなど。

次に設定する必要がある行は次のようになります。

protected-mode no
port 7000
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 15000
appendonly yes

ファイルを保存して閉じます。

次のコマンドで各マシンの Redis を再起動します。

sudo systemctl restart redis

クラスターを初期化する方法

すべての設定が完了したら、クラスターを初期化します。これはRedis CLI commonコマンドで実行し、以下のように各IP:ポートを指定して実行する必要があります。

redis-cli --cluster create 192.168.1.100:7000 192.168.1.101:7000 192.168.1.102:7000 192.168.1.200:7000 192.168.1.201:7000 192.168.1.202:7000 --cluster-replicas 1

この--cluster-replicas 1オプションは、コントローラーごとにノードが1つだけ存在することを意味します。コマンドの出力には、各ノードと、それぞれにランダムに生成されたIDが表示されます。プロンプトが表示されたら「yes」と入力すると、クラスターが初期化されます。

各ノードのステータスを確認する場合は、次のコマンドを実行します。

redis-cli -h 192.168.1.100 -p 7000 cluster nodes

上記のコマンドの出力には、すべてのノードがリストされます。

おめでとうございます。高可用性とフェイルオーバーを実現する最初のRedisクラスターをデプロイできました。これはおそらく、これまでで最も簡単なクラスター設定になるでしょう。自動フェイルオーバーによって得られるメリットは計り知れません。

追加された Redis のパワーをお楽しみください。

Jack Wallen によるビジネス プロフェッショナル向けの最新のテクノロジー アドバイスをすべて知るには、YouTube で TechRepublic の How To Make Tech Work を購読してください。

記事をシェア

こちらもご覧ください

  • Dremio vs Snowflake: 2つの優れたETLツールを比較
  • 2022年最高のデータ復旧ソフトウェア
  • 採用キット: データアーキテクト
  • ビッグデータ:さらに読むべき記事
ジャック・ウォーレンの画像

ジャック・ウォーレン

ジャック・ウォーレンは、TechRepublic、The New Stack、Linux New Mediaなどで受賞歴のあるライターです。20年以上にわたり様々なトピックを執筆し、オープンソースの熱心な推進者でもあります。ジャック・ウォーレンに関する詳細は、ウェブサイトjackwallen.comをご覧ください。

Tagged: