ElastiCacheでRedisClusterを作成する

  • 2
    Like
  • 0
    Comment

目的

ElastiCacheでRedisClusterを作成し接続確認を行います。

前提条件

今回はClusterモードを有効な状態で作成します。
※Clusterモードの説明に関してはこの記事では割愛させて頂きます。
こちら に記載されています。

事前準備

必要な事前準備は下記の通りになります。
※Clusterを作りながらでも、進められるのですが、今回は事前に必要な物の作成を行っておきます。

  • Clusterに割り当てるサブネット、サブネットグループ
  • Clusterに適応するセキュリティグループ

サブネットの作成

ElastiCacheが利用するサブネットの作成を行います。

対障害性を向上させる為に、東京リージョンの ap-northeast-1aap-northeast-1c の2つのアベイラビリティーゾーンにサブネットを構築します。

  • ネームタグ: dev-session-redis-1a
  • IPv4 CIDRs: 192.0.50.0/24

create-subnet-a1.png

  • ネームタグ: dev-session-redis-1c
  • IPv4 CIDRs: 192.0.51.0/24

create-subnet-c1.png

サブネットグループの作成を行います。
マネジメントコンソールのElastiCache → Subnet Groups → 「Create Subnet Group」より作成を行います。

Name、Description は分かりやすいものであれば何でも構いません。
Availability Zoneにそれぞれ先程作成したサブネットを追加して「Create」をクリックします。

create-subnet-group.png

以上でサブネットの準備は完了です。

セキュリティグループの作成

ElastiCache用にセキュリティグループの作成を行います。

インバウンドルールで接続元からの6379ポートを空けておきます。

security-group1.png

security-group2.png

Clusterの作成(本題)

ここからようやく本題です。

マネジメントコンソールのElastiCache → Redis → 「Create」より作成を行います。

Cluster engine: Redis
Cluster Mode enabled (Scale Out): チェックを入れる

redis-cluster1.png

Name、Description は分かりやすいものであれば何でも構いません。
Subnet Groupには先程作成したサブネットグループを指定します。
その他は下記画像の通りに入力して下さい。(ほぼデフォルト設定のハズ)

redis-cluster2.png

Multi-AZ with Auto-Failover: チェックを入れます。(というかCluster Mode enabled (Scale Out)にチェックを入れた時点でチェック済になっているハズ)

Slots and keyspaces: [Equal distribution]
Availability zone(s): [No preference]
Security groups: 先程作成したセキュリティグループを指定

redis-cluster3.png

Import data to cluster: 空
Backup: デフォルトのまま ※本格的に運用する際は要件に合わせて設定して下さい。
Maintenance: デフォルトのまま ※これも実運用の際は要件に合わせて設定して下さい。

ちなみにこれらのパラメータは 公式ドキュメント に解説がありますので、本格運用される場合は目を通しておく事をオススメします。

redis-cluster4.png

ここまでで全てのパラメータの設定が完了したので「Create」をクリックすると作成が開始されます。

作成すると下記のような画面になります。

redis-cluster5.png

しばらくするとステータスが「available」になり、利用出来る状態となります。

redis-cluster6.png

動作確認

作成したClusterに接続出来るサーバにログインを行い redis-cli で動作確認を行います。

作成したサーバを選択し、Configuration Endpoint を確認すると接続用のホスト名が分かります。

ここでは dev-sessions.abcde9.clustercfg.apne1.cache.amazonaws.com が接続用のホストだとします。

redis-cliでログイン
redis-cli -h dev-sessions.abcde9.clustercfg.apne1.cache.amazonaws.com -c
テストデータを1件入力
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を立ち上げる事が出来ました。
本格運用の際にはまだまだ考慮すべき点は多いですが、取っ掛かりとしてこの記事が参考になれば幸いです。

最後まで読んで頂きありがとうございました。