ec2にインストールしたmySqlに外部のサーバから接続する方法です。
先日、サーバ環境の確認ミスによりmySqlが利用できない状態の修正案件がありました。
臨時対応としてこちらで作成したec2インスタンスにmySqlをインストールして外部からアクセスすることで対応するつもりでした。
セキュリティ的な部分では、もろもろ問題があるのですがテスト環境などを構築する時にはよさそうな気もします。
ec2インスタンス立ち上げ時にセキュリティーグループを設定する
ec2立ち上げる時に、セキュリティーグループを設定しますがセキュリティーグループの設定で、3306ポートを解放します。
とりあえず、送信元は、0.0.0.0/0 としてどこからでもアクセスできるようにします。
今回は、VPCは利用しないec2インスタンスを立ち上げます。
mySqlをインストール
立ち上げたec2にmySqlをインストールします。
mySqlのインストールなどはチュートリアルなども多いのでそちらを参照してください。
mySqlの権限を変更する
GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY 'パスワード' WITH GRANT OPTION;
で、mySqlに対してroot権限でどこからでも接続できるようにします。
mySqlの再起動
$ sudo service mysqld restart
などでmySqlに変更した設定を読み込ませます。
外部サーバからのアクセス
mysql -h ec2のパブリックDNS -u root -p
パスワードを入力することで、外部からsshでec2インスタンスのmySqlに接続可能となります。
同様に外部サーバのphpなどからも接続が可能となります。
課題
基本的には臨時対応なので、本来ならsqliteなどを利用するなどを検討した方が良いと思います。
また、利用するのであれば、セキュリティーグループの送信元に対してipの制限をかける事や、rootユーザーではなく個別のユーザーに対して設定を行った方が良いと思います。