Tair (Redis OSS-compatible) の標準アーキテクチャは、クラスターモードが有効になっていないアーキテクチャです。このアーキテクチャは、すべてのデータを単一のシャードに保存し、さまざまなユースケースで使いやすさ、信頼性、およびコスト効率を確保します。クラスターアーキテクチャとは異なり、標準アーキテクチャはシャード数量の調整をサポートせず、高可用性 (マルチレプリカ) のインスタンスタイプを提供します。
高可用性
標準の高可用性 (HA) アーキテクチャは、マスター/レプリカモデルを使用します。マスターノードは日常のワークロードを処理し、レプリカノードは高可用性を確保するためにホットスタンバイモードのままです。マスターノードに障害が発生した場合、システムは 30 秒以内にワークロードをレプリカノードに切り替えて安定性を確保します。
クラウドネイティブ標準アーキテクチャ
クラウドネイティブインスタンスは、1 つのマスターノードと最大 9 つのレプリカノードで構成できます。複数のゾーンにまたがる HA スイッチオーバーがトリガーされると、システムはまず同じゾーン内でスイッチオーバーを実行しようと試み、ビジネスのクロスゾーンアクセスを回避します。
クラシック標準アーキテクチャ
クラシックインスタンスは、1 つのマスターノードと 1 つのレプリカノードのみで構成できます。インスタンスが複数のゾーンにデプロイされている場合、レプリカノードはセカンダリゾーンにデプロイされます。
特長
信頼性
サービスの信頼性: 標準の HA アーキテクチャは、マスター/レプリカモデルを使用します。マスターノードとレプリカノードは、異なる物理ホストにデプロイされます。マスターノードに障害が発生した場合、自社開発の HA システムがマスター/レプリカのスイッチオーバーを実行し、スムーズなビジネス運用を保証します。
データの信頼性: デフォルトでは、データの永続性が有効になっています。これは、すべてのデータがディスクに書き込まれることを示します。このアーキテクチャはデータバックアップをサポートしています。これにより、誤った操作の後にバックアップセットからインスタンスをクローンまたはロールバックしてデータを復元できます。杭州ゾーン H やゾーン I など、ディザスタリカバリ機能を提供するゾーンで作成されたインスタンスは、ゾーンディザスタリカバリをサポートします。
互換性: このアーキテクチャは Redis プロトコルと完全に互換性があります。独自の Redis データベースから標準インスタンスにデータをシームレスに移行できます。また、Alibaba Cloud Data Transmission Service (DTS) を使用して、サービスを中断することなく増分データを移行することもできます。
自社開発の独自システム
HA システム: 独自の HA システムは、ディスク I/O 障害や CPU 障害などのマスターノードの障害を検出し、マスター/レプリカのスイッチオーバーを実行してサービスの可用性を確保するために使用されます。
マスター/レプリカレプリケーションメカニズム: マスターノードとレプリカノード間の完全なデータ同期中に発生する fork の問題が解決され、ノンブロッキング同期が実現します。先行書き込みログ (WAL) を使用してノード間でデータをレプリケートできます。レプリケーションが中断された場合、システムのパフォーマンスと安定性への影響は最小限です。これにより、ネイティブ Redis のマスター/レプリカレプリケーションメカニズムに起因する問題が解決されます。
シナリオ
Redis プロトコルとの高い互換性を必要とするアプリケーション
標準アーキテクチャは Redis プロトコルと互換性があります。サービスを中断することなく、ワークロードを標準インスタンスに移行できます。
Redis を永続データストレージとして使用するアプリケーション
標準アーキテクチャは、データの永続性、バックアップ、および復元メカニズムを提供して、データの信頼性を確保します。
単一インスタンスで安定したクエリレートを持つアプリケーション
ネイティブ Redis データベースはシングルスレッドモードを使用します。ワークロードが 100,000 クエリ/秒 (QPS) 未満のクエリレートをサポートしている場合は、標準アーキテクチャを使用することをお勧めします。より高いクエリレートが必要な場合は、読み書き分離を有効にするか、クラスターアーキテクチャを使用してください。
ソートおよびコンピューティングのワークロードが少なく、単純な Redis コマンドを必要とするアプリケーション
ネイティブ Redis のシングルスレッドモードのため、CPU パフォーマンスが主なボトルネックとなります。大量のソートおよびコンピューティングワークロードを処理する場合は、クラスターアーキテクチャを使用することをお勧めします。
よくある質問
既存のビジネスは Redis Sentinel モードで動作しています。ビジネスをクラウドに移行する際に、どのアーキテクチャを選択すればよいですか?
標準の HA アーキテクチャを選択することをお勧めします。インスタンスを作成した後、インスタンスの Sentinel 互換モードを有効にできます。その後、Redis Sentinel に接続するのと同じ方法で Tair (および Redis Open-Source Edition) に接続できます。
インスタンスに 8 GB のメモリがあり、標準アーキテクチャを使用している場合、メモリ容量をアップグレードせずにインスタンスのパフォーマンスをアップグレードするにはどうすればよいですか?
ビジネス要件に基づいて、次のいずれかのアップグレードソリューションを使用することをお勧めします。
接続数または帯域幅が不十分な場合、インスタンスは高い読み取りトラフィックを処理できない可能性があります。メモリ仕様をアップグレードせずにインスタンスの読み取りパフォーマンスを向上させるには、読み書き分離を有効にすることをお勧めします。
このソリューションは、ビジネスコードやインスタンスのエンドポイントを変更することなく、すぐに使用できます。また、いつでもこの機能を無効にできます。インスタンスの読み書き分離を有効にすると、インスタンスは読み取りリクエストと書き込みリクエストを自動的に識別し、対応するノードに転送できます。これにより、インスタンスは高同時実行性の読み取りおよび書き込み操作をサポートできます。
既存のインスタンスの CPU 使用率が一貫して高い場合は、インスタンスをクラスターインスタンスにアップグレードすることを検討してください。これにより、データシャードを追加して、単一シャードの CPU 使用率を削減できます。
ただし、このソリューションにはインスタンスアーキテクチャの変更が伴い、特定のコマンドは標準アーキテクチャとクラスターアーキテクチャの間で互換性がない場合があります。詳細については、「クラスターインスタンスと読み書き分離インスタンスのコマンド制限」をご参照ください。アップグレード操作を実行する前に、変更の互換性と影響を評価することをお勧めします。
次のセクションでは、さまざまなアーキテクチャにおける 8 GB の Redis Open-Source Edition インスタンスのパフォーマンスを比較します。
アーキテクチャ
メモリ (GB)
CPU コア
帯域幅 (Mbit/s)
最大接続数
QPS 参考値
標準アーキテクチャ (マスターノードとレプリカノード)
8
2
96
20,000
100,000
標準アーキテクチャ (読み書き分離有効、マスターノード 1 つ、読み取りレプリカ 1 つ)
8
4 (2 × 2)
192 (96 × 2)
40,000 (20,000 × 2)
200,000
クラスターアーキテクチャ (2 シャード)
8 (4 GB × 2 シャード)
4 (2 × 2)
192 (96 × 2)
40,000 (20,000 × 2)
200,000