仮想プライベートクラウド (VPC) 経由でElastic Compute Service (ECS) インスタンスからRedisインスタンスにアクセスする場合、ECSインスタンスはRedisインスタンスと同じリージョンにあり、同じVPCに属している必要があります。 ホワイトリストと有効なアカウントとパスワードもRedisインスタンスに設定する必要があります。 このトピックでは、ECSインスタンスがRedisインスタンスに接続できない一般的な問題の解決策について説明します。
ECS接続の問題のトラブルシューティングプロセス
ステップ1: エラーメッセージが無効なパスワード、WRONGPASS、またはNOAUTH認証が必要かどうかを確認します。
エラーメッセージが接続タイムアウトの場合、または明示的なエラーメッセージが表示されない場合は、手順1をスキップして手順2に進みます。
エラーの説明
エラーメッセージが無効なパスワード、WRONGPASS無効なユーザー名とパスワードのペア、またはNOAUTH認証が必要の場合、アカウントとパスワードは正しくありません。
解決策
<user >:< password>形式のパスワードを使用して、接続を再確立します。 たとえば、カスタムアカウントのユーザー名がtestaccountで、パスワードがRp829dlwaの場合、パスワードとしてtestaccount:Rp829dlwaを入力します。<user >:< password>形式のパスワードを使用してECSインスタンスをRedisインスタンスに再接続してもパスワードエラーが報告されている場合は、誤ったパスワードを入力している可能性があります。 この場合、パスワードをリセットし、新しいパスワードを使用して接続を確立します。 パスワードをリセットする方法の詳細については、「パスワードの変更またはリセット」をご参照ください。
パスワードをコピーすると、フォーマットエラーが発生する可能性があります。 パスワードを手動で入力して、もう一度お試しください。
ステップ2: pingコマンドを実行して、ECSインスタンスがRedisインスタンスに接続されているかどうかを確認します。
手順
ECSインスタンスにログインし、pingコマンドを実行します。
ping <host>例: ping r-bp1zx **** .redis.rds.aliyuncs.com
結果の説明
ping操作が成功すると、次の図に示すようにネットワークが接続されます。 さらにトラブルシューティングのためにステップ3に進むことができます。
ping操作が失敗した場合、ネットワークは接続されていません。
一般的な原因と解決策
ECSインスタンスとRedisインスタンスは異なるVPCに属している可能性があります。
ECSインスタンスとRedisインスタンスが同じVPCに属しているかどうかを確認します。 詳細については、「」をご参照ください。ECSインスタンスとRedisインスタンスが同じネットワークタイプであるかどうかを確認するにはどうすればよいですか。
ECSインスタンスとRedisインスタンスが異なるVPCに属している場合、次の操作を実行できます。
ECSインスタンスのVPCを変更します。 詳細については、「ECS インスタンスの VPC を変更する」をご参照ください。
インターネット経由でECSインスタンスをRedisインスタンスに接続します。 パブリックエンドポイントの申請方法については、「インスタンスのパブリックエンドポイントの申請」をご参照ください。
重要インターネットと比較して、VPCはより優れたセキュリティとパフォーマンスを提供します。 そのため、VPCを使用してRedisインスタンスに接続することを推奨します。
ECSインスタンスのセキュリティグループのアウトバウンドアクセスルールは、RedisインスタンスのvSwitchまたはVPC IPアドレスへのトラフィックをブロックする可能性があります。
ECSセキュリティグループにプロトコルタイプがICMP (IPv4) のアウトバウンドルールがあるかどうか、およびルールがRedisインスタンスのvSwitchまたはVPC IPアドレスへのトラフィックをブロックしているかどうかを確認します。
存在する場合、RedisインスタンスのvSwitchまたはVPC IPアドレスへのアクセスを許可します。 詳細については、「セキュリティグループルールの追加」をご参照ください。
説明vSwitchまたはVPCのIPアドレスを表示するには、Redisコンソールのインスタンス情報ページでスイッチまたはVPCのIDをクリックします。 表示されるページで、IPv4 CIDRブロックを表示します。
それでも接続に失敗した場合は、「PINGコマンドを実行してECSインスタンスとTairインスタンス間の接続を確認する」をご参照ください。
ステップ3: telnetコマンドを実行して、サービスポートが利用可能かどうかを確認します
手順
ECSインスタンスにログインし、telnetコマンドを実行します。
telnet <host> <port>例: telnet r-bp1zx **** .redis.rds.aliyuncs.com 6379
結果の説明
接続先...が返されるか、次の図に示すようにtelnetインターフェイスが表示されると、ポートが使用可能になります。
「接続がタイムアウトしました」または「接続に失敗しました」というメッセージが表示された場合、接続は失敗します。
一般的な原因と解決策
ホワイトリストが正しく設定されていないか、ホワイトリストが設定されていません。 詳細については、「手順4: ホワイトリストの確認」をご参照ください。
ECSインスタンスのセキュリティグループのアウトバウンドアクセスルールは、Redisのサービスポートのトラフィックをブロックする可能性があります。
ECSセキュリティグループにプロトコルタイプがTCPであるアウトバウンドルールがあるかどうか、およびルールがRedisのサービスポートへのトラフィックをブロックしているかどうかを確認します。 既定のポート番号は 6379 です。 はいの場合、ポート経由でRedisインスタンスへのアクセスを許可します。 詳細については、「セキュリティグループルールの追加」をご参照ください。
それでも接続が失敗する場合は、telnetコマンドを使用して、Tairが使用するポートへの接続をテストするにはどうすればよいですか?
ステップ4: ホワイトリストを確認する
接続障害の一般的な原因は、ホワイトリストが正しく設定されていないか、ホワイトリストが設定されていないことです。 次の2つのシナリオでは、ホワイトリストを確認することを推奨します。
ドメイン名はpingできますが、telnet操作は失敗します。
redis-cliを使用してECSインスタンスからRedisインスタンスのVPCエンドポイントに接続すると、
(エラー) ERR不正アドレスまたは(エラー) ERRクライアントipがホワイトリストエラーではありませんエラーが報告されます。
一般的な原因
正しくないIPアドレスが設定されていません。
たとえば、ECSインスタンスをRedisインスタンスのVPCエンドポイントに接続したが、誤ってRedisインスタンスのパブリックIPアドレスをホワイトリストに追加したとします。 または、ECSインスタンスをRedisインスタンスのパブリックエンドポイントに接続しますが、誤ってRedisインスタンスのプライマリプライベートIPアドレスをホワイトリストに追加します。
ホワイトリストは設定されていません。
解決策 1
接続診断を実行して、ECSインスタンスのIPアドレスがRedisインスタンスのホワイトリストに追加されているかどうかを確認できます。 ECSインスタンスのIPアドレスをホワイトリストに追加することもできます。 詳細については、「接続の診断の実行」をご参照ください。
ECSインスタンスのIPアドレスを選択する場合、VPCとパブリックエンドポイントを区別することが重要です。

解決策 2
使用するエンドポイントがVPCエンドポイントかパブリックエンドポイントかを確認します。 詳細については、「エンドポイントの表示」をご参照ください。
エンドポイントがVPCエンドポイントの場合、ECSインスタンスのプライマリプライベートIPアドレスをRedisインスタンスのホワイトリストに追加します。 エンドポイントがパブリックエンドポイントの場合、ECSインスタンスのパブリックIPアドレスをRedisインスタンスのホワイトリストに追加します。 詳細については、「ホワイトリストを設定する」をご参照ください。
説明ECSインスタンスのIPアドレスを照会する方法については、「ネットワークに関するFAQ」をご参照ください。
関連ドキュメント
オンプレミスデバイスがECSインスタンスに接続できない理由とトラブルシューティング方法については、次をご参照ください。Tairで接続の問題をトラブルシューティングするにはどうすればよいですか?
Alibaba Cloudアカウント間でECSインスタンスをRedisインスタンスに接続する方法については、「Tair (Redis® OSS-Compatible)」をご参照ください。



