概要
ローカルマシンからプライベートサブネット内のEC2インスタンスへポートフォーワーディング接続を行い、ローカルマシンにインストールされた「pgAdmin 4」を使用して、Aurora PostgreSQLへ接続する手順について記載します。
以前に書いたこちらの記事ではEC2 Instance ConnectやSSHコンフィグの変更も必要でしたが、今回の手順では、AWS Systems Manager Session ManagerのみでSSHポートフォーワーディング接続が可能です。
前提
- ローカルマシンにAWS CLIがインストール済みである事。
- ローカルマシンにアクセスキー・シークレットキーおよび環境変数「AWS_PROFILE」が設定済みである事。
- ローカルマシンにpgAdmin 4がインストール済みである事。
- EC2インスタンスにSSMエージェントがインストール済みである事。
- EC2インスタンスにIAMポリシー「AmazonEC2RoleforSSM」がアタッチ済みである事。
準備
以下のリンクからSessionManagerPluginのダウンロード、またはコマンドを実行してローカルマシンにセッションマネージャー用プラグインをセットアップ。
Windowsの場合
Macの場合
$ brew install --cask session-manager-plugin
$ session-manager-plugin --version
1.2.463.0
VPCエンドポイントの作成
EC2インスタンスが属するプライベートサブネットに以下のVPCエンドポイント群を作成。
- ssm.<AWSリージョン>.amazonaws.com
- ssmmessages.<AWSリージョン>.amazonaws.com
- ec2messages.<AWSリージョン>.amazonaws.com
ポートフォーワーディング接続
以下のコマンドでAurora PostgreSQLにポートフォーワーディング接続を実行、「Waiting for connections...」と表示されたらOKです。
$ aws ssm start-session \
--target <EC2インスタンスID> \
--document-name AWS-StartPortForwardingSessionToRemoteHost \
--parameters 'portNumber=5432,localPortNumber=15432,host=<接続先DBエンドポイント名>'
上記コマンドの例ではローカルマシンのポートは「15432」でリッスン、接続先DBエンドポイントへはポート「5432」で接続しています。
pgAdmin 4の接続設定
ローカルマシンにインストールした「pgAdmin 4」を起動して、以下の画像の通り「Host name/address」に「localhost」、「Port」に「15432」を入力、Saveを実行して下さい。
Connectionタブ |
---|
ポートフォーワーディング切断
「Ctrl + C」でキャンセルして下さい。