Redis 用 Amazon ElastiCache
Redis 用 ElastiCache ユーザーガイド (API バージョン 2015-02-02)

ノードサイズの選択

クラスターに選択するノードのサイズによって、コスト、パフォーマンス、耐障害性が変わります。

ノードサイズの選択

以下の項目に回答することで、Redis の実装に必要な最小ノードタイプを決定できます。

  • データに必要となる合計メモリ量。

     

    全般的な見積もりを得るには、キャッシュするアイテムのサイズを調べます。このサイズに、同時にキャッシュに保持するアイテムの数を掛けます。項目サイズを合理的に算出するには、まずキャッシュ項目をシリアル化して文字数をカウントします。その結果をクラスター内のシャードの数で割ります。

     

  • 実行している Redis のバージョン。

     

    Redis バージョン 2.8.22 より前では、フェイルオーバー、スナップショット、同期、およびレプリカをプライマリに昇格させるために、より多くのメモリを確保する必要があります。これは、十分な量のメモリを用意して、プロセスの実行時に生じるすべての書き込みに対応する必要があるためです。

    Redis 2.8.22 バージョン以降では、分岐なしの保存プロセスが使用されているため、以前のプロセスよりも使用可能なメモリが少なくて済みます。

    詳細については、以下を参照してください。

     

  • アプリケーションでの書き込み負荷の大きさ。

     

    書き込み量が多いアプリケーションでは、スナップショットの作成時またはフェイルオーバー時に、データでは使用されないより多くの使用可能メモリが必要となります。BGSAVE プロセスが実行されるたびに、BGSAVE プロセス中に発生するすべての書き込みに対応するために、データによって使用されない十分なメモリが必要です。たとえば、スナップショットを作成するとき、プライマリクラスターをクラスター内のレプリカと同期させるとき、AOF (Append-Only File) 機能を有効にするときです。また、レプリカをプライマリに昇格させるときです (自動フェイルオーバーが有効になっているマルチ AZ がある場合)。さらに、最悪の場合、プロセス中にすべてのデータが書き換えられるときです。この場合、データのみに必要なメモリの 2 倍のサイズのノードインスタンスが必要です。

     

    詳細については、「Redis スナップショットを作成するのに十分なメモリがあることの確認」を参照してください。

     

  • スタンドアロンの Redis (クラスターモードが無効) クラスターを実装するか、複数のシャードを持つ Redis (クラスターモードが有効) クラスターを実装するか。

     

    Redis (クラスターモードが無効) クラスター

    Redis (クラスターモードが無効) クラスターを実装する場合は、ノードタイプがすべてのデータと前の項目で説明した必要なオーバーヘッドに対応できる必要があります。

     

    たとえば、すべてのアイテムの合計サイズを 12 GB と見積もったします。この場合、13.3 GB のメモリを搭載した cache.m3.xlarge ノードまたは 13.5 GB のメモリを搭載した cache.r3.large ノードを使用できます。ただし、BGSAVE オペレーションではより多くのメモリが必要になる場合があります。書き込み負荷の高いアプリケーションの場合、メモリ要件を少なくとも 24 GB に倍増します。したがって、27.9 GB のメモリを搭載した cache.m3.2xlarge または 30.5 GB のメモリを搭載した cache.r3.xlarge を使用します。

     

    Redis (クラスターモードが有効) 複数シャードの開始方法

    複数のシャードを持つ Redis (クラスターモードが有効) クラスターを実装する場合は、ノードタイプが bytes-for-data-and-overhead / number-of-shards バイトのデータに対応できる必要があります。

     

    たとえば、すべてのアイテムの合計サイズが 12 GB で、シャードが 2 つあると見積もったとします。この場合、6.05 GB のメモリ (12 GB / 2) を搭載した cache.m3.large ノードを使用できます。ただし、BGSAVE オペレーションではより多くのメモリが必要になる場合があります。書き込み負荷の高いアプリケーションの場合、メモリ要件をシャードあたり少なくとも 12 GB に倍増します。したがって、13.3 GB のメモリを搭載した cache.m3.xlarge または 13.5 GB のメモリを搭載した cache.r3.large を使用します。

     

キャッシュクラスターが実行中であるときに、CloudWatch に発行される、メモリの使用状況、プロセッサの使用率、キャッシュヒット、およびキャッシュミスのメトリクスをモニタリングできます。クラスターに必要なヒット率がないことや、キーが頻繁に削除されていることに気付くことがあります。これらの場合は、より高い仕様の CPU とメモリの異なるノードサイズを選択できます。

CPU 使用率をモニタリングするとき、Redis はシングルスレッドであることに注意してください。したがって、レポートされた CPU 使用率に CPU コアの数を掛けて、実際の使用率を得ます。たとえば、4 つのコアを持つ CPU で使用率 20 パーセントとレポートされた場合、実際に Redis が使用している 1 つのコアは 80 パーセントで稼働しています。

このページの内容: