このトピックでは、Elastic Compute Service (ECS) インスタンスからApsaraDB RDS for MySQLインスタンスに接続する際の障害をトラブルシューティングする方法について説明します。
ビジネスをデバッグするためのテスト環境を設定すると、ECSインスタンスからRDSインスタンスに接続できない場合があります。 接続障害は、様々な理由により発生し得る。 たとえば、RDSインスタンスのネットワークタイプがECSインスタンスのネットワークタイプと異なるか、ECSインスタンスのIPアドレスがRDSインスタンスのIPアドレスホワイトリストに追加されていない場合などです。 このトピックでは、接続障害の最も一般的な原因と、接続障害のトラブルシューティングに使用できる方法について説明します。
異なるネットワークタイプ
ECSインスタンスは仮想プライベートクラウド (VPC) にあり、RDSインスタンスはクラシックネットワークにあります。
方法1: ECSインスタンスが存在するVPCにRDSインスタンスを移行します。 詳細については、「ApsaraDB RDSインスタンスのネットワークタイプの変更」をご参照ください。 これは推奨される方法です。
説明ECSインスタンスとRDSインスタンスの両方がVPCに存在する場合、内部ネットワークを介して相互に通信するには、同じVPCに存在する必要があります。
方法2: クラシックネットワークにあるECSインスタンスを購入し、ECSインスタンスからRDSインスタンスに接続します。 ECSインスタンスをVPCからクラシックネットワークに移行することはできません。 VPCは、クラシックネットワークよりも高いセキュリティを提供します。 VPCネットワークタイプを使用することを推奨します。
方法3: RDSインスタンスのパブリックエンドポイントを使用して、ECSインスタンスからRDSインスタンスに接続します。 この方法では、最適なパフォーマンス、セキュリティ、または安定性を保証できません。
ECSインスタンスはクラシックネットワークにあり、RDSインスタンスはVPCにあります。
方法1: ECSインスタンスをRDSインスタンスが属するVPCに移行します。 これは推奨される方法です。
説明ECSインスタンスとRDSインスタンスの両方がVPCに存在する場合、内部ネットワークを介して相互に通信するには、同じVPCに存在する必要があります。
方法2: RDSインスタンスをクラシックネットワークに移行します。 VPCは、クラシックネットワークよりも高いセキュリティを提供します。 VPCネットワークタイプを使用することを推奨します。
方法3: ClassicLink機能を使用して、ECSインスタンスとRDSインスタンス間の内部ネットワーク接続を確立します。 詳細については、次をご参照ください: ClassicLinkの概要。
方法4: RDSインスタンスのパブリックエンドポイントを使用して、ECSインスタンスからRDSインスタンスに接続します。 この方法では、最適なパフォーマンス、セキュリティ、または安定性を保証できません。
異なるVPC
VPCは、Alibaba Cloud上に構築された分離されたネットワーク環境です。 VPC は、互いに論理的に分離されています。 ECSインスタンスとRDSインスタンスの両方がVPCに存在する場合、内部ネットワークを介して相互に通信するには、同じVPCに存在する必要があります。
方法1: ECSインスタンスが属するVPCにRDSインスタンスを移行します。 これは推奨される方法です。
RDSインスタンスのネットワークタイプをVPCからクラシックネットワークに変更してから、RDSインスタンスのネットワークタイプをクラシックネットワークからVPCに変更する必要があります。 RDSインスタンスのネットワークタイプをクラシックネットワークからVPCに戻す場合は、ECSインスタンスが存在するVPCを選択する必要があります。 詳細については、「VPCとvSwitchの変更」または「ApsaraDB RDSインスタンスのネットワークタイプの変更」をご参照ください。
方法2: Cloud Enterprise Network (CEN) インスタンスを作成して、ECSインスタンスとRDSインスタンスのVPC間にプライベート接続を確立します。 詳細については、次をご参照ください: CENを使用してリージョン内ネットワーク通信を有効にします。
方法3: インターネット経由でECSインスタンスからRDSインスタンスに接続します。 この方法では、最適なパフォーマンス、セキュリティ、または安定性を保証できません。
異なるリージョン
ECSインスタンスとRDSインスタンスが異なるリージョンにある場合、これらのインスタンスは内部ネットワークを介して相互に通信できません。
方法1: 元のRDSまたはECSインスタンスの払い戻しをリクエストします。 次に、ビジネス要件に基づいて新しいRDSインスタンスまたはECSインスタンスを購入します。
方法2: ECSインスタンスとRDSインスタンスのネットワークタイプをVPCに変更します。 次に、VPC間の通信を有効にするCENインスタンスを作成します。 詳細については、「ApsaraDB RDSインスタンスのネットワークタイプの変更」をご参照ください。 CENを使用してリージョン内ネットワーク通信を有効にします。
方法3: インターネット経由でECSインスタンスからRDSインスタンスに接続します。 この方法では、最適なパフォーマンス、セキュリティ、または安定性を保証できません。
間違った IP アドレスホワイトリスト設定
デフォルトラベルのIPアドレスホワイトリストには、IPアドレス127.0.0.1のみが含まれます。 このIPアドレスは、RDSインスタンスへのアクセスが許可されていないことを示します。 したがって、ホワイトリストに IP アドレスを追加する必要があります。 詳細については、「IPアドレスホワイトリストの設定」をご参照ください。
0.0.0.0エントリがRDSインスタンスのIPアドレスホワイトリストに追加されます。
重要0.0.0.0/0エントリをRDSインスタンスのIPアドレスホワイトリストに追加すると、すべてのデバイスがRDSインスタンスにアクセスできるようになります。 作業は慎重に行ってください。
RDSインスタンスの拡張ホワイトリストモードが有効になっています。 この場合、次の制限に注意してください。
RDSインスタンスがVPCにあり、内部エンドポイントを使用して接続されている場合、ECSインスタンスのプライベートIPアドレスをVPCタイプのIPアドレスホワイトリストに追加する必要があります。
RDSインスタンスがクラシックネットワークにあり、内部エンドポイントを使用して接続されている場合、ECSインスタンスのプライベートIPアドレスをクラシックネットワークタイプのIPアドレスホワイトリストに追加する必要があります。
RDSインスタンスがクラシックネットワークにあり、インターネット経由で接続されている場合、ECSインスタンスのパブリックIPアドレスをクラシックネットワークタイプのIPアドレスホワイトリストに追加する必要があります。
IPアドレスホワイトリストに追加するパブリックIPアドレスが無効です考えられる原因:
パブリックIPアドレスが動的に変更されます。
パブリックIPアドレスの照会に使用されるツールまたはWebサイトは、不正確な結果を返します。
ドメイン名解決の失敗またはエラー
ドメインネームシステム (DNS) サーバーに障害がある場合、またはネットワークインターフェイスコントローラー (NIC) の設定が変更されている場合、ドメイン名の解決に失敗するか、誤ったIPアドレスに解決される可能性があります。 この場合、ping
コマンドまたはtelnet
コマンドを実行して、RDSインスタンスへの接続を確認できます。
ping <Domain name>
telnet <Domain name> <Port number>
例:
RDSインスタンスが接続テストに失敗した場合は、次の操作を実行してネットワークインターフェイスコントローラー (NIC) の設定ファイルを変更します。
設定ファイルを編集モードで開きます。
vi /etc/sysconfig/network-scripts/<The name of the configuration file of the NIC>
説明コマンドのNICは、ECSインスタンスのNICを指します。
ifconfig
コマンドを実行して、設定ファイルのファイル名拡張子を確認できます。 デフォルトのファイル名拡張子はifcfg-eth0です。設定ファイルの末尾に次の設定を追加します。
DNS1=100.100.XX.XX DNS2=100.100.XX.XX
説明設定ファイルにDNS1およびDNS2設定項目が存在する場合、これらの設定項目の値を設定に表示されている値に変更する必要があります。
次のコマンドを実行して、ネットワークサービスを再起動します。
sudo systemctl restart network
次のコマンドを実行して、変更が成功したかどうかを確認します。
cat /etc/resolv.conf
RDSインスタンス [ネットワーク接続の作成中]
ApsaraDB RDSコンソールの [タスク] ページに移動し、[ネットワーク接続の作成中] ステータスのタスクを見つけて、[再試行] または [切り替え時間の変更] をクリックします。 詳細については、「タスクセンターの使用」をご参照ください。