それで、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しようとしましたが、何も機能しません。何も起こりません。
一部の設定を変更する必要がありますか?
デフォルトでは、RDSはセキュリティグループ(SG)内で指定されていない接続を許可しません。 CIDRアドレッシングまたはAmazonアカウント番号に基づいて許可することができます。これにより、そのアカウントのEC2がアクセスできるようになります。
これは、他のインスタンスからのmySQL接続を受け入れるようにファイアウォールを設定していないため、「ハング」しているだけです。パケットをファイアウォールレベルでドロップしているため、これを解決するには、次のことを行う必要があります。
サーバーのソースIPはエラスティックIPではないことに注意してください(ほとんどの場合、とにかく)デバイスに内部IPがあります(Linuxのifconfigでこれが表示されます)。
ここではセキュリティグループについて多くの話をしますが、次の点も確認してください。
(ルーティンググループが私の問題でした。新しいサブネットを作成する際に、ゲートウェイを使用してルーティンググループに追加することを怠っていました。)
修繕。
DBの下のセキュリティグループでアクセスを許可する必要がありました...
アクセスをロックダウンする前にテストのためにセキュリティを完全に開放する試みで、データベースインスタンスとEC2インスタンスの両方が同じセキュリティグループを使用し、インバウンドとアウトバウンドの両方のポート3306がどこからでも接続できるように構成されました。問題-ノートブックからAuroraに接続できましたが、奇妙なことに、EC2インスタンスがどこにもないかのように、EC2インスタンスからは接続できませんでした。解決策は、別のインバウンドmysql/Auroraルールを追加し、インバウンド接続のソースとしてsame security group idを指定することでした。私のセキュリティグループにはそれ自体を参照するルールがあり、ノートブックまたはEC2インスタンスのどちらからでも接続できます。
同じ問題がありました。
私のために働いた...
VPCとサブネットが十分広いことを確認してください。
次のCIDR構成は、2つのサブネットに適しています。
VPC _10.0.0.0/16
_ 10.0.0.0 — 10.0.255.255 (65536 addresses)
サブネット1 _10.0.0.0/17
_ 10.0.0.0 — 10.0.127.255 (32768 addresses, half)
サブネット2 _10.0.128.0/17
_ 10.0.128.0 — 10.0.255.255 (32768 addresses, other half)
3つのサブネットが必要な場合は調整してください。
RDSデータベースに接続できませんでした。詳細を手動で確認しましたが、すべて問題ありませんでした。問題の兆候はまったくなく、ドキュメントで適切な情報を見つけることができませんでした。私のVPCは狭いCIDR:10.0.0.0/22で構成され、各サブネットには255個のアドレスがありました。 CIDRを10.0.0.0/16に変更し、2つのサブネット間で完全に分割した後、RDS接続が機能し始めました。それが私には意味をなさないので、問題の原因を見つけることができたのは純粋な幸運でした。