OCIキャッシュ・シャード・クラスタ
OCI Cacheでは、シャード・クラスタと非シャード・クラスタの2つのクラスタ・モードがサポートされています。
非シャード・クラスタは、1つのプライマリ・ノードと1つ以上のレプリカ・ノードで構成され、各ノードでデータが複製されます。このクラスタ・モードでは、格納できるデータはノードに構成されているメモリー量によって制限され、ノード当たり最大500 GBのメモリーが使用されます。
シャード・クラスタには3つ以上のシャードがあり、データはクラスタ内のシャードに分割されるため、各シャードがデータの一部を保持します。各シャードは、1つのプライマリ・ノードと最大4つのレプリカ・ノードを持つクラスタのようなものです。シャード・クラスタでは、500 GBの制限を超えるデータを格納する必要があるシナリオがサポートされます。これらのクラスタはノード当たり500 GBのメモリーに制限されていますが、シャード当たり実際には500 GBであるためです。
シャード・クラスタには、非シャード・クラスタと同様に、クラスタ・レベルのプライマリ・エンドポイントまたはレプリカ・エンドポイントがありません。かわりに、各シャードには、クラスタへの接続時に使用できるプライベート・エンドポイントがあります。詳細は、OCIキャッシュ・シャード・クラスタの接続詳細の取得を参照してください。
シャード・クラスタの制限および考慮事項
シャード・クラスタへの接続に使用するValkeyおよびRedisクライアント・ライブラリは、ホスト名をサポートするRedis CLUSTER MODE
をサポートしている必要があります。
- シャードごとに構成されるノード数は1から5の間であり、クラスタ当たり最大100ノードである必要があります。
- 1クラスタ当たりのシャード数は3から99までの不均一な数である必要がありますが、シャードの最大数はシャード当たりに構成されているノードの数によって異なります。
- ノード当たりのメモリー量は、2から500 GBの間である必要があります。
- シャード・クラスタへの接続に使用するRedisクライアント・ライブラリは、ホスト名をサポートするRedis
CLUSTER MODE
をサポートしている必要があります。 - 非シャード・クラスタとして作成されたOCIキャッシュ・クラスタは、シャード・クラスタに変換できず、その逆も同様です。OCIキャッシュは、これらのクラスタ・タイプ間でデータを自動移動する方法を提供しません。
シャード・クラスタの構成
シャード・クラスタを構成する場合は、シャードの数、シャード当たりのノード数およびノード当たりのメモリー量のバランスを決定する際に役立つ要件を考慮する必要があります。シャード当たりのノード数を増やすことは、クラスタの読取り容量を増やすのに適した方法ですが、ノード当たりのメモリー量を増やす場合を除き、クラスタの記憶域には役立ちません。また、クラスタの書込み容量にも影響しません。クラスタの書込み容量に影響を与えるには、シャードの数を増やします。
たとえば、次の2つのシナリオを比較します。
- クラスタは大量のデータを格納する必要がありますが、大量の書込みは処理しません。
- クラスタは大量の書込みを処理する必要がありますが、大量のデータは格納しません。
シナリオ1では、シナリオ2と比較して、ノード当たりのメモリーが多いシャードの数が少なくなるようにクラスタを構成します。シナリオ2では、ノード当たりのメモリーが少なく、シャード数が多くなるようにクラスタを構成します。
検出のエンドポイント
検出エンドポイント機能は、OCIキャッシュ・シャード・クラスタ用に設計されており、クライアント・アプリケーションがシャード・キャッシュ・クラスタに接続するための安定した単一エンドポイントを提供します。このエンドポイントは、複数のシャード・ノードの管理の複雑さを抽象化するため、クライアント・アプリケーションは基礎となるシャード・トポロジを認識しなくてもOCIキャッシュと対話できます。
各クラスタ・インスタンスには、IPアドレスとポート番号の組合せで構成される一意の検出エンドポイントがあります。検出エンドポイントは、クライアント接続のプライマリ・エントリ・ポイントとして機能し、シームレスなノード検出を可能にし、クラスタ・トポロジを管理するために重要です。
OCIキャッシュは、新しく作成されたシャード・クラスタに対してのみ検出エンドポイントを提供します。検出エンドポイントを含めるために既存のシャード・クラスタを自動的に更新することはありません。
検出エンドポイントの使用
RedisクライアントまたはValkeyクライアント(LettuceやRedissonなど)を接続するには、検出エンドポイントの完全修飾ドメイン名(FQDN)を使用するように構成します。このエンドポイントは、Virtual Cloud Network (VCN)内のプライベートIPアドレスに解決され、クラスタ・ノードにリクエストをルーティングします。
接続後、クライアントは、#CLUSTER SLOTS
や#CLUSTER NODES
などの標準のRedisコマンドを実行して、クラスタ・トポロジを取得できます。これらのコマンドは、ノードID、役割、FQDNまたはIPアドレス、スロット範囲などの情報を返します。
その後、クライアントは次を実行できます。
- FQDNまたはIPアドレスを使用して、関連ノードへの直接接続を確立します。
- RedisまたはValkeyコマンド(
GET
、SET
など)を実行します。 - 検出エンドポイントを介してトポロジを定期的にリフレッシュすることで、最新のルーティングを維持します。
シャード・クラスタを操作するためのほとんどの手順は、非シャード・クラスタを操作する場合と同じです。ただし、一部の手順は異なります。シャード・クラスタに固有の詳細は、次を参照してください: