説明
ECSインスタンスとRDSインスタンスは同じVPCおよびリージョンにあります。 したがって、イントラネットアドレス (インターネットアドレスを使用して接続可能) を使用してRDSインスタンスに接続することはできず、ping操作とtelnet操作の両方が失敗します。
原因
Dockerなどのサービスがインストールされているため、ルーティングテーブルのエントリが変更されます。
ソリューション
以下の点にご注意ください。
インスタンス設定やデータの変更など、リスクを引き起こす可能性のある操作を実行する前に、データのセキュリティを確保するために、インスタンスのディザスタリカバリ機能とフォールトトレランス機能を確認することを推奨します。
ECS (Elastic Compute Service) およびRDS (Relational Database Service) インスタンスを含むインスタンスの設定およびデータを変更できます。 変更前に、スナップショットを作成するか、RDSログバックアップを有効にすることを推奨します。
Alibaba Cloud管理コンソールでログオンアカウントやパスワードなどのセキュリティ情報を承認または送信した場合は、そのような情報をタイムリーに変更することを推奨します。
問題のあるECSインスタンスにログインし、次のコマンドを実行してpingコマンドを使用し、RDSインスタンスの内部IPアドレスをテストします。
ピンg rm-XXX-mysql.rds.aliyuncs.com
同様の出力が表示されます。これは、RDSインスタンスをpingできない場合でも、RDSインスタンスのイントラネットIPアドレスを取得できることを示しています。
次のコマンドを実行して、ECSインスタンスのルートテーブル情報を表示します。
ルート-n
同様のルートエントリがシステムに表示されている場合は、Dockerおよび他のサービスのルートエントリが追加されていることを確認します (通常のECSインスタンスのルートテーブルと比較して確認することもできます) 。
次のコマンドを実行して、ルートエントリを追加します。
route add -net [$ネットワーク] gw [$ゲートウェイ] dev [$Network_Card]
説明実行環境にこのルートエントリを追加しても、現在のビジネスに影響がないことを確認してください。
[$Network] は、RDSインスタンスが配置されているCIDRブロックです。
[$Gateway] はゲートウェイのアドレスです。 ECSインスタンスの内部エンドポイントを使用できます。
[$Network_Card] は、ECSインスタンスがネットワークインターフェイスコントローラー名のイントラネットIPアドレスを一般的にeth0で使用してはならないことです。
次のコマンドを実行して、正常にpingできることを確認します。
ピンg rm-XXX-mysql.rds.aliyuncs.com
適用可能性
ECS
RDS