今回は、「EC2で踏み台サーバーを構築して、RDSのDBサーバーに接続」する方法を紹介していきます。
こちらは、あらかじめDBサーバーが構築されている前提となっておりますので、もしDBサーバーの構築がまだの方は、「【AWS RDS】Amazon RDSでDBサーバーを構築しよう!」を参考にして、構築しておいてください。
- 踏み台サーバーって何?
-
目的となるサーバーに接続するための中継サーバーのことです。
セキュリティ対策の強化や、監視対象の絞り込みなどに効果があります。
学習に利用した参考書はこちら!


Amazon Kindle Unlimitedもおすすめ!
踏み台サーバーを構築しよう
早速ですが、踏み台サーバーをEC2で構築していきましょう。
EC2を触ったことがない方は、「【AWS EC2】EC2のインスタンスを作成しよう!」を参考にしてAPサーバーを1台作ってみることをお勧めします。
本記事では、EC2に関して詳しく説明はしません。
EC2のインスタンスを作成
今回の踏み台サーバーのマシンイメージは、「Amazon Linux2」で構築していきます。
また、インスタンスタイプも無料利用枠範囲内の「T2.micro」とします。

キーペアには、任意のキーペア名を入力してもらって、「新しいキーペア」の作成を選択してください。

キーペアのタイプは「RSA」で、プライベートキーファイル形式は「pem」でキーペアを作成してください。
作成すると、pemファイルがダウンロードされるので、大切に保管しておいてください。

残りのネットワーク設定をしていきます。
VPCやサブネットマスクには、あらかじめ作成しているものを設定してください。
セキュリティグループに関しても、「既存のセキュリティグループを選択する」を選択して、セキュリティグループからAPサーバーと運用管理用のセキュリティグループを選択してください。(踏み台サーバーですが、今回はAPサーバー相当のセキュリティグループとしています。)

他のストレージ設定などは、任意で設定をしてください。
本記事ではデフォルトで進めていきます。
実行中になっていることを確認して、インスタンスの作成は終了です。

ローカル環境からDBに接続しよう
では、先ほど作成した踏み台サーバーを介して、DBに接続してみましょう。
今回、接続にはA5M2を利用しますが、使い慣れているものを利用してもらえればいいと思います。
接続情報を確認
まずは、DBに接続するための情報を確認していきます。
最初に確認するのは、RDSのエンドポイントとポートになります。
モザイクになってしまっていますが、赤枠がついているのがエンドポイントです。

次に確認するのは、踏み台サーバーのパブリックIPv4 アドレスです。
先ほど構築した踏み台サーバーの赤枠を確認してください。

ポートフォワーディングしてDBに接続
DBに接続していきますが、普通にDBのエンドポイントに接続しようとしても不可能なので、ポートフォワーディングしてDBに接続することになります。
ローカル端末のOSがWindowsの場合は、コマンドプロンプトで下記コマンドを実行します。
localhost:15432に来たものを、踏み台サーバー経由でエンドポイントにフォワードします。
EC2ユーザーは、変更していなければデフォルトの「ec2-user」になっていると思います。
ssh -I [pem] -NL 15432:[エンドポイント]:[ポート] [EC2ユーザー]@[パブリックIP]
実行できたらA5M2を開いて、データベースの登録画面を開きます。
サーバー名は「localhost」、ポート番号は「15432」として、先ほど実行したコマンドに合わせます。
データベース名やユーザーID、パスワードは、RDSを作成した際に作成したものを設定しておきます。

この状態になったら、一度テスト接続しましょう。

このまま登録すると、テーブルは空ですが、A5M2からの接続はできました。

もちろんですが、先ほど実行したコマンドを止めてA5M2で接続しようとすると、エラーになると思います。

A5M2のSSHトンネルを利用してDBに接続(おまけ)
いちいち、ポートフォワーディングのコマンドを実行してDBに接続するのは大変ですよね。
そんな時にA5M2にはSSHトンネルという機能を利用するのがいいと思います。
サーバー名をモザイクにしてしまっていますが、RDSのDBサーバーの「エンドポイント」を入力してください。
ポート番号も「5432」に変更してください。
他の設定は先ほどと同じです。このままだと、もちろん踏み台を経由せずに直接DBサーバーに接続しようとして、エラーになります。

そこで、SSH2トンネル設定タブを選択します。
設定する内容は、先ほどのコマンドの内容と同じです。
ホスト名に「パブリックIPv4アドレス」、ユーザーIDに「EC2ユーザー」、秘密鍵ファイルに「pemファイル」を入力します。
この状態で、テスト接続をしてください。

SSH2トンネルを利用して、踏み台サーバー経由で接続できたはずです。

このようにA5M2にも便利な機能はあるので、ぜひ活用してください。
最後に
今回は、「EC2で踏み台サーバーを構築して、RDSのDBサーバーに接続」する方法を紹介してみました。
DBサーバーはプライベートな空間に構築されることがほとんどだと思いますので、踏み台サーバーという考え方を理解しておくといいと思います。
また、踏み台サーバーはインスタンスを削除しない限り、課金対象になってしまうので、使わない場合は削除するなどして課金されないように気を付けてください。(停止では課金対象になります。)
他にもAWSを初めて利用する方のために、様々な記事を書いていますので、ぜひ参考にして見てください。
学習に利用した参考書はこちら!


Amazon Kindle Unlimitedもおすすめ!