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

ノードサイズの選択

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

ノードサイズの選択

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

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

     

    キャッシュする項目のサイズを取得して、キャッシュで同時に維持する項目数を乗算することで、一般的な予測値が得られます。項目のサイズを合理的に見積もるには、キャッシュ項目をシリアル化して文字数をカウントし、その文字数をクラスターのシャード数で分割します。

     

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

     

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

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

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

     

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

     

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

     

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

     

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

     

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

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

     

    たとえば、すべての項目の合計サイズが 12 GB になると予測される場合は、メモリ容量が 13.3 GB である cache.m3.xlarge ノードまたはメモリ容量が 13.5 GB である cache.r3.large ノードを使用できます。ただし、BGSAVE オペレーションではより多くのメモリが必要になる場合があります。書き込み量の多いアプリケーションがある場合は、メモリ要件の倍のメモリで最低 24 GB が必要になります。これは、cache.m3.2xlarge で 27.9 GB、cache.r3.rge で 28.4 GB のメモリが必要であることを意味します。

     

    複数のシャードを持つ Redis (クラスターモードが有効) クラスター

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

     

    たとえば、すべての項目の合計見積りサイズが 12 GB で 2 つのシャードがある場合は、6.05 GB のメモリを持つ cache.m3.large ノードを 2 つ使用できます。ただし、BGSAVE オペレーションではより多くのメモリが必要になる場合があります。書き込み量が多いアプリケーションの場合は、シャードごとに倍の 12 GB 以上のメモリが必要であり、13.3 GB の cache.m3.xlarge または 13.5 GB のcache.r3.large を使います。

     

    現在 Redis (クラスターモードが有効) クラスターにシャードを追加することはできません。したがって、予測される負荷の増大に対応するために、ある程度大きなノードタイプを使用することが必要になります。

     

キャッシュクラスターが実行中であるときに、CloudWatch に発行される、メモリの使用状況、プロセッサの使用率、キャッシュヒット、およびキャッシュミスのメトリクスをモニタリングできます。クラスターで目的のヒットレートが達成されない場合や、キーが頻繁に削除されている場合は、CPU やメモリの容量が大きい別のノードサイズを選択できます。

CPU の使用率をモニタリングする場合、Redis はシングルスレッドであることに留意します。したがって、報告された CPU 使用率に CPU のコア数を乗算することで、実際の使用率が得られます。たとえば、4 つのコアを持つ CPU で使用率 20% と報告された場合、実際に Redis が使用している 1 つのコアは 80% で稼働しています。

このページの内容: