このトピックでは、Elastic Compute Service (ECS) インスタンスから ApsaraDB RDS for MySQL インスタンスへの接続障害をトラブルシューティングする方法について説明します。
ビジネスをデバッグするためのテスト環境をセットアップするときに、ECS インスタンスから RDS インスタンスに接続できない場合があります。接続障害はさまざまな理由で発生する可能性があります。たとえば、RDS インスタンスのネットワークタイプが ECS インスタンスのネットワークタイプと異なる場合や、ECS インスタンスの IP アドレスが RDS インスタンスの IP アドレスホワイトリストに追加されていない場合があります。このトピックでは、接続障害の最も一般的な原因と、接続障害のトラブルシューティングに使用できる方法について説明します。
異なる VPC
VPC は、Alibaba Cloud 上に構築された分離されたネットワーク環境です。 VPC は論理的に相互に分離されています。 ECS インスタンスと RDS インスタンスの両方が VPC に存在する場合は、内部ネットワークを介して相互に通信するために、同じ VPC に存在する必要があります。
方法 1: RDS インスタンスと ECS インスタンスが同じ VPC に存在するように VPC を変更します。この方法を使用することをお勧めします。
RDS インスタンスの VPC を変更するか、ECS インスタンスの VPC を変更できます。
方法 2: Cloud Enterprise Network (CEN) インスタンスを作成して、ECS インスタンスの VPC と RDS インスタンスの VPC 間にプライベート接続を確立します。詳細については、「CEN を使用してリージョン内ネットワーク通信を有効にする」をご参照ください。
方法 3: インターネット経由で ECS インスタンスから RDS インスタンスに接続します。この方法では、最適なパフォーマンス、セキュリティ、または安定性を確保できません。
異なるリージョン
パブリックネットワーク (パブリックエンドポイント) 接続: RDS インスタンスの パブリックエンドポイント を使用して、パブリックネットワーク経由でリージョンまたはアカウントをまたいで接続できます。パブリックネットワーク経由の RDS インスタンスとの間のトラフィックは課金されません。
内部ネットワーク (プライベートネットワーク) 接続: 通常、VPC は分離されているため、異なるリージョンまたはアカウントにある ECS と RDS は内部ネットワーク経由で接続できません。ただし、VPC ピアリング接続またはクラウドエンタープライズネットワークを使用して接続を確立し、ECS がリージョンまたはアカウントをまたいで RDS インスタンスにアクセスできるようにすることができます。
VPC ピアリング接続は、異なるリージョンまたはアカウント間で VPC を相互接続することをサポートしています。費用対効果の高いソリューションですが、設定が比較的複雑になる可能性があり、限られた数の VPC 相互接続のシナリオに最適です。
クラウドエンタープライズネットワーク: リージョン間またはアカウント間の VPC 相互接続をサポートします。構成は容易ですが、比較的コストが高く、複数の VPC 相互接続を伴う複雑なシナリオに適しています。
誤った IP アドレスホワイトリスト設定
default というラベルの付いた 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 アドレスが無効です。考えられる原因:
ドメイン名解決の失敗またはエラー
ドメインネームシステム (DNS) サーバーに障害が発生した場合、またはネットワークインターフェースコントローラー (NIC) の構成が変更された場合、ドメイン名が解決に失敗するか、誤った IP アドレスに解決される可能性があります。この場合、ping
コマンドまたは telnet
コマンドを実行して、RDS インスタンスへの接続を確認できます。
ping <Domain name>
telnet <Domain name> <Port number>
例


RDS インスタンスが接続テストに失敗した場合は、次の操作を実行して、ネットワークインターフェースコントローラー (NIC) の構成ファイルを変更します。
構成ファイルを編集モードで開きます。
vi /etc/sysconfig/network-scripts/<NIC の構成ファイルの名前>
説明
コマンドの NIC は、ECS インスタンスの NIC を指します。ifconfig
コマンドを実行して、構成ファイルのファイル名拡張子を確認できます。デフォルトのファイル名拡張子は ifcfg-eth0 です。
構成ファイルの末尾に次の設定を追加します。
DNS1=100.100.XX.XX
DNS2=100.100.XX.XX
説明
DNS1 および DNS2 構成項目が構成ファイルに存在する場合は、これらの構成項目の値を設定に示されている値に変更する必要があります。

次のコマンドを実行して、ネットワークサービスを再起動します。
sudo systemctl restart network
次のコマンドを実行して、変更が成功したかどうかを確認します。

RDS インスタンスがネットワーク接続作成中の状態
ApsaraDB RDS コンソールの [タスク] ページに移動し、「ネットワーク接続の作成中」状態のタスクを見つけて、[再試行] または [切り替え時間の変更] をクリックします。詳細については、「タスクセンターを使用する」をご参照ください。