Redisは高性能なインメモリデータストアとして、キャッシュやデータベース、メッセージングシステムなど、さまざまな用途で広く使用されています。複数のRedisインスタンスをUbuntu 14.04にセットアップすることで、負荷分散や高可用性を実現できます。この記事では、Ubuntu 14.04における複数のRedisサーバの設定手順を詳細に解説します。
必要な準備
-
Ubuntu 14.04のインストール
Ubuntu 14.04をインストールしたサーバを用意してください。サーバはインターネットに接続されている必要があります。 -
Redisのインストール
Redisをインストールするために、まずはパッケージを更新してからインストールします。次のコマンドを実行してください。bashsudo apt-get update sudo apt-get install redis-server
-
Redisバージョンの確認
インストールが完了したら、Redisが正しくインストールされているか確認します。bashredis-server --version
正常にインストールされていれば、Redisのバージョンが表示されます。
複数のRedisインスタンスをセットアップ
-
設定ファイルのコピーと編集
UbuntuのRedisは、デフォルトでポート6379を使用しています。複数のRedisインスタンスを実行するには、各インスタンスごとに異なるポート番号を指定する必要があります。
まず、設定ファイルをコピーします。設定ファイルは通常
/etc/redis/redis.conf
にあります。bashsudo cp /etc/redis/redis.conf /etc/redis/redis_instance_1.conf
その後、コピーした設定ファイルを編集し、ポート番号と他の設定を変更します。
bashsudo nano /etc/redis/redis_instance_1.conf
ファイル内で以下の項目を変更します:
port 6379
を例えばport 6380
に変更します。daemonize no
をdaemonize yes
に変更して、バックグラウンドで実行されるようにします。pidfile /var/run/redis.pid
の行も適切に設定します(インスタンスごとに異なるファイル名を指定するのが一般的です)。
次に、同じ手順で複数のRedisインスタンスを設定します。例えば、
redis_instance_2.conf
、redis_instance_3.conf
というようにファイルをコピーし、それぞれポート番号を変更します。 -
Redisインスタンスを起動する
設定ファイルが準備できたら、各インスタンスを個別に起動します。
bashsudo redis-server /etc/redis/redis_instance_1.conf sudo redis-server /etc/redis/redis_instance_2.conf sudo redis-server /etc/redis/redis_instance_3.conf
各インスタンスはそれぞれ異なるポートで実行され、互いに干渉することなく動作します。
-
Redisのステータス確認
各インスタンスが正常に起動しているか確認するため、次のコマンドを使ってステータスを確認できます。
bashredis-cli -p 6380 ping redis-cli -p 6381 ping redis-cli -p 6382 ping
それぞれのインスタンスが
PONG
を返すことが確認できれば、正しくセットアップされています。
サービスとしての設定
Redisをシステムサービスとして起動することで、サーバ再起動時に自動でRedisが立ち上がるように設定できます。
-
サービスファイルの作成
/etc/systemd/system/
ディレクトリ内に、Redisインスタンス用のサービスファイルを作成します。例えば、redis_instance_1.service
という名前のサービスファイルを作成します。bashsudo nano /etc/systemd/system/redis_instance_1.service
サービスファイルに以下の内容を追加します:
ini[Unit] Description=Redis Instance 1 After=network.target [Service] ExecStart=/usr/bin/redis-server /etc/redis/redis_instance_1.conf ExecStop=/usr/bin/redis-cli -p 6380 shutdown Restart=always User=redis Group=redis [Install] WantedBy=multi-user.target
-
サービスの起動と有効化
サービスを起動し、システム起動時に自動的に開始されるように設定します。
bashsudo systemctl start redis_instance_1 sudo systemctl enable redis_instance_1
他のインスタンスに対しても同様の手順を繰り返します。
高可用性の設定 (オプション)
複数のRedisインスタンスをセットアップするだけでは、可用性や耐障害性の向上には限界があります。高可用性を実現するために、Redis Sentinelを使用することが一般的です。Redis SentinelはRedisクラスタの監視と自動フェイルオーバーを提供しますが、その設定には詳細な手順が必要です。
まとめ
複数のRedisインスタンスをUbuntu 14.04上でセットアップすることにより、効率的な負荷分散や可用性の向上が期待できます。各インスタンスは独立して動作し、必要に応じてサービスとして管理することが可能です。Redis Sentinelを使用することで、さらに高度な高可用性設定を実現できます。
Redisを複数インスタンスで運用することで、より高性能でスケーラブルなシステムを構築できるため、必要に応じて設定をカスタマイズしていきましょう。