クラシッククラスターインスタンスの直接接続エンドポイントを有効化および解放する方法と、直接接続モードの制限事項について説明します。
前提条件
始める前に、インスタンスが次のすべての要件を満たしていることを確認してください。
-
[デプロイメントモード] が [クラシック] に設定されたクラスターアーキテクチャであること
直接接続モードになっているクラウドネイティブクラスターインスタンスの場合、直接接続エンドポイントはデフォルトで提供されるため、有効にする必要はありません。プロキシモードのクラウドネイティブクラスターアーキテクチャでは、直接接続モードの有効化はサポートされていません。
直接接続を有効にするには、さらに、次の点も確認してください:
-
インスタンスが Redis 5.0 と互換性があり、最新のマイナーバージョンに更新されていること
-
Transport Layer Security (TLS) が無効になっていること。詳細については、「TLS 暗号化」をご参照ください
-
vSwitch に十分な空き IP アドレスがあること:直接接続では、各シャードのプライマリノードに 1 つの IP アドレスが割り当てられ、さらにエンドポイント自体に 1 つの IP アドレスが割り当てられます。8 シャードのインスタンスの場合、vSwitch には少なくとも 9 つの空き IP アドレスが必要です。確認するには、「インスタンスの vSwitch で使用可能な IP アドレスの数を照会する」をご参照ください
プライベートエンドポイントを解放するには、さらに、次の点も確認してください:
-
インスタンスで直接接続モードがすでに有効になっていること。
-
アプリケーションが、プロキシモードの内部エンドポイントなど、別のエンドポイントを使用するように更新されていること。詳細については、「エンドポイントの表示」をご参照ください
プライベートエンドポイントが解放されると、そのエンドポイントを使用しているクライアントはインスタンスに接続できなくなります。続行する前に、アプリケーションの接続設定を更新してください。
制限事項
-
シャードあたりの接続数の減少: プロキシがバイパスされるため、シャードあたりの最大接続数は 10,000 (Redis オープンソース版クラスター) または 30,000 (Tair (Enterprise Edition) クラスター) に減少します。データスキュー (あるシャードにアクセスが集中し、他のシャードがほとんどアイドル状態になる状況) が発生すると、そのシャードへの接続が枯渇し、新しい接続リクエストが失敗する可能性があります。ホットスポットキーや巨大キーによって引き起こされるデータスキューを診断するには、「Top Key 統計」および「オフラインでの完全なキー分析」をご参照ください。
-
メジャーバージョンのアップグレードとゾーン変更の制限: 直接接続モードを有効にすると、インスタンスのメジャーバージョンをアップグレードしたり、ゾーンを変更したりすることはできません。まずプライベートエンドポイントを解放してから、アップグレードまたはゾーン変更を実行してください。詳細については、「メジャーバージョンのアップグレード」および「ゾーン間でのインスタンスの移行」をご参照ください。
-
設定変更の制限: 直接接続が有効になっているインスタンスの設定を変更する場合、シャード数またはシャード仕様のみを変更し、一度に 1 つだけ変更してください。詳細については、「クラシック (ローカルディスクベース) クラスターインスタンスの設定を変更できないのはなぜですか。」をご参照ください。
直接接続の有効化
デフォルトでは、クラシッククラスターアーキテクチャを使用する Tair (Redis OSS-compatible) インスタンスは、データベースプロキシエンドポイントを介して接続します。インスタンスをネイティブの Redis Cluster プロトコルに対応させるには、直接接続モードを有効にし、クライアントで直接接続エンドポイントを使用します。これにより、クライアントはプロキシノードをバイパスしてバックエンドのデータノードに直接アクセスできるため、プロキシによるリクエスト処理が不要になり、レイテンシーが削減されます。
接続モード
| モード | 仕組み | トレードオフ |
|---|---|---|
| 直接接続 | クライアントはプロキシをバイパスし、バックエンドのデータノードに直接接続します。 | レイテンシーが低くなります。シャードあたりの最大接続数が、Redis オープンソース版では 10,000、Tair (Enterprise Edition) では 30,000 に減少します。 |
| プロキシモード | プロキシノードがクライアントリクエストをデータノードに転送します。詳細については、「Tair Proxy の機能」をご参照ください。 | 接続数の上限が高くなります。リクエストごとにわずかな処理オーバーヘッドが発生します。 |
直接接続の有効化
直接接続を有効にしても、サービスは中断されません。
-
コンソールにログインし、[Instances] ページに移動します。上部メニューで、インスタンスのリージョンを選択します。対象のインスタンスを見つけ、その ID をクリックします。
-
接続情報 エリアで、ダイレクト接続 の右側にある 申請 をクリックします。
-
表示されたパネルで、エンドポイントとポートを設定します。
設定 説明 [エンドポイント] 現在、接続アドレスのプレフィックスのみ変更できます。プレフィックスは、デフォルトでインスタンス ID の後に piが続きます (例:{InstanceId}pi)。カスタムプレフィックスは、次の要件を満たす必要があります。小文字で始まり、小文字または数字で終わり、小文字、数字、ハイフン (-) のみを含み、長さが 8~66 文字である必要があります。[ポート番号] 1024~65535 の範囲である必要があります。エンドポイントを変更するときにポート番号を変更できます。 -
[OK] をクリックします。
接続例については、「直接接続モードでインスタンスに接続する」をご参照ください。
プライベートエンドポイントの解放
Tair (Redis OSS-compatible) インスタンスのプライベートエンドポイントを解放して、直接接続モードを無効にします。これは、インスタンス設定の変更やメジャーバージョンのアップグレードなど、直接接続モードではサポートされていない特定の操作を行う前に必要です。
プライベートエンドポイントの解放
-
コンソールにログインし、[Instances] ページに移動します。上部メニューで、インスタンスが存在するリージョンを選択し、インスタンス ID をクリックします。
-
[Connection Information] セクションで、プライベートエンドポイント (Host) の右側にある 接続アドレスの解放 をクリックします。
-
表示されたパネルで、[OK] をクリックします。
よくある質問
すべての前提条件を満たしていますが、[Apply for Endpoint] ボタンが見つかりません。どうすればよいですか。
インスタンスを最新のマイナーバージョンに更新してください。詳細については、「マイナーバージョンとプロキシバージョンの更新」をご参照ください。
直接接続エンドポイントとプロキシエンドポイントを同時に使用できますか。
クラシッククラスターアーキテクチャの場合は、両方のモードを同時に有効にできます。クラウドネイティブクラスターアーキテクチャの場合は、一度に 1 つのモードしか有効にできません。
関連 API
| API | 説明 |
|---|---|
| AllocateDirectConnection | クラスターインスタンスの直接接続エンドポイントを申請します。 |
| ReleaseDirectConnection | クラスターインスタンスの直接接続エンドポイントを解放します。 |