AWSでは、Bastion HostでVPCをセットアップしています。要塞ホストは、VPC上の他のサーバーにSSHで接続できるパブリックアドレストラフを持つ単一のEC2インスタンスです。
VPC内でRDS MySQLインスタンスを作成しました。MySQLワークベンチを使用して接続したいと思います。詳細な手順に従いました here ですが、「ステップ6:リモートSSH設定のセットアップ」で、「Amazon EC2インスタンスのパブリックDNSを提供する」(要塞ホスト)を求められます。
MySQLワークベンチは、そのサーバー上の特定のMySQLリソースをチェックします。ただし、MySQLがインストールされていない要塞ホストのアドレスを提供したため、これは私の意見では正しくありません。その結果、「開始/停止コマンドの場所を確認する」と「MySQL構成ファイルを確認する」ための最後の2つのチェックは失敗します。
次に、RDS MySQLインスタンスのエンドポイントアドレスを使用しようとしましたが、成功しませんでした(プライベートサブネットにあるため、パブリックにアドレス指定できません)。
多くの人がこれを実行しているようですが、ここで何が間違っていますか?
私は今何週間も似たようなことに苦労しています。数分前にそれを理解しました。
それを使用して接続できました。ただし、セットアップでVPCを使用しませんでした。お役に立てれば。幸運を!
VPCを使用しているため、これはサブネットからの接続のみを受け入れるために設定する必要がある方法です。
ポート3306でプライベートサブネットからのすべてのIPを許可する新しいルールを追加します
例:ルールINBOUND 3306(MYSQL)172.33.11.0/24
mysql workbench tcp/sshを使用すると動作します(AndrewSmileyの回答に従ってください)。
SSHトンネリングの使用をお勧めします。
AWSのVPC接続を本当に使用し、パブリックIPを許可しない場合は、次の手順を実行します。
EC2とRDSの両方が割り当てられているセキュリティグループが1つある場合は、TCPにmysql 3306のインバウンドルールを追加しますが、ソースフィールドにはIPまたはサブネットを入れず、実際のセキュリティグループを入れますID。すなわちsg-9829f3d2。
個人的にVPCには2つのセキュリティグループがあります。
最初のセキュリティグループ1はEC2インスタンスで使用されており、EC2に必要なポート、つまり80と22のみを許可します。
2番目のセキュリティグループ2は、RDSインスタンスだけで使用されており、mysql(3302)を許可するルールが1つあり、ソースフィールドはセキュリティグループ1のIDに設定されています。
すべてのMysqlワークベンチSSHトンネリングは、2つのセキュリティグループでも機能します。
これはUBUNTU Mysqlワークベンチ用です
Bastion/jump/any instance(machine)からのポート3306でのリクエストを受け入れるために、RDSにリンクされたセキュリティグループにインバウンドルールを追加する必要があります。マシンにはパブリックIPが関連付けられている必要があります。
MYSQLワークベンチを介してSSHトンネルをセットアップする前に、最初にRDSに接続できるかどうか、machineで確認してください。
接続をテストするには:
mysql -u{username} -p{password} -h ***-db-***.cmmaberpdqoc.***.rds.amazonaws.com -P 3306
{username}、{password}、およびHostを資格情報に置き換えます。
写真に従ってください、あなたは接続できるはずです。
Bastionホスト(EC2インスタンス)にSSHトンネルを作成して、ローカルマシンからリモートRDSインスタンスにポートを転送できます。
mac/linuxでは、これはコマンドです(Windowsの場合、以下のリンクの指示に従ってください)。
ssh -L 3306:myinstance.123456789012.us-east-1.rds.amazonaws.com:3306 your_c2_ip
その後、次の設定を使用してワークベンチに接続できます。
接続方法:標準TCP
ホスト名:localhost
この投稿では、メソッドについてさらに詳しく説明します。 https://userify.com/blog/howto-connect-mysql-ec2-ssh-tunnel-rds/
これが私にとって問題を解決したものです。 RDSダッシュボードで、インスタンスのセキュリティグループを確認します。これをクリックすると、セキュリティグループページに移動します。
インバウンドとアウトバウンドの両方の「すべてのトラフィック」と表示されますが、編集をクリックし、ソースに「マイIP」と表示されていることを確認します。すべてのIPを使用することはお勧めしません。これにより、インターネット上の任意のIPにアクセスできるようになります。静的IPがない場合は、接続が機能しなくなったらこのフィールドを更新してください。
この後、AWS RDS T2インスタンスに接続できました。