箱のプログラミング日記。

渋谷の自社開発企業でRails書いてます。

EC2インスタンスにredisをインストール

f:id:y_hakoiri:20191102121618j:plain

業務のプロダクトにおいて、これまでredisはAWSのElastiCacheを使用していたのですが、色々と訳ありで一旦EC2インスタンス内に直接redisをインストールしてしまおうという話になったため対応しました。

やること

現状としては、webサーバーやDBサーバーなどの複数のサーバーからElastiCacheのエンドポイントを参照している形になりますが、

今回は1つのインスタンスにのみredisをインストールして、他のインスタンスからもアクセスできるようにしたいので、

  • インスタンス1にredisをインストール
  • インスタンス1に固定IPの割当
  • インスタンス1に他のインスタンスから通信ができるようssh鍵を登録

あたりの工程が必要になるかなと思います。

redisをインストール

まずは現状のElastiCacheのバージョンを確認

$ redis-server -v
3.2.11

これと同じバージョンのredisをインストールしていきます。

$ sudo yum --enablerepo=epel install redis3.2.11

インストールコマンドはこちらの記事を参考にしました。

AWS EC2にredisをインストールする - Qiita

最初、律儀にredisをインストールしてmakeして、、ってやってしまいましたがちゃんと実行コマンド用意してくれているんですね。。

$ redis-server -v
Redis server v=3.2.11 sha=00000000:0 malloc=jemalloc-3.6.0 bits=64 build=6ad59081ae574f13

問題なさそう。

ちなみにEC2インスタンスのLinuxタイプがわからなかったので

$ cat /etc/os-release
NAME="Amazon Linux AMI"
VERSION="2018.03"
ID="amzn"
ID_LIKE="rhel fedora"
VERSION_ID="2018.03"
PRETTY_NAME="Amazon Linux AMI 2018.03"
ANSI_COLOR="0;33"
CPE_NAME="cpe:/o:amazon:linux:2018.03:ga"
HOME_URL="http://aws.amazon.com/amazon-linux-ami/"

こちらで確認しました。

おそらくAWSのコンソール画面からも参照できるような気がする。

redis.confの修正

こちらの記事を参考に設定ファイルをいくつか修正しました。

$ sudo vi /etc/redis.conf
(修正前)
bind 127.0.0.1
(修正後)
#bind 127.0.0.1
コメントアウトする
(修正前)
protected-mode yes
(修正後)
protected-mode no

redisの起動

$ sudo redis-server /etc/redis.conf &
[1] 3025
$ redis-cli
127.0.0.1:6379>

成功!

今回は一旦ここまで。。

参考

AWS EC2にredisをインストールする - Qiita

RedisのReplicationをEC2で構築する - Qiita