LoginSignup
4
2

More than 1 year has passed since last update.

セッションマネージャーを経由したリモートRDSへのアクセス方法

Last updated at Posted at 2021-07-30

概要

プライベートサブネット内の Amazon RDS や Amazon Aurora のアクセス方法で困ったことないですか?
ローカルのクライアントツールからリモートの DB へ EC2 の踏み台サーバ経由でアクセスする方法です。

今回、実現する方法にはセッションマネージャーが必要ですので、予め設定しておきましょう。

動作環境

踏み台サーバ: AmazonLinux2
リモートDB: RDS or Aurora
ローカル: Mac

前提

SSH Config の設定内容

上記の前提の設定が完了したら、ポートフォワードするための SSH の Config を設定します。

~/.ssh/config
host <ホスト名>
    HostName <インスタンスID>
    Port 22
    User ec2-user
    ServerAliveInterval 300
    IdentityFile ~/.ssh/id_rsa.pem
    LocalForward 33306 <リモートホスト RDS or Aurora>:3306
    ProxyCommand sh -c "env PATH=/usr/local/bin:$PATH aws ssm start-session --profile <プロファイル名> --target %h --document-name AWS-StartSSHSession --parameters 'portNumber=%p'"

注目するところは下記です。

 LocalForward 33306 <リモートホスト RDS or Aurora>:3306

ここでは、ローカルポートに 33306 番ポートを開けて、そこへのアクセスを SSH 経由で最終的に、リモートホストの DB: 3306 番ポートへアクセスを流しています。

また、下記の設定で、セッションマネージャー経由で EC2 へアクセスを行ってます。
セッションマネージャー経由なので EC2 には 22 番ポートのセキュリティグループを開ける必要はありません。

    ProxyCommand sh -c "env PATH=/usr/local/bin:$PATH aws ssm start-session --profile <プロファイル名> --target %h --document-name AWS-StartSSHSession --parameters 'portNumber=%p'"

SSH 接続

事前にポートフォワーディング用に SSH を接続しておきます。 ~/.ssh/config で設定したホスト先(踏み台サーバ)にコネクションを貼りましょう。

ssh <ホスト名>

踏み台サーバへ SSH アクセスができていれば成功です。SSH のセッションが生きてる間は、ポートフォワーディングできる状態になっています。DB クライアントツールの作業中は常に SSH 接続を維持しておきましょう。

DB クライアントツールの接続情報

上記設定が完了したら、後は DB クライアントツールから接続します。

Connection Method は TCP/IP で接続
Hostname: は localhost
Port: はポートフォワーディング元の 33306 を指定

あとは、DBのユーザ、パスワード、DBスキーマを設定すると接続が成功します。

スクリーンショット 2021-07-30 12.01.58.png

まとめ

AWS では、リモート環境でかつプライベートなDBへのアクセスには現状踏み台サーバを経由してアクセスするしか方法がありません。
その際に、毎度接続方法を忘れてしまうのでまとめました。

誰かにためになれたら幸いですm(_ _)m

あとがき

以前投稿した下記記事の改良版になっております。
ポートフォワーディング部分のネットワーク図などを見たい方は参考にしてください。
セッションマネージャー over SSH 経由でプライベートサブネット内のRDSへ接続する方法

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2