ElastiCacheでRedisClusterを作成する

  • 0
    いいね
  • 0
    コメント

    目的

    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を立ち上げる事が出来ました。
    本格運用の際にはまだまだ考慮すべき点は多いですが、取っ掛かりとしてこの記事が参考になれば幸いです。

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