すべてのプロダクト
Search
ドキュメントセンター

ApsaraDB RDS:ApsaraDB RDS for MySQLインスタンスへの接続障害のトラブルシューティング

最終更新日:Jan 18, 2024

このトピックでは、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 アドレスホワイトリスト設定

ドメイン名解決の失敗またはエラー

ドメインネームシステム (DNS) サーバーに障害がある場合、またはネットワークインターフェイスコントローラー (NIC) の設定が変更されている場合、ドメイン名の解決に失敗するか、誤ったIPアドレスに解決される可能性があります。 この場合、pingコマンドまたはtelnetコマンドを実行して、RDSインスタンスへの接続を確認できます。

ping <ドメイン名>
telnet <ドメイン名> <ポート番号>
            

例:

Test connectivity by using the ping commandTest connectivity by using the telnet command
RDSインスタンスが接続テストに失敗した場合は、次の操作を実行してNICの設定ファイルを変更します。
  1. 設定ファイルを編集モードで開きます。
    vi /etc/sysconfig/network-scripts/<NICの設定ファイル名>
    説明 コマンドのNICは、ECSインスタンスのNICを指します。 ifconfigコマンドを実行して、設定ファイルのファイル名拡張子を確認できます。 デフォルトのファイル名拡張子はifcfg-eth0です。
  2. 設定ファイルの末尾に次の設定を追加します。
    DNS1=100.100.XX.XX
    DNS2=100.100.XX.XX 
    説明 設定ファイルにDNS1およびDNS2設定項目が存在する場合、これらの設定項目の値を設定に表示されている値に変更する必要があります。
    Modify DNS configurations
  3. 次のコマンドを実行して、ネットワークサービスを再起動します。
    sudo systemctl restart network
  4. 次のコマンドを実行して、変更が成功したかどうかを確認します。
    cat /etc/resolv.conf
    DNS modifications successful