Redis (クラスターモードが有効) レプリケーショングループを最初から作成する - Amazon ElastiCache for Redis

Redis (クラスターモードが有効) レプリケーショングループを最初から作成する

Redis (クラスターモードが有効) クラスター (API/CLI: レプリケーショングループ) を作成するには、ElastiCache コンソール、AWS CLI、または ElastiCache API を使用します。Redis (クラスターモードが有効) レプリケーショングループは、1〜500 個のシャード (API/CLI: ノードグループ) で構成され、各シャードには、1 つのプライマリクラスターと、最大 5 個のリードレプリカが含まれます。シャードの数が多くレプリカの数が少ないクラスターを作成できます。クラスターあたり最大 90 ノードです。このクラスター設定は、シャード 90 個およびレプリカ 0 個からシャード 15 個およびレプリカ 5 個 (許容されるレプリカの最大数) までです。

Redis エンジンのバージョンが 5.0.6 以上の場合、ノードまたはシャードの制限は、クラスターごとに最大 500 個に増やすことができます。例えば、83 個のシャード (シャードごとに 1 つのプライマリと 5 レプリカ) と 500 個のシャード (プライマリのみでレプリカなし) の範囲で、500 個のノードクラスターを設定できます。増加に対応できる十分な IP アドレスがあることを確認してください。一般的な落とし穴として、サブネットグループ内のサブネットの CIDR 範囲が小さすぎる、またはサブネットが他のクラスターで共有され、頻繁に使用されていることが挙げられます。詳細については、「サブネットグループの作成」を参照してください。

5.0.6 未満のバージョンの場合、クラスターあたりの制限は 250 個です。

この制限の拡大をリクエストするには、「AWS のサービスの制限」を参照し、制限タイプとして [Nodes per cluster per instance type (インスタンスタイプごとのクラスターあたりのノード)] を選択します。

Redis (クラスターモードが有効) クラスターの作成 (コンソール)

Redis (クラスターモード対応) クラスターを作成するには、「Redis (クラスターモードが有効) クラスターの作成 (コンソール)」を参照してください。クラスターモード ([Cluster Mode enabled (Scale Out)]) を必ず有効にし、それぞれに最低 2 つのシャードと 1 つのレプリカノードを指定します。

Redis (クラスターモードが有効) レプリケーショングループを最初から作成する (AWS CLI)

以下の手順では、AWS CLI を使用して Redis (クラスターモードが有効) レプリケーショングループを作成します。

Redis (クラスターモードが有効) レプリケーショングループを最初から作成する場合、レプリケーショングループとそのすべてのノードを、AWS CLI create-replication-group コマンドへの 1 回の呼び出しで作成します。以下のパラメータを含めます。

--replication-group-id

作成するレプリケーショングループの名前。

Redis (クラスターモードが有効) レプリケーショングループの命名に関する制約は、次のとおりです。

  • 1~40 個の英数字またはハイフンを使用する必要があります。

  • 先頭は文字を使用する必要があります。

  • 連続する 2 つのハイフンを含めることはできません。

  • ハイフンで終わることはできません。

--replication-group-description

レプリケーショングループの説明。

--cache-node-type

レプリケーショングループの各ノードのノードタイプ。

ElastiCache では以下のノードタイプがサポートされています。一般に、現行世代のタイプは、以前の世代の同等タイプと比較した場合、メモリが多く処理能力が高くなっています。

各ノードタイプのパフォーマンスの詳細の詳細については、「Amazon EC2 インスタンスタイプ」を参照してください。

  • 汎用:

    • 現行世代:

      M6g ノードタイプ (Redis エンジンバージョン 5.0.6 以降でのみ使用可能)。

      cache.m6g.large, cache.m6g.xlarge, cache.m6g.2xlarge, cache.m6g.4xlarge, cache.m6g.8xlarge, cache.m6g.12xlarge, cache.m6g.16xlarge

      注記

      利用可能なリージョンについては、「AWS リージョン別のサポート対象ノードタイプ」を参照してください。

      M5 ノードタイプ: cache.m5.largecache.m5.xlargecache.m5.2xlargecache.m5.4xlargecache.m5.12xlargecache.m5.24xlarge

      M4 ノードタイプ: cache.m4.largecache.m4.xlargecache.m4.2xlargecache.m4.4xlargecache.m4.10xlarge

      T4g ノードタイプ (Redis エンジンバージョン 5.0.6 以降でのみ使用可能)。

      cache.t4g.micro, cache.t4g.small, cache.t4g.medium

      T3 ノードタイプ: cache.t3.microcache.t3.smallcache.t3.medium

      T2 ノードタイプ: cache.t2.microcache.t2.smallcache.t2.medium

    • 旧世代: (推奨しません。既存のクラスターは引き続きサポートされますが、これらのタイプでは新しいクラスターの作成はサポートされません。)

      T1 ノードタイプ: cache.t1.micro

      M1 ノードタイプ: cache.m1.smallcache.m1.mediumcache.m1.largecache.m1.xlarge

      M3 ノードタイプ: cache.m3.mediumcache.m3.largecache.m3.xlargecache.m3.2xlarge

  • コンピューティングの最適化:

    • 以前の世代: (推奨しません)

      C1 ノードタイプ: cache.c1.xlarge

  • データ階層化で最適化されたメモリ:

    • 現行世代:

      R6gd ノードタイプ (Redis エンジンバージョン 6.2 以降でのみ使用可能)。詳細については、「データ階層化」を参照してください。

      cache.r6gd.xlarge, cache.r6gd.2xlarge, cache.r6gd.4xlarge, cache.r6gd.8xlarge, cache.r6gd.12xlarge, cache.r6gd.16xlarge

  • メモリ最適化:

    • 現行世代:

      (R6g ノードタイプは Redis エンジンバージョン 5.0.6 以降でのみ使用可能)。

      R6g ノードタイプ: cache.r6g.largecache.r6g.xlargecache.r6g.2xlargecache.r6g.4xlargecache.r6g.8xlargecache.r6g.12xlargecache.r6g.16xlarge

      注記

      利用可能なリージョンについては、「AWS リージョン別のサポート対象ノードタイプ」を参照してください。

      R5 ノードタイプ: cache.r5.largecache.r5.xlargecache.r5.2xlargecache.r5.4xlargecache.r5.12xlargecache.r5.24xlarge

      R4 ノードタイプ: cache.r4.largecache.r4.xlargecache.r4.2xlargecache.r4.4xlargecache.r4.8xlargecache.r4.16xlarge

    • 以前の世代: (推奨しません)

      M2 ノードタイプ: cache.m2.xlargecache.m2.2xlargecache.m2.4xlarge

      R3 ノードタイプ: cache.r3.largecache.r3.xlargecache.r3.2xlargecache.r3.4xlargecache.r3.8xlarge

--data-tiering-enabled

r6gd ノードタイプを使用している場合は、このパラメータを設定します。データ階層化の必要がない場合は、--no-data-tiering-enabled を設定します。詳細については、「データ階層化」を参照してください。

--cache-parameter-group

default.redis6.x.cluster.on パラメータグループまたは default.redis6.x.cluster.on から派生したパラメータグループを指定して、Redis (クラスターモードが有効) レプリケーショングループを作成します。詳細については、「Redis 6.x パラメータの変更」を参照してください。

--engine

redis

--engine-version

3.2.4

--num-node-groups

このレプリケーショングループのノードグループの数。有効な値は 1~500 です。

注記

ノード/シャード制限は、クラスターあたり 500 まで増やすことができます。この制限の拡大をリクエストするには、「AWS サービスの制限」を参照し、制限タイプ「インスタンスタイプごとのクラスターあたりのノード」を選択します。

--replicas-per-node-group

各ノードグループのレプリカノードの数。有効な値は 0 ~ 5 です。

このレプリケーショングループで転送時または保管時の暗号化を有効にする場合は、--transit-encryption-enabled パラメータと --at-rest-encryption-enabled パラメータの一方または両方を追加し、次の条件を満たす必要があります。

  • レプリケーショングループは Redis バージョン 3.2.6 または 4.0.10.

  • レプリケーショングループは Amazon VPC で作成されている必要があります。

  • パラメータ --cache-subnet-group も含める必要があります。

  • このレプリケーショングループに対するオペレーションを実行するために必要な AUTH トークン (パスワード) 用に顧客が指定した文字列値にパラメータ --auth-token も含める必要があります。

次のオペレーションでは、3 つのノードグループおよびシャード (--num-node-groups) を持つ Redis (クラスターモードが有効) レプリケーショングループ sample-repl-group を作成します。各レプリケーショングループに 3 つのノード、1 つのプライマリ、2 つのリードレプリカ (--replicas-per-node-group) が含まれます。

Linux、macOS、Unix の場合:

aws elasticache create-replication-group \ --replication-group-id sample-repl-group \ --replication-group-description "Demo cluster with replicas" \ --num-node-groups 3 \ --replicas-per-node-group 2 \ --cache-node-type cache.m4.large \ --engine redis \ --security-group-ids SECURITY_GROUP_ID \ --cache-subnet-group-name SUBNET_GROUP_NAME>

Windows の場合:

aws elasticache create-replication-group ^ --replication-group-id sample-repl-group ^ --replication-group-description "Demo cluster with replicas" ^ --num-node-groups 3 ^ --replicas-per-node-group 2 ^ --cache-node-type cache.m4.large ^ --engine redis ^ --security-group-ids SECURITY_GROUP_ID ^ --cache-subnet-group-name SUBNET_GROUP_NAME>

前述のコマンドは、次の出力を生成します。

{ "ReplicationGroup": { "Status": "creating", "Description": "Demo cluster with replicas", "ReplicationGroupId": "sample-repl-group", "SnapshotRetentionLimit": 0, "AutomaticFailover": "enabled", "SnapshotWindow": "05:30-06:30", "MemberClusters": [ "sample-repl-group-0001-001", "sample-repl-group-0001-002", "sample-repl-group-0001-003", "sample-repl-group-0002-001", "sample-repl-group-0002-002", "sample-repl-group-0002-003", "sample-repl-group-0003-001", "sample-repl-group-0003-002", "sample-repl-group-0003-003" ], "PendingModifiedValues": {} } }

Redis (クラスターモードが有効) レプリケーショングループを最初から作成する際、次の例に示すように --node-group-configuration パラメータを使用してクラスター内の各シャードを設定することで、2 つのノードグループ (コンソール: シャード) を設定できます。1 つめのシャードは、2 つのノード、1 つのプライマリ、1 つのリードレプリカで構成されます。2 つめのシャードは、3 つのノード、1 つのプライマリ、2 つのリードレプリカで構成されます。

--node-group-configuration

各ノードグループの設定。--node-group-configuration パラメータは次のフィールドで構成されます。

  • PrimaryAvailabilityZone – このノードグループのプライマリノードがあるアベイラビリティーゾーン。このパラメータを省略すると、ElastiCache によってプライマリノードのアベイラビリティーゾーンが選択されます。

    例: us-west-2a。

  • ReplicaAvailabilityZones – リードレプリカがあるアベイラビリティーゾーンのカンマ区切りリスト。このリストのアベイラビリティーゾーンの数は、ReplicaCount の値と一致する必要があります。このパラメータを省略すると、ElastiCache によってレプリカノードのアベイラビリティーゾーンが選択されます。

    例: "us-west-2a,us-west-2b,us-west-2c"

  • ReplicaCount – このノードグループのレプリカノードの数。

  • Slots – 対象ノードグループのキースペースを指定する文字列。この文字列は次の形式になります。startKey-endKeyこのパラメータを省略すると、ElastiCache によってノードグループ間でキーが均等に割り当てられます。

    例: "0-4999"

     

次のオペレーションでは、2 つのノードグループとシャード (--num-node-groups) を持つ Redis (クラスターモードが有効) レプリケーショングループ new-group を作成します。前の例とは異なり、各ノードグループは、その他のノードグループ (--node-group-configuration) とは異なった構成になります。

Linux、macOS、Unix の場合:

aws elasticache create-replication-group \ --replication-group-id new-group \ --replication-group-description "Sharded replication group" \ --engine redis \ --snapshot-retention-limit 8 \ --cache-node-type cache.m4.medium \ --num-node-groups 2 \ --node-group-configuration \ "ReplicaCount=1,Slots=0-8999,PrimaryAvailabilityZone='us-east-1c',ReplicaAvailabilityZones='us-east-1b'" \ "ReplicaCount=2,Slots=9000-16383,PrimaryAvailabilityZone='us-east-1a',ReplicaAvailabilityZones='us-east-1a','us-east-1c'"

Windows の場合:

aws elasticache create-replication-group ^ --replication-group-id new-group ^ --replication-group-description "Sharded replication group" ^ --engine redis ^ --snapshot-retention-limit 8 ^ --cache-node-type cache.m4.medium ^ --num-node-groups 2 ^ --node-group-configuration \ "ReplicaCount=1,Slots=0-8999,PrimaryAvailabilityZone='us-east-1c',ReplicaAvailabilityZones='us-east-1b'" \ "ReplicaCount=2,Slots=9000-16383,PrimaryAvailabilityZone='us-east-1a',ReplicaAvailabilityZones='us-east-1a','us-east-1c'"

前述のオペレーションは、次の出力を生成します。

{ "ReplicationGroup": { "Status": "creating", "Description": "Sharded replication group", "ReplicationGroupId": "rc-rg", "SnapshotRetentionLimit": 8, "AutomaticFailover": "enabled", "SnapshotWindow": "10:00-11:00", "MemberClusters": [ "rc-rg-0001-001", "rc-rg-0001-002", "rc-rg-0002-001", "rc-rg-0002-002", "rc-rg-0002-003" ], "PendingModifiedValues": {} } }

使用するパラメータおよび追加情報については、AWS CLI トピックの「create-replication-group」を参照してください。

Redis (クラスターモードが有効) レプリケーショングループを最初から作成する (ElastiCache API)

以下の手順では、ElastiCache API を使用して Redis (クラスターモードが有効) レプリケーショングループを作成します。

Redis (クラスターモードが有効) レプリケーショングループを最初から作成する場合、レプリケーショングループとそのすべてのノードを、ElastiCache API CreateReplicationGroup オペレーションへの 1 回の呼び出しで作成します。以下のパラメータを含めます。

ReplicationGroupId

作成するレプリケーショングループの名前。

Redis (クラスターモードが有効) レプリケーショングループの命名に関する制約は、次のとおりです。

  • 1~40 個の英数字またはハイフンを使用する必要があります。

  • 先頭は文字を使用する必要があります。

  • 連続する 2 つのハイフンを含めることはできません。

  • ハイフンで終わることはできません。

ReplicationGroupDescription

レプリケーショングループの説明。

NumNodeGroups

このレプリケーショングループで作成するノードグループの数。有効な値は 1~500 です。

ReplicasPerNodeGroup

各ノードグループのレプリカノードの数。有効な値は 1~5 です。

NodeGroupConfiguration

各ノードグループの設定。NodeGroupConfiguration パラメータは次のフィールドで構成されます。

  • PrimaryAvailabilityZone – このノードグループのプライマリノードがあるアベイラビリティーゾーン。このパラメータを省略すると、ElastiCache によってプライマリノードのアベイラビリティーゾーンが選択されます。

    例: us-west-2a。

  • ReplicaAvailabilityZones – リードレプリカがあるアベイラビリティーゾーンのリスト。このリストのアベイラビリティーゾーンの数は、ReplicaCount の値と一致する必要があります。このパラメータを省略すると、ElastiCache によってレプリカノードのアベイラビリティーゾーンが選択されます。

  • ReplicaCount – このノードグループのレプリカノードの数。

  • Slots – 対象ノードグループのキースペースを指定する文字列。この文字列は次の形式になります。startKey-endKeyこのパラメータを省略すると、ElastiCache によってノードグループ間でキーが均等に割り当てられます。

    例: "0-4999"

     

CacheNodeType

レプリケーショングループの各ノードのノードタイプ。

ElastiCache では以下のノードタイプがサポートされています。一般に、現行世代のタイプは、以前の世代の同等タイプと比較した場合、メモリが多く処理能力が高くなっています。

各ノードタイプのパフォーマンスの詳細の詳細については、「Amazon EC2 インスタンスタイプ」を参照してください。

  • 汎用:

    • 現行世代:

      M6g ノードタイプ (Redis エンジンバージョン 5.0.6 以降でのみ使用可能)。

      cache.m6g.large, cache.m6g.xlarge, cache.m6g.2xlarge, cache.m6g.4xlarge, cache.m6g.8xlarge, cache.m6g.12xlarge, cache.m6g.16xlarge

      注記

      利用可能なリージョンについては、「AWS リージョン別のサポート対象ノードタイプ」を参照してください。

      M5 ノードタイプ: cache.m5.largecache.m5.xlargecache.m5.2xlargecache.m5.4xlargecache.m5.12xlargecache.m5.24xlarge

      M4 ノードタイプ: cache.m4.largecache.m4.xlargecache.m4.2xlargecache.m4.4xlargecache.m4.10xlarge

      T4g ノードタイプ (Redis エンジンバージョン 5.0.6 以降でのみ使用可能)。

      cache.t4g.micro, cache.t4g.small, cache.t4g.medium

      T3 ノードタイプ: cache.t3.microcache.t3.smallcache.t3.medium

      T2 ノードタイプ: cache.t2.microcache.t2.smallcache.t2.medium

    • 旧世代: (推奨しません。既存のクラスターは引き続きサポートされますが、これらのタイプでは新しいクラスターの作成はサポートされません。)

      T1 ノードタイプ: cache.t1.micro

      M1 ノードタイプ: cache.m1.smallcache.m1.mediumcache.m1.largecache.m1.xlarge

      M3 ノードタイプ: cache.m3.mediumcache.m3.largecache.m3.xlargecache.m3.2xlarge

  • コンピューティングの最適化:

    • 以前の世代: (推奨しません)

      C1 ノードタイプ: cache.c1.xlarge

  • データ階層化で最適化されたメモリ:

    • 現行世代:

      R6gd ノードタイプ (Redis エンジンバージョン 6.2 以降でのみ使用可能)。詳細については、「データ階層化」を参照してください。

      cache.r6gd.xlarge, cache.r6gd.2xlarge, cache.r6gd.4xlarge, cache.r6gd.8xlarge, cache.r6gd.12xlarge, cache.r6gd.16xlarge

  • メモリ最適化:

    • 現行世代:

      (R6g ノードタイプは Redis エンジンバージョン 5.0.6 以降でのみ使用可能)。

      R6g ノードタイプ: cache.r6g.largecache.r6g.xlargecache.r6g.2xlargecache.r6g.4xlargecache.r6g.8xlargecache.r6g.12xlargecache.r6g.16xlarge

      注記

      利用可能なリージョンについては、「AWS リージョン別のサポート対象ノードタイプ」を参照してください。

      R5 ノードタイプ: cache.r5.largecache.r5.xlargecache.r5.2xlargecache.r5.4xlargecache.r5.12xlargecache.r5.24xlarge

      R4 ノードタイプ: cache.r4.largecache.r4.xlargecache.r4.2xlargecache.r4.4xlargecache.r4.8xlargecache.r4.16xlarge

    • 以前の世代: (推奨しません)

      M2 ノードタイプ: cache.m2.xlargecache.m2.2xlargecache.m2.4xlarge

      R3 ノードタイプ: cache.r3.largecache.r3.xlargecache.r3.2xlargecache.r3.4xlargecache.r3.8xlarge

--data-tiering-enabled

r6gd ノードタイプを使用している場合は、このパラメータを設定します。データ階層化の必要がない場合は、--no-data-tiering-enabled を設定します。詳細については、「データ階層化」を参照してください。

CacheParameterGroup

default.redis6.x.cluster.on パラメータグループまたは default.redis6.x.cluster.on から派生したパラメータグループを指定して、Redis (クラスターモードが有効) レプリケーショングループを作成します。詳細については、「Redis 6.x パラメータの変更」を参照してください。

エンジン

redis

EngineVersion

6.0

このレプリケーショングループで転送時または保管時の暗号化を有効にする場合は、TransitEncryptionEnabled=true パラメータと AtRestEncryptionEnabled=true パラメータの一方または両方を追加し、次の条件を満たす必要があります。

  • レプリケーショングループは Redis バージョン 3.2.6 または 4.0.10.

  • レプリケーショングループは Amazon VPC で作成されている必要があります。

  • パラメータ CacheSubnetGroup も含める必要があります。

  • このレプリケーショングループに対するオペレーションを実行するために必要な AUTH トークン (パスワード) 用に顧客が指定した文字列値にパラメータ AuthToken も含める必要があります。

読みやすくするために、改行が追加されています。

https://elasticache.us-west-2.amazonaws.com/ ?Action=CreateReplicationGroup &CacheNodeType=cache.m4.large &CacheParemeterGroup=default.redis6.xcluster.on &Engine=redis &EngineVersion=6.0 &NumNodeGroups=3 &ReplicasPerNodeGroup=2 &ReplicationGroupDescription=test%20group &ReplicationGroupId=myReplGroup &Version=2015-02-02 &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20150202T192317Z &X-Amz-Credential=<credential>

使用するパラメータおよび追加情報については、ElastiCache API トピックの「CreateReplicationGroup」を参照してください。