レプリカを使用した Redis クラスターのスケールダウン - Redis 用 Amazon ElastiCache

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

レプリカを使用した Redis クラスターのスケールダウン

以下のセクションでは、レプリカノードを含む Redis (クラスターモードが無効) キャッシュクラスターをより小さいノードタイプにスケールダウンする方法について説明します。新しいより小さいノードタイプがデータとオーバーヘッドのすべてのニーズを満たすのに十分な容量であることを確認するのは、新しいクラスターを長期にわたり適切に運用するために重要です。詳細については、「Redis スナップショットを作成するのに十分なメモリがあることを確認する」を参照してください。

重要

パラメータグループが reserved-memory を使用して Redis のオーバーヘッド用のメモリを確保する場合、スケーリングを開始する前に、新しいノードタイプ用に適切な容量のメモリを確保するカスタムパラメータグループがあることを確認してください。または、reserved-memory-percent を使用するようにカスタムパラメータグループを変更し、新しいクラスターに対して、パラメータグループを使用することができます。

reserved-memory-percent を使用している場合、これを行う必要はありません。

詳細については、「予約メモリの管理」を参照してください。

トピック

    以下のプロセスでは、ElastiCache コンソールを使用して、レプリカノードを含む Redis クラスターをより小さいノードタイプにスケーリングします。

    レプリカノードを含む Redis のクラスターをスケールダウンするには (console)

    1. より小さいノードタイプがデータとオーバーヘッドのニーズを満たしていることを確認します。

    2. パラメータグループが reserved-memory を使用して Redis のオーバーヘッド用のメモリを確保する場合、新しいノードタイプ用に適切な容量のメモリを確保するカスタムパラメータグループがあることを確認してください。

      または、reserved-memory-percent を使用するよう、カスタムパラメータグループを変更できます。詳細については、「予約メモリの管理」を参照してください。

    3. AWS マネジメントコンソール にサインインし、https://console.aws.amazon.com/elasticache/ にある ElastiCache コンソールを開きます。

    4. クラスターのリストから、スケールダウンするクラスターを選択します。このクラスターは、Clustered Redis エンジンではなく Redis エンジンを実行している必要があります。

    5. [Modify] を選択します。

    6. [Modify Cluster] ウィザードで:

      1. [ノードのタイプ] リストから、スケールダウンするノードタイプを選択します。

      2. reserved-memory を使用してメモリを管理している場合、[Parameter Group] リストから新しいノードタイプのために適切な容量のメモリを確保するカスタムパラメータグループを選択します。

    7. スケールダウンプロセスをすぐに実行する場合は、[すぐに適用] チェックボックスをオンにします。[すぐに適用] チェックボックスを選択しないままにすると、スケールダウンプロセスはこのクラスターの次のメンテナンスウィンドウ中に実行されます。

    8. [Modify] を選択します。

    9. クラスターのステータスが [modifying] から [available] に変わると、クラスターは新しいノードタイプにスケーリングされます。アプリケーションでエンドポイントを更新する必要はありません。

    次のプロセスでは、AWS CLI を使用して、レプリケーショングループを現在のノードタイプから新しいより小さいノードタイプにスケールします。このプロセス中のRedis 用 ElastiCache新しいノードを参照するように DNS エントリを更新します。このため、アプリケーションのエンドポイントを更新する必要はありません。Redis 5.0.5 以降では、クラスターがオンラインのままで受信リクエストを処理している間に、自動フェイルオーバー対応クラスターをスケーリングできます。バージョン 5.0.4 以前では、DNS エントリが更新されている間、以前のバージョンのプライマリノードからの読み取りと書き込みが短時間中断することがあります。

    ただし、リードレプリカキャッシュクラスターからの読み取りは中断されません。

    より小さいノードタイプへのスケールダウンにかかる時間はノードタイプと現在のキャッシュクラスターのデータ量によって異なります。

    Redis レプリケーショングループをスケールダウンするには (AWS CLI)

    1. 次のパラメータを使用して AWS CLI list-allowed-node-type-modifications コマンドを実行することで、スケールダウンできるノードタイプを確認します。

      • --replication-group-id – レプリケーショングループの名前。すべてのレプリケーショングループではなく特定のレプリケーショングループの定義を表示するには、このパラメータを使用します。

      Linux, macOS, or Unix 用:

      aws elasticache list-allowed-node-type-modifications \ --replication-group-id my-repl-group

      Windows の場合:

      aws elasticache list-allowed-node-type-modifications ^ --replication-group-id my-repl-group

      このオペレーションからの出力は以下のような JSON 形式になります。

      { "ScaleDownModifications": [ "cache.m3.2xlarge", "cache.m3.large", "cache.m3.xlarge", "cache.m4.10xlarge", "cache.m4.2xlarge", "cache.m4.4xlarge", "cache.m4.large", "cache.m4.xlarge", "cache.r3.2xlarge", "cache.r3.4xlarge", "cache.r3.8xlarge", "cache.r3.large", "cache.r3.xlarge" ] }

      詳細については、「」を参照してください。list-allowed-node-type-modifications()AWS CLIリファレンス

    2. 以下のパラメーターを指定して AWS CLI modify-replication-group コマンドを使用することで、現在のレプリケーショングループを新しいノードタイプにスケールアップします。

      • --replication-group-id – レプリケーショングループの名前。

      • --cache-node-type – このレプリケーショングループのキャッシュクラスターの新しいより小さいノードタイプ。この値は、手順 1 で list-allowed-node-type-modifications コマンドによって返されるインスタンスタイプのいずれかであることが必要です。

      • --cache-parameter-group-name – (オプション) reserved-memory を使用してクラスターの予約メモリを管理する場合は、このパラメーターを使用します。新しいノードタイプ用の適切な容量のメモリを確保するカスタムキャッシュパラメータグループを指定します。reserved-memory-percent を使用している場合は、このパラメータを省略できます。

      • --apply-immediately – スケールアッププロセスがすぐに適用されるようにします。スケールアップオペレーションを次のメンテナンス期間に延期するには、--no-apply-immediately を使用します。

      Linux, macOS, or Unix 用:

      aws elasticache modify-replication-group \ --replication-group-id my-repl-group \ --cache-node-type cache.t2.small \ --cache-parameter-group-name redis32-m3-2xl \ --apply-immediately

      Windows の場合:

      aws elasticache modify-replication-group ^ --replication-group-id my-repl-group ^ --cache-node-type cache.t2.small ^ --cache-parameter-group-name redis32-m3-2xl \ --apply-immediately

      このコマンドからの出力は以下のような JSON 形式になります。

      {"ReplicationGroup": { "Status": "available", "Description": "Some description", "NodeGroups": [ { "Status": "available", "NodeGroupMembers": [ { "CurrentRole": "primary", "PreferredAvailabilityZone": "us-west-2b", "CacheNodeId": "0001", "ReadEndpoint": { "Port": 6379, "Address": "my-repl-group-001.8fdx4s.0001.usw2.cache.amazonaws.com" }, "CacheClusterId": "my-repl-group-001" }, { "CurrentRole": "replica", "PreferredAvailabilityZone": "us-west-2c", "CacheNodeId": "0001", "ReadEndpoint": { "Port": 6379, "Address": "my-repl-group-002.8fdx4s.0001.usw2.cache.amazonaws.com" }, "CacheClusterId": "my-repl-group-002" } ], "NodeGroupId": "0001", "PrimaryEndpoint": { "Port": 6379, "Address": "my-repl-group.8fdx4s.ng.0001.usw2.cache.amazonaws.com" } } ], "ReplicationGroupId": "my-repl-group", "SnapshotRetentionLimit": 1, "AutomaticFailover": "disabled", "SnapshotWindow": "12:00-13:00", "SnapshottingClusterId": "my-repl-group-002", "MemberClusters": [ "my-repl-group-001", "my-repl-group-002", ], "PendingModifiedValues": {} } }

      詳細については、「」を参照してください。modify-replication-group()AWS CLIリファレンス

    3. --apply-immediately パラメーターを使用した場合、以下のパラメータを使用して AWS CLI describe-replication-group コマンドを使用することで、レプリケーショングループのステータスをモニタリングします。ステータスが modifying から available に変わると、スケールダウンした新しいレプリケーショングループへの書き込みを開始できます。

      • --replication-group-id – レプリケーショングループの名前。すべてのレプリケーショングループではなく特定のレプリケーショングループの定義を表示するには、このパラメータを使用します。

      Linux, macOS, or Unix 用:

      aws elasticache describe-replication-group \ --replication-group-id my-replication-group

      Windows の場合:

      aws elasticache describe-replication-groups ^ --replication-group-id my-replication-group

      詳細については、「」を参照してください。replication-group()AWS CLIリファレンス

    以下のプロセスでは、ElastiCache API を使用して、レプリケーショングループをその現在のノードタイプから新しいより小さいノードタイプにスケーリングします。このプロセス中のRedis 用 ElastiCache新しいノードを参照するように DNS エントリを更新します。このため、アプリケーションのエンドポイントを更新する必要はありません。Redis 5.0.5 以降では、クラスターがオンラインのままで受信リクエストを処理している間に、自動フェイルオーバー対応クラスターをスケーリングできます。バージョン 5.0.4 以前では、DNS エントリが更新されている間、以前のバージョンのプライマリノードからの読み取りと書き込みが短時間中断することがあります。ただし、リードレプリカキャッシュクラスターからの読み取りは中断されません。

    より小さいノードタイプへのスケールダウンにかかる時間はノードタイプと現在のキャッシュクラスターのデータ量によって異なります。

    Redis レプリケーショングループをスケールダウンするには (ElastiCache API)

    1. 以下のパラメータを指定して ElastiCache API ListAllowedNodeTypeModifications アクションを使用することで、スケールダウンできるノードタイプを調べます。

      • ReplicationGroupId – レプリケーショングループの名前。すべてのレプリケーショングループではなく特定のレプリケーショングループの定義を表示するには、このパラメータを使用します。

      https://elasticache.us-west-2.amazonaws.com/ ?Action=ListAllowedNodeTypeModifications &ReplicationGroupId=MyReplGroup &Version=2015-02-02 &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20150202T192317Z &X-Amz-Credential=<credential>

      詳細については、「」を参照してください。ListAllowedNodeTypeModifications()Amazon ElastiCacheAPI リファレンス

    2. 以下のパラメータを指定して ModifyRedplicationGroup ElastiCache API アクションを使用することで、現在のレプリケーショングループを新しいノードタイプにスケールアップします。

      • ReplicationGroupId – レプリケーショングループの名前。

      • CacheNodeType – このレプリケーショングループのキャッシュクラスターの新しいより小さいノードタイプ。この値は、手順 1 で ListAllowedNodeTypeModifications アクションによって返されるインスタンスタイプのいずれかであることが必要です。

      • CacheParameterGroupName – (オプション) reserved-memory を使用してクラスターの予約メモリを管理する場合は、このパラメーターを使用します。新しいノードタイプ用の適切な容量のメモリを確保するカスタムキャッシュパラメータグループを指定します。reserved-memory-percent を使用している場合は、このパラメータを省略できます。

      • ApplyImmediately – スケールアッププロセスがすぐに適用されるようにするには、true に設定します。スケールダウンプロセスを次のメンテナンスウィンドウに延期するには、ApplyImmediately=false を使用します。

      https://elasticache.us-west-2.amazonaws.com/ ?Action=ModifyReplicationGroup &ApplyImmediately=true &CacheNodeType=cache.m3.2xlarge &CacheParameterGroupName=redis32-m3-2xl &ReplicationGroupId=myReplGroup &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20141201T220302Z &Version=2014-12-01 &X-Amz-Algorithm=&AWS;4-HMAC-SHA256 &X-Amz-Date=20141201T220302Z &X-Amz-SignedHeaders=Host &X-Amz-Expires=20141201T220302Z &X-Amz-Credential=<credential> &X-Amz-Signature=<signature>

      詳細については、「」を参照してください。ModifyReplicationGroup()Amazon ElastiCacheAPI リファレンス

    3. ApplyImmediately=true を使用した場合、以下のパラメータを指定して ElastiCache API DescribeReplicationGroups アクションを使用することで、レプリケーショングループのステータスをモニタリングします。ステータスが modifying から available に変わると、スケールダウンした新しいレプリケーショングループへの書き込みを開始できます。

      • ReplicationGroupId – レプリケーショングループの名前。すべてのレプリケーショングループではなく特定のレプリケーショングループの定義を表示するには、このパラメータを使用します。

      https://elasticache.us-west-2.amazonaws.com/ ?Action=DescribeReplicationGroups &ReplicationGroupId=MyReplGroup &Version=2015-02-02 &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20150202T192317Z &X-Amz-Credential=<credential>

      詳細については、「」を参照してください。DescribeReplicationGroups()Amazon ElastiCacheAPI リファレンス