Linux/MacラップトップからAmazonEC2上のMySQLに接続することをお勧めします。ただし、セキュリティ上の理由から、EC2インスタンスでポートを開きたくない場合があります。代わりに、セキュアシェル(SSH)を介してローカルポートを転送できます。これで、ローカルポートに接続すると、代わりにSSH経由でAmazonEC2上のMySQLサーバーに接続するように転送されます。 EC2インスタンスでMySQLサーバーのポートを開く必要はありません。 SSH経由であるため、誰も追跡できません。 SSHトンネルを使用してLinux/MacからAmazonEC2上のMySQLに接続する方法は次のとおりです。
SSHトンネルに慣れていない場合は、SSHを使用してLinux/MacからAmazonEC2インスタンスに接続する方法について読むことができます。
本当に簡単です。シェル/ターミナルを開いて、構文を使用してコマンドを入力するだけです
[sudo] ssh -i "$key" -f -N -L $local_port:127.0.0.1:$remote_port $user@$ec2
意味:
$ key –EC2インスタンスの作成中にAmazonからダウンロードされた秘密鍵ファイル(.pem)の場所
$ local_port –EC2上のMySQLサーバーに転送するローカルマシンのポート。これは接続要求をリッスンするポートです
$ remote_port –MySQLサーバーがEC2で実行されるポート。通常は3306です
$ user –
- Amazon Linux AMIの場合、ユーザー名は ec2-user 。
- RHEL AMIの場合、ユーザー名は多くの場合 root ただし、 ec2-userの可能性があります 。
- Ubuntu AMIの場合、ユーザー名は ubuntu 。
- それ以外の場合は、AMIプロバイダーに確認してください。
$ ec2 –EC2インスタンスのパブリックIPまたはパブリックDNS名
例:
sudo ssh -i "/tmp/private_key.pem" -f -N -L 3100:127.0.0.1:3306 [email protected]
これにより、ラップトップのポート3100が192.150.15.1のポート3306に転送されます。したがって、ラップトップのポート3100に接続しようとすると、192.150.15.1に送信されます。 EC2インスタンスに到達すると、127.0.0.1:3306に送信されます。この場合、127.0.0.1は192.150.15.1を参照し、ローカルマシンを参照しません。これにより、sshセッションがバックグラウンドで実行されます。 MySQLデータベースに接続しようとするときは常に実行されている必要があります。
Linux/MacからAmazonEC2上のMySQLに接続する
参考までに、ローカルホストに移動するMySQLAdminstratorを使用した接続例を示します。透過的に転送されるサーバーホストアドレス127.0.0.1に注意してください。
シェル/ターミナルを開いて入力することもできます(例:パスワードは「passwd」です)
mysql -h 127.0.0.1 --port 3100 -uroot -ppasswd
これは、ローカルホストのポート3100に接続することを意味します。これにより、ポート3306でリッスンしているEC2インスタンスのMySQLサーバーに接続が転送されます。