セットアップ後にAmazon RDSに接続できないのはなぜですか?


43

それで、Amazon RDSアカウントを作成しました。そして、データベースのインスタンスを開始しました。

The "endpoint" is:
abcw3n-prod.cbmbuiv8aakk.us-east-1.rds.amazonaws.com

すばらしいです!次に、他のEC2インスタンスの1つから接続しようとします。

mysql -uUSER -pPASS -habcw3n-prod.cbmbuiv8aakk.us-east-1.rds.amazonaws.com

しかし、何も機能せず、ハングするだけです。

私はそれをpingしようとしましたが、何も機能しません。何も起こりません。

いくつかの設定を変更する必要がありますか?

回答:


45

デフォルトでは、RDSはセキュリティグループ(SG)内で指定されていない接続を許可しません。CIDRアドレス指定に基づいて、またはそのアカウントのEC2がアクセスできるようにするAmazonアカウント番号によって許可できます。


27

他のインスタンスからのmySQL接続を受け入れるようにファイアウォールを設定していないため、「ハングしている」だけです。そのため、パケットはファイアウォールレベルでドロップされます。

  1. AWSコンソールに向かいます
  2. EC2タブ
  3. mySQLサーバーのセキュリティグループをメモします(今はこのSG-MYSQLを呼び出します)。
  4. コンソールの左側にあるセキュリティグループをクリックします
  5. 中央のメニューSG-MYSQLでグループをクリックします
  6. 受信タブをクリック
  7. リストからmySQLを選択し、クライアントサーバーの詳細を追加して、ルールを保存します

注サーバーのソースIPはエラスティックIPではありません(ほとんどの場合、とにかく)、デバイスに内部IPがあります(Linuxのifconfigで表示されます)。


1
EC2サーバーでこれを実行しました。すべての標準ポートを開きました。
アレックス

1
EC2インスタンスがなく、これを行うまでRDSを外部に接続できませんでした。
UmairA。14年

1
エラスティックIPを使用する優れた点!
user1641443

1
これをありがとう。ウォークスルーはすべての違いをもたらしました!
ミスターT

1
これを支持するためだけにサーバー障害時にアカウントを作成しました。ありがとうございました。
キャプテンマーベル

7

ここではセキュリティグループについて多くの話がありますが、以下も確認してください。

  • 関連付けられたサブネットは適切に構成されているように見えますか?
  • サブネットは、適切に構成されているように見えるルーティンググループの一部ですか(インターネットゲートウェイが指定されているなど)。
  • RDSは、一般公開されていると言っていますか?
  • そしてもちろん、RDSセキュリティグループとEC2セキュリティグループを確認してください
    • 実際のソースIPは、内部IP(VPCを介して内部でアクセスする場合)または外部IP(ルーターのIP、またはロードバランサー/エラスティックIPとは異なるEC2インスタンスのインスタンスIP)であることを忘れないでください-トラブルシューティングを行うために、すべてのIPとポートへのアクセスを許可しようとする場合があります。

(ルーティンググループが私の問題でした。新しいサブネットを作成する際に、ゲートウェイを使用してルーティンググループに追加することを怠りました。)


明確にするために、RDSサブネットグループで選択するすべてのサブネットには、インターネットゲートウェイが指定されたルーティングテーブルが必要です。私の問題は、選択した2つのサブネットが「プライベート」サブネットであり、インターネットゲートウェイではなく発信トラフィック用にNATゲートウェイが指定されており、RDSがそれらのサブネットの1つでサーバーを選択したことです。ルーティングに慣れていない場合は、この記事を参照してください:medium.com/@mda590/aws-routing-101-67879d23014d
timetofly

@timetoflyと同じ問題の影響を受けました。ECS Fargateで実行することにした1回限りのジョブでは、ファイルのダウンロードにNATが必要でした。NATを設定すると、ラップトップからRDSへの接続が切断されました。仕事が終わったら、インターネットゲートウェイのみを使用するようにサブネットを更新しました。
vitale232

4

一定。

DBの下のセキュリティグループでそれにアクセスを許可しなければなりませんでした...


6
アクセスを許可するために行ったことについて詳しく説明してください。
デビッドCsonka

1
データベースには、1つのルールを持つセキュリティグループがあります。どこからでもポート1433へのアクセスを許可します。接続できません-_-
マフィンマン

1

私は同じ問題を抱えていました。

  1. セキュリティグループ> rds-launch-wizard(またはdb SGに選択された任意の名前)
  2. [受信]タブを選択して、[編集]
  3. 新しい役割を追加する
  4. MySQL
  5. ソース-> aws vm ipを挿入(例:12.3.14.80/32)

私のために働いた...


1

アクセスをロックダウンする前にテストのためにセキュリティを完全に開放する試みで、データベースインスタンスとEC2インスタンスの両方が同じセキュリティグループを使用し、インバウンドポートとアウトバウンドポート3306の両方がAnywhereからの接続を許可するように構成されました。問題-私は自分のノートブックからAuroraに接続できましたが、奇妙なことにEC2インスタンスからではなく、EC2インスタンスがどこでもないように接続できました。解決策は、別のインバウンドmysql / Auroraルールを追加し、インバウンド接続のソースとして同じセキュリティグループIDを指定することでした。私のセキュリティグループには自分自身を参照するルールがあり、ノートブックまたはEC2インスタンスから接続できます。


-3

mysqlインバウンドルールは次のようになります

画像 これはセキュリティグループの問題です。


3
あなたが5年前の質問にぶつかって、何年もそこにあった同じ答えで答える理由はありますか?与えること0.0.0.0/0へのアクセスは、3306どちらかの、素晴らしいアイデアではありません。
ceejayoz

私はユーザーに何を変更すべきか、どのように変更できるかを見せようとしましたが、私のような多くのユーザーが上記のansを読んで問題を解決できないことを知っています。役に立たないかもしれませんが、これを探しているユーザーがいます。役に立たないため、あなたは反対票を投じました。
ニーマルダラ

3
私のダウン票は、人々がMySQLをインターネット全体に開放すべきだということから来ています。危険なアプローチです。
ceejayoz

わかった。セキュリティグループを編集できる場所を表示するだけで、好きなものをドロップダウンから選択できます。
ニーマルダラ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.