RDSへEC2から接続する方法

作成したRDSのmysqlにEC2インスタンスから接続するまでの方法です。ネットワーク的に接続できるようにセキュリティグループの設定を行い、EC2からmysqlコマンドによりMySQLへ接続できるところまでを説明します。

RDSのセキュリティグループを変更

RDSの構築時に正しく設定していればよいですが、もしそうでない場合には、セキュリティグループの設定を変更して、サーバーからの接続を許可する必要があります。

RDSの画面からインスタンス→対象のRDSインスタンスをクリックすると詳細画面が表示されます。

こちらのインバウンドの設定を追加します。

セキュリティグループの名前をクリックするとEC2のセキュリティグループ画面に対象が絞り込まれた状態で表示されますので、タブのインバウンドを選択

編集からインバウンドに接続したいEC2インスタンスのプライベートIP(172.31.xxx.xxx)を追加してあげます。指定はネットワーク範囲になりますので、固定IPのみの場合にはマスクに/32をつけるの忘れずに。

RDSの作成時にパブリックアクセスを拒否している場合にはEIPなどグローバルIPは外部アクセス扱いになり接続できないので、プライベートIPを指定してあげて下さい。

RDSとサーバーを同一VPC内に置かない場合にはパブリックアクセスを許可して、EIPの指定をすれば接続可能かと思います。

設定が終われば、サーバーから接続が可能ですので、接続先を確認しておきましょう。

RDSのインスタンス詳細画面の中に、

エンドポイント
~~~~~~~~~~~~~~~~ap-northeast-1.rds.amazonaws.com

の項目があります。こちらが接続するときに必要になるため、メモしておきます。

EC2インスタンスから接続

インスタンスから接続する際、サーバーは立てる必要がないですが、接続するためのクライアントが必要なためインストールします。

$ yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm -y
$ yum-config-manager --disable mysql80-community
$ yum-config-manager --enable mysql57-community
$ yum install mysql-community-client.x86_64 

レポジトリを追加、mysql5.7のクライアントを落とします。これでmysqlコマンドが使えるようになったので、接続してみましょう。

[root@ ~]# mysql -u 【ユーザー名】 -p -h 【エンドポイント】
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 5.7.22-log Source distribution

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

無事接続ができました。接続がうまくいかない場合にはセキュリティグループが正しいか、作成したユーザー名パスワードに間違いがないか、

また、VPCが同じ空間、もしくは外部アクセスがしっかりできる状態になっているかなどを確かめて、接続できるようにしましょう。