network PostgreSQL

SSHトンネルを使ってリモートデータベースをBI

投稿日:2019年8月25日

クラウド上のDB分析環境構築を想定して、ローカルPCにSSHトンネル(ポートフォワード)環境を作ります。

リモートDBポートにクラウド外からセキュアに接続できれば、クラウドにBIツールを入れる手間が省けます。

ssh -NL ローカルPCポート:接続先IP:接続先ポート 踏み台サーバユーザ@踏み台サーバIP

ローカルPCと踏み台サーバでsshコマンドが使える環境であれば、この1コマンドでリモートPCポートをローカルPCポートに持ってくることが出来、後はDBツールで接続するなりBIするなり自由自在です。

動作イメージ

DBポートをSSHトンネルでローカルPC(192.168.0.5)に持ってきて、ローカルPCにいれたMetabaseでBI。

環境

  • ローカルPC(Windows 10 + Cygwin、WSL等sshコマンドが使える環境)
  • 踏み台サーバ(CentOS 7.6)
  • DBサーバ(CentOS 7.6)

以下の記事で環境が構築されている状態です。

PostgreSQL11にdvdrentalデータベースを構築。

WindowsにMetabaseを導入。

手順

SSHトンネルを作成

192.168.0.4:5432を、192.168.0.2経由で、192.168.0.5:5432に持ってきます。

踏み台サーバ(192.168.0.2)にSSHログイン後、-LでローカルPC:5432とDBサーバ:5432をポートフォワード。踏み台サーバが両PCを繋ぐ架け橋になります。

-Nはssh中にリモートコマンドを叩いてしまわない為の保険です。

C:\> ssh -NL 5432:192.168.0.4:5432 naka@192.168.0.2

この時点でlocalhost:5432がPostgreSQLのポートになっているので、A5 Mk2やJailerでDBに接続することが出来ます。この時点で既に便利ですね。

Metabaseで接続

localhost:5432にMetabaseを繋いでBI環境を作ります。

まずはMetabaseを起動。metabase.jarがあるディレクトリでjarを実行します。

C:\tools> java -jar metabase.jar

localhost:3000で起動するのでブラウザからアクセス。新たに分析対象のデータベースを追加します。

メニューから「管理者」をクリックして管理者画面へ移動。

管理者画面で「データベースを追加する」をクリック。

データソースを設定。
sshコマンドで作成したlocalhost:5432を指定します。

設定を保存するとlocalhost:5432経由でDBサーバ:5432に接続され、dvdrentalデータベースの分析を開始できます。

リモートPCに入っているPostgreSQLを、まるでローカルPCに入っているかのような設定でBI出来るようになりました。

リモートPCのPostgreSQLポートを開ける必要が無いのでセキュリティ的にもプラス効果です。

まとめ

Metabaseに限って言えば実はsshトンネルを独自に作ってDB接続する機能は標準搭載されています。

ただMetabaseが起動していないとリモートDBにSSHトンネル出来ないのは不便ですね。

sshコマンドでトンネルを作る知識は汎用かつ実戦的で重宝します。

-network, PostgreSQL
-,

執筆者:

関連記事

スタンドアロンモードのPgAdmin4が開くデフォルトブラウザを変更

PostgreSQL公式GUIクライアントツールの「PgAdmin4」。 PostGISのgeometry型をWeb地図上に表示出来たり、サーバモードで起動すればチーム内で共通的に使えるPostgre …

グローバルIPアドレスの確認をコマンド化する

「Dynamic DNSサービスで定期的にDNS更新をしなきゃいけないけど、固定IPじゃなくて変わった時に調べるのが煩わしい」 といった時に手作業が発生しないようにWeb APIがあるサービスを使って …

ER図自動生成ツール「SchemaSpy」でdvdrentalを可視化

SchemaSpyを使うとDBからデータを吸い上げてテーブルの相関をビジュアライズしてくれます。 本来ER図からDDLを生成出来るようにしておくべきで、出来れば使わない方がいいチート系のツールですがC …

宅内CentOS8にSoftEtherをインストールしてインターネット外部からLAN参加出来るVPN環境を無料で作る

2020/04現在、COVID-19の影響を受けて自宅から会社のVPNに繋いでリモートワークに移行している方も増えてきたんじゃないでしょうか。(残念ながら私はまだ出社必須ですが(-_-; そもそも、も …

PostgreSQL11に一般ユーザ権限でサンプルDB「dvdrental」をpg_restore

データベースインストール後にサンプルデータを投入することで、DBをバックエンドにして動作する他ミドルの検証が楽になったりすることがあります。 それぞれのデータベースで代表的なサンプルデータセットの存在 …

 

shingo.nakanishi
 

東京在勤、1977年生まれ、IT職歴2n年、生涯技術者として楽しく生きることを目指しています。デスマに負けず健康第一。