AWSのElactiCacheでRedisを導入してみた
ElastiCache(×Elastic Cache)にはmemcachedとRedisの2種類がありますが、今回はRedisの導入を取り上げます。
Redisのクラスター構築
Redisのクラスター設定
- コンソールからElastiCacheを選択
- Get Started Nowを押す
- Step 1でSelect EngineでRedisを選択してNextを押す
- Step 2でSpecify Cluster DetailsでRedisを構成するクラスターの設定を行う
Port番号は特になければデフォルト設定のままで、Replication Group Nameでクラスターの名前とReplication Group Descriptionで説明は必須項目
※Multi-AZを選択しているとNode Typeでt2.micro,t2.small,t2.mediumが選択できないので注意
Step 3でNetwork&SecurityたBackup, Maintananceの設定をしてNextを押。
Network&Securityの設定で、レプリケーションの配置はPrimaryなど互いに分散するようにAvailability Zoneに配置するようにする
Step 4のReviewで設定が正しいかを確認したらLaunch Replication Groupを選択する。Successを表示されれば、クラスターの設定が完了したこととなり、Closeで設定画面を閉じる。もし、設定に誤りがあればPreviousで戻って設定をし直す
Redisのエンドポイントの確認
Step 3でNetwork&SecurityたBackup, Maintananceの設定をしてNextを押。
Network&Securityの設定で、レプリケーションの配置はPrimaryなど互いに分散するようにAvailability Zoneに配置するようにする
Step 4のReviewで設定が正しいかを確認したらLaunch Replication Groupを選択する。Successを表示されれば、クラスターの設定が完了したこととなり、Closeで設定画面を閉じる。もし、設定に誤りがあればPreviousで戻って設定をし直す
ElastiCacheのElastiCache Clustersの項目上で表示される先ほど立ち上げたクラスターの状態のSatusがCreatingから状態が変わり作成が完了したら、Nodesの項目の1 nodeという項目を選択しエンドポイントを確認する
※Cache Clustersの画面じょうのClusterの選択で確認できるConfiguration EndpointはRedisではN/Aとなるので注意する
ファイアウォールの設定
セキュリティグループの設定でInbound Ruleを追加するなどの設定を行う。セキュリティグループでは例えば以下のような設定を行う。
タイプ: カスタムTCPルール
プロトコル: TCP
ポート範囲: 6379
送信元: 10.0.0.0/16(各自VPCの設定などに合わせる)
EC2インスタンスにRedisをインストールする
EC2インスタンス上に、remiレポジトリでRedisをインストールする。
# remiレポジトリでインストール
$ sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
$ sudo yum --enablerepo=remi install redis
(参考) epelレポジトリでもインストールできるが、バージョンは古い。
$ sudo yum --enablerepo=epel install redis
PHP用のRedisをインストール
$ sudo yum install php-redis
Redis設定ファイルの編集をする
vim /etc/redis.conf
# - bind 127.0.0.1
# + bind 0.0.0.0
サービスの起動とその設定をする
$ sudo service redis start
$ sudo chkconfig --level 35 redis on
$ sudo chkconfig --list | grep redis
以下の入力でRedisにログインできることを確認する
#ローカルでの接続テスト
redis-cli
#ElastiCacheへの接続テストは
redis-cli -h <エンドポイント>
PHPからElastiCache上のRedisに接続する
Redisには以下のようなデータ型があります
1. String
2. List
3. Set
4. Sorted Set
5. Hash
その中でSorted Setを用いた接続例を以下に示す。このSored Setは順序付き集合のことで順位を維持しながら集合を持つことができる
<?php
$redis = new Redis();
$server = '<エンドポイント>';//ローカルでテストする場合は'127.0.0.1'を指定する
$port = 6379;
$timeout = 2.5;
$redis->connect($server, $port, $timeout);
$redis->zAdd('new-order' , 20, 'aaa');
$redis->zAdd('new-order' , 10, 'ccc');
$redis->zAdd('new-order' , 15, 'fff');
$redis->zAdd('new-order' , 24, 'yyy');
$ranking = $redis->zRevRange('new-order', 0, -1);
var_dump($ranking);
以上です。
Author And Source
この問題について(AWSのElactiCacheでRedisを導入してみた), 我々は、より多くの情報をここで見つけました https://qiita.com/hayashier/items/c7b4007a7b5c739d8612著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .