クラスタアーキテクチャでは、データを複数のシャードに分散することで、シングルスレッドの Redis プロセスが持つ制限を超えて Tair(Redis OSS 互換)のスケーリングを実現します。各シャードは独立したマスターレプリカペアで動作するため、シャードを追加することでストレージ容量およびスループットが線形に拡大します。最大で 16 TB(64 GB × 256 シャード)、および 1 秒あたり数百万リクエストまで対応可能です。利用可能な接続モードは、プロキシモードと直接接続モードの 2 種類です。
接続モードの選択
| プロキシモード | 直接接続モード | |
|---|---|---|
| クライアント互換性 | すべての Redis クライアントと互換。標準のマスターレプリカインスタンスと同様の方法で接続可能 | Redis Cluster 対応クライアントライブラリが必要 |
| 読み書き分離 | サポート対象(クラウドネイティブ インスタンスのみ) | 非サポート |
| 高度な機能 | ホットキーのデータキャッシュ、強化されたフェールオーバー | 標準の Redis Cluster 動作 |
| 使用推奨シーン | ほとんどのワークロードに推奨 | クライアントがネイティブの Redis Cluster プロトコルアクセスを必要とする場合に使用 |
クラウドネイティブクラスターインスタンスでは、プロキシモードと直接接続モードを同時に有効化することはできません。
プロキシモード(推奨)
プロキシノードはクライアントとデータシャードの間に配置されます。プロキシノードは標準の Redis エンドポイントを公開するため、標準のマスターレプリカインスタンスから移行する際にクライアント側の変更は不要です。
アーキテクチャ
プロキシモードにおけるマルチレプリカクラスターアーキテクチャ
| コンポーネント | 説明 |
|---|---|
| プロキシノード | クライアントリクエストを適切なデータシャードに転送します。複数のプロキシノードが並列で稼働し、トラフィック処理およびディザスタリカバリを提供します。 |
| データシャード | 各シャードは高可用性(HA)アーキテクチャを採用しており、1 台のマスターノードと最大 4 台のレプリカノードで構成され、それぞれ異なるホスト上にデプロイされます。レプリカノードはセカンダリゾーンに配置可能です。レプリカ数を増やすことで、データ損失リスクを低減し、ディザスタリカバリのカバー率を向上させます。 |
| HA システム | マスターノードが障害を起こした場合、システムは 30 秒以内にワークロードをレプリカノードへ自動的に切り替えます。デュアルゾーン構成では、プライマリゾーン内にレプリカが存在する場合、まずそのレプリカへ切り替えることで、クロスゾーンアクセスによる遅延を回避します。 |
プロキシノードが提供する機能の全一覧については、「プロキシノードの機能」をご参照ください。
読み書き分離
クラウドネイティブクラスターインスタンス(プロキシモード)において、マスターノードの読み取りトラフィックが飽和状態になった場合に読み書き分離を有効化します。有効化後、プロキシは読み取りリクエストをレプリカノードにルーティングし、マスターノードの書き込み中心ワークロードへの負荷を軽減します。
設定手順については、「クラスターインスタンス向けの読み書き分離の有効化」をご参照ください。
読み書き分離は、クラウドネイティブクラスターインスタンス(プロキシモード)でのみ利用可能です。非クラスターインスタンスでこの機能を利用する場合は、Data Transmission Service(DTS)を用いてデータをクラウドネイティブクラスターインスタンス(プロキシモード)へ移行してください。
直接接続モード
直接接続モードでは、クライアントが Redis Cluster プロトコルを介してデータシャードに直接接続します。初回接続時に DNS がインスタンスのプライベートエンドポイントをランダムな仮想 IP アドレス(VIP)に解決し、クライアントはこの VIP を用いてクラスター全体のトポロジーを検出します。
直接接続モードにおけるクラスターのアーキテクチャ
直接接続モードは複数のレプリカをサポートしますが、読み書き分離はサポートしません。
接続要件および使用例については、「直接接続モードを用いたクラスターインスタンスへの接続」をご参照ください。
クラスタアーキテクチャの適用範囲
データセットが単一インスタンスの容量を超えた場合
クラスタアーキテクチャでは、ストレージを最大 16 TB(64 GB × 256 シャード)までスケーリングできます。単一のスタンダードインスタンスではデータを保持できなくなった場合に、クラスタアーキテクチャをご利用ください。
読み取りまたは書き込みスループットがボトルネックとなっている場合
シャードを追加することで、複数の CPU コアにまたがってスループットを線形にスケーリングできます。マスターノードの読み取りトラフィックがボトルネックとなっている場合は、クラウドネイティブクラスターインスタンス(プロキシモード)で読み書き分離を有効化してください。
ワークロードがスループット重視の場合
クラスタアーキテクチャでは、リクエストを複数のシャードおよび vCPU に分散処理するため、ホットデータへの効率的なアクセスおよび持続的な高スループット運用が可能になります。
アプリケーションでマルチキー操作をほとんど使用しない場合
クラスタアーキテクチャは分散アーキテクチャを採用しており、マルチキー操作に含まれるすべてのキーは同一ハッシュスロット上に存在する必要があります。ワークロードでマルチキーコマンドを多用する場合は、クラスタアーキテクチャを選択する前に制約事項を確認してください。影響を受けるコマンドの一覧については、「クラスターインスタンスおよび読み書き分離インスタンスでサポートされるコマンドの制限事項」をご参照ください。
デプロイメントが遅延の影響を受けやすく、2 つのゾーンにまたがる場合
デュアルゾーンクラスターインスタンスでは、プライマリゾーンにレプリカノードを追加します(例:プライマリゾーンにマスターノードおよびレプリカノードを 1 台ずつ、セカンダリゾーンにレプリカノードを 1 台)。マスターレプリカのスイッチオーバーが発生した場合、トラフィックはプライマリゾーン内で完結し、クロスゾーンによる遅延を回避できます。
注意事項
従来のクラスタアーキテクチャはマスターレプリカモデルをサポートしますが、読み書き分離はサポートしません。
クラウドネイティブクラスターインスタンスでは、プロキシモードと直接接続モードを同時に有効化することはできません。
クラスターインスタンスの構成変更
| タスク | 手順 |
|---|---|
| レプリカノードの追加 | インスタンス詳細ページのノード管理ページへ移動し、変更をクリックします。 |
| 読み取り専用レプリカの追加 | インスタンス詳細ページのノード管理ページへ移動し、読み書き分離を有効化した後、変更をクリックします。 |
| シャードの追加 | インスタンス詳細ページの右上隅からシャード調整 > シャードの追加を選択します。 |
| シャード仕様の変更 | インスタンス詳細ページの右上隅から仕様調整 > 仕様のアップグレード/ダウングレードを選択します。 |