2017-05-24 13 views
1

私はEC2インスタンスからRDSインスタンスに接続しようとしています。 Amazon RDSとEC2を使用して接続がタイムアウトしました

は、私は(私がところで MysqliDbを使用しています)接続を確立するには、これらの3行で試してみました:

$db = new MysqliDb ('rds_endpoint', 'username', 'password', 'databaseName'); 
$db = new MysqliDb ('rds_endpoint', 'username', 'password', 'databaseName', 3306); 
$db = new MysqliDb ('rds_endpoint:3306', 'username', 'password', 'databaseName',); 

をそして、私はそれが2002 Connection timed out .Iがチェック私を与えるテーブルを取得しようとするとき、テーブルが存在します。

また、RDSとEC2の両方のセキュリティグループをチェックし、すべてのipsからEC2受信ルールを受け取り、RDS受信ルールがEC2インスタンスの公開IPを受け入れるようにしました。私は別のAmazonアカウントを持っていて上記を試してうまくいったので、どこでエラーが発生するか分かりません。

おかげで答えにこれを回す

+3

パブリックではなく、EC2インスタンスの**プライベート** IPをホワイトリストに登録する必要があります。まだ、セキュリティグループをホワイトリストに入れておく方がいいです。 – ceejayoz

+0

ありがとう、今それは動作します! – VictorBG

答えて

3

あなたのEC2インスタンスのプライベート IPではなく、公共のものをホワイトリストに登録したいと思います。まだ、セキュリティグループをホワイトリストに入れておく方がいいです。

AWS内のインスタンスは、EC2とRDSインスタンスの内部IPアドレスを介してRDSに接続し、外部のインターネット接続用のものは接続しません。

個々のIPの代わりにセキュリティグループをホワイトリストに登録すると、EC2サーバーへのIP変更によってRDSアクセスが取り消されず、そのセキュリティグループに新しいインスタンスを起動すると自動的に適切なアクセスが得られます。

+0

セキュリティグループをホワイトリストに登録する方法を説明できますか?プライベートIPアドレスを設定したが、セキュリティグループを設定する方法を知りたい。ありがとう –

+1

@ tim.paetzセキュリティグループの 'sg-f0123'スタイルのIDをIPの代わりに書くだけです。 IIRCの名前を入力すると自動的に完了します。 – ceejayoz

関連する問題