目的
ElastiCacheでRedisClusterを作成し接続確認を行います。
前提条件
今回はClusterモードを有効な状態で作成します。
※Clusterモードの説明に関してはこの記事では割愛させて頂きます。
こちら に記載されています。
事前準備
必要な事前準備は下記の通りになります。
※Clusterを作りながらでも、進められるのですが、今回は事前に必要な物の作成を行っておきます。
- Clusterに割り当てるサブネット、サブネットグループ
- Clusterに適応するセキュリティグループ
サブネットの作成
ElastiCacheが利用するサブネットの作成を行います。
対障害性を向上させる為に、東京リージョンの ap-northeast-1a
と ap-northeast-1c
の2つのアベイラビリティーゾーンにサブネットを構築します。
- ネームタグ: dev-session-redis-1a
- IPv4 CIDRs: 192.0.50.0/24
- ネームタグ: dev-session-redis-1c
- IPv4 CIDRs: 192.0.51.0/24
サブネットグループの作成を行います。
マネジメントコンソールのElastiCache → Subnet Groups → 「Create Subnet Group」より作成を行います。
Name、Description は分かりやすいものであれば何でも構いません。
Availability Zoneにそれぞれ先程作成したサブネットを追加して「Create」をクリックします。
以上でサブネットの準備は完了です。
セキュリティグループの作成
ElastiCache用にセキュリティグループの作成を行います。
インバウンドルールで接続元からの6379ポートを空けておきます。
Clusterの作成(本題)
ここからようやく本題です。
マネジメントコンソールのElastiCache → Redis → 「Create」より作成を行います。
Cluster engine: Redis
Cluster Mode enabled (Scale Out): チェックを入れる
Name、Description は分かりやすいものであれば何でも構いません。
Subnet Groupには先程作成したサブネットグループを指定します。
その他は下記画像の通りに入力して下さい。(ほぼデフォルト設定のハズ)
Multi-AZ with Auto-Failover: チェックを入れます。(というかCluster Mode enabled (Scale Out)にチェックを入れた時点でチェック済になっているハズ)
Slots and keyspaces: [Equal distribution]
Availability zone(s): [No preference]
Security groups: 先程作成したセキュリティグループを指定
Import data to cluster: 空
Backup: デフォルトのまま ※本格的に運用する際は要件に合わせて設定して下さい。
Maintenance: デフォルトのまま ※これも実運用の際は要件に合わせて設定して下さい。
ちなみにこれらのパラメータは 公式ドキュメント に解説がありますので、本格運用される場合は目を通しておく事をオススメします。
ここまでで全てのパラメータの設定が完了したので「Create」をクリックすると作成が開始されます。
作成すると下記のような画面になります。
しばらくするとステータスが「available」になり、利用出来る状態となります。
動作確認
作成したClusterに接続出来るサーバにログインを行い redis-cli
で動作確認を行います。
作成したサーバを選択し、Configuration Endpoint を確認すると接続用のホスト名が分かります。
ここでは dev-sessions.abcde9.clustercfg.apne1.cache.amazonaws.com
が接続用のホストだとします。
redis-cli -h dev-sessions.abcde9.clustercfg.apne1.cache.amazonaws.com -c
SET test "testValue"
-> Redirected to slot [6918] located at 192.0.51.155:6379
OK
192.0.51.155:6379>
GET test
"testValue"
DEL test
(integer) 1
GET test
(nil)
※余談ですが、FLUSHALL
で全てのデータを削除出来ますので、テストデータを一度キレイにしたい場合は FLUSHALL
を実行すれば大丈夫です。
無論、運用中のサーバに対して実行すると全てのデータが消えてしまうので注意して下さい。
まとめ
あっさりとRedisClusterを立ち上げる事が出来ました。
本格運用の際にはまだまだ考慮すべき点は多いですが、取っ掛かりとしてこの記事が参考になれば幸いです。
最後まで読んで頂きありがとうございました。