DBeaverを利用して、プライベートサブネットのRDSへ接続する方法

まず、DBeaverとは何か。といいますと。
開発者、データベース管理者、アナリスト、およびデータベースを操作する必要があるすべての人々のための無料のマルチプラットフォームデータベースツール となっております。

DBeaver上からデータベースに対して、アクセスして、データの参照やデータの操作をすることが出来るツールと考えて頂けたらいいと思います。 ターミナル上で、データを確認するのは操作性・可視性の観点でも難しいので、そこを解決してくれます。

さて、本題は、このDBeaverを活用して、AWSのプライベートサブネットに配置してあるRDSへアクセスすることです。

前提としては、RDSのセキュリティグループのインバウンドの条件をEC2からのmysqlアクセスのみしか受け付けていない。ということを前提にしていきます。

この場合、外部からRDSのエンドポイントにアクセスしようとしても、拒絶されてしまいます。

これを解決する方法があります。
sshポートフォワード といわれる手法です。

この辺が詳細に書いている部分だと思います。
https://qiita.com/lighttiger2505/items/ea33291639a8656d50b4

簡単にまとめてしまうと、
「一度、EC2にsshでアクセスして、そこからRDSにmysqlでアクセスする」という手法です。アクセスできるトンネルを作るといった表現をされたりもします。

これを、 DBeaver では簡単に出来てしまいます。

DBeaverで、 sshポートフォワード を実装する

DBeaverの「編集 接続 」で、sshタブを開きましょう。

「SSH Tunnnelを使用する」を選択する。

各項目を設定しますが
ssh接続は、EC2に対して、ssh接続できるためのものです。
なので、
・HOST/IP :EC2のパブリックIPアドレス
・User Name:EC2にログインするためのusername
・Private Key:設定した内容によりますが、pemファイルが置いてあるファイル場所を指定しております。

つづいて、 一般タブを開きましょう。

こちらは、RDSへ接続するための情報です。

・Server Host:RDSのエンドポイント
・Database:作成したDatabase名
・ユーザー名:Databaseへのアクセスが認められているユーザー名
・パスワード:パスワード

これで、Privateサブネット配下にある、RDSに対して、DBeaverを利用してアクセスすることが出来ます。