業務のプロダクトにおいて、これまで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>
成功!
今回は一旦ここまで。。