DNS サービスの問題により、Elastic Compute Service (ECS) インスタンスが Tair (または Redis オープンソース版) インスタンスのエンドポイントを名前解決できない場合、ECS インスタンスと Tair インスタンス間のネットワーク接続が中断されます。この記事では、このような問題を解決する方法について説明します。
原因
ECS インスタンスと Tair インスタンス間の接続問題は、さまざまな原因で発生する可能性があります。以下のエラーメッセージは、ホスト名またはエンドポイントの名前解決の失敗を示しています。これらのいずれかが発生した場合は、ドメイン名と DNS サーバーの設定を確認してください。
-
Name or service not known -
UnknownHostException -
failed to connect: r-***************.redis.rds.aliyuncs.com could not be resolved
操作手順
以下の手順では、Linux 環境を例として使用します。
-
アプリケーションコードに設定されている Tair のエンドポイントが正しいことを確認します。
説明ご利用の Tair インスタンスのエンドポイントは、Tair コンソール のインスタンス詳細ページにある 接続アドレス セクションに記載されています。
図 1. エンドポイントの表示: 接続情報には、ネットワークタイプ (VPC および パブリックアクセス)、接続タイプ (ダイレクト接続エンドポイント および プロキシモードエンドポイント)、エンドポイント (例:
r-8vb***.redis.zhangbei.rds.aliyuncs.com)、およびポート番号 (デフォルトは6379) が含まれます。メンテナンス中に基盤となる IP アドレスが変更される可能性があるため、インスタンスへの接続には常にエンドポイントを使用してください。 -
ECS インスタンスに正しい DNS サーバーが設定されていることを確認してください。詳細な手順については、「Linux インスタンスでドメイン名を解決できない場合の対処方法」をご参照ください。
-
任意: 上記の手順で問題が解決しない場合は、一時的な回避策を使用できます。
/etc/hostsファイルに Tair インスタンスのドメイン名の IP アドレスマッピングを追加します。その後、「Tair 接続のトラブルシューティングワークフロー」ドキュメントを参照して、他の潜在的な原因を除外します。重要/etc/hostsやresolv.confなどのシステムファイルを編集する際は注意が必要です。/etc/hostsへのこの変更は一時的なソリューションであり、Tair インスタンスの IP アドレスが変更されると失敗します。