Amazon Web Services ブログ

Amazon ElastiCache の更新 – Redis クラスターのオンラインサイズ変更

Amazon ElastiCache では、高速なインメモリ型データストアおよびキャッシュを簡単にセットアップできます。ElastiCache は、最も人気のある 2 種類のオープンソースのソフトウェア (Redis および Memcached) をサポートしているため、要求の高いゲームのリーダーボードやインメモリアナリティクス、大規模なメッセージングのニーズに対応できます。

本日は、Amazon ElastiCache for Redis に追加された重要な機能についてご紹介します。最大 15 のシャードを作成して、それぞれに特定のスロットセットのキーと値を保存することができます (各クラスターの厳密なスロット数は 16,384 個)。1 つのクラスターで 3.55 テラバイトのインメモリデータを保存できると同時に、1 秒あたり 2,000 万回の読み取りと 450 万回の書き込みが可能です。

オンラインのサイズ変更
実行中の Redis 用 Amazon ElastiCache クラスターでシャード数を調整しながら、そのクラスターのオンライン状態を維持してリクエストに応答できるようになりました。これにより、クラスターをオフラインにしたり、空のキャッシュを使用しなくても、トラフィックやデータのボリュームの変更に対応することができます。また、シャード数を変更せずに、実行中のクラスターを再分散してスロットスペースを均一に再配置することもできます。

リシャーディングオペレーションまたは再分散オペレーションを開始すると、Redis 用 ElastiCache は、クラスターのシャード間でスロットが均等分散されるように計画の準備を開始します。その後、シャード全体にスロットを転送し、効率性を重視して並列的に多数のスロットを移動します。これは、クラスターでリクエストに応答する場合に行われ、送信時のスロットへ書き込む書き込みスループットが少し上がります。移行率は、インスタンスタイプ、ネットワーク速度、スロットへの読み込み/書き込みトラフィックによって異なり、通常 1 分あたり約 1 ギガバイトです。

リシャーディングオペレーションと再分散オペレーションは、クラスタモードを有効にして作成された Redis クラスターに適用されます。

クラスターのリシャーディング
一般的に、大幅なメモリプレッシャーの問題に直面したり、個々のノードがボトルネックになった場合は、リシャーディングでクラスターを拡張します。クラスターの CloudWatch メトリクスを監視すれば、以下のような状況を識別できます。

メモリプレッシャー – FreeableMemory、SwapUsage、BytesUsedForCache。

CPU ボトルネック – CPUUtilization、CurrConnections、NewConnections。

ネットワークボトルネック – NetworkBytesIn、NetworkBytesOut。

これらのメトリクスを監視するには CloudWatch ダッシュボード、リシャーディングプロセスを自動化するには CloudWatch アラームを使用できます。

ElastiCache ダッシュボードから Redis クラスターをリシャーディングするには、該当するクラスターをクリックして詳細ページに移動後、[Add shards] ボタンをクリックします。

シャード数、(必要に応じて) 目的のアベイラビリティーゾーンを入力し、[Add] をクリックします。

クラスターのステータスが「変更中」に変わり、リシャーディングプロセスが開始します。前述のとおり、このプロセスは数分から数時間かかります。クラスターの詳細ページで進捗を追跡できます。

シャード間を移動しているスロットを表示できます。

クラスターのイベントを監視することもできます。

リシャーディング中、KEYSSMEMBERS コマンド、および大量の演算を行う Lua スクリプトは実行しないでください。クラスターのシャードで適切にロードを行うためです。FLUSHDBFLUSHALL コマンドは一切使用しないでください。これらのコマンドを使用すると、リシャーディングプロセスは中断され、停止します。

プロセスが完了すると、各シャードのステータスは [Available] に戻ります。

シャード削除時にも同様のプロセスが行われます。

スロットの再分散
このオペレーションを実行する方法については、クラスターの詳細ページに移動し、「スロット配置の再分散」をクリックします。

主要事項
この新機能には、いくつかの注意事項があります。

エンジンバージョン – クラスターが Redis エンジンのバージョン 3.2.10 を実行している必要があります。

移行サイズ – シリアル化後、256 メガバイトより大きいアイテムを含むスロットは移行されません。

クラスターエンドポイント – リシャーディングまたは再分散を行っても、クラスターエンドポイントは変更されません。

提供開始
この機能はすでに提供が開始されているので、今すぐ使い始めることができます。

Jeff;