本記事はBeeX Advent Calendar 2025の1日目の記事です。
はじめに
TROCCOは、primeNumber社が提供するマネージドのETLツールです。
この製品では、ETLパイプラインを作成する際、コネクタを利用して各製品・ツールに接続します。
接続の際は、グローバルIPアドレスで通信が行われるため、グローバルIPアドレスを持たない製品やツールに接続することはできません。
今回は、プライベートな領域にあるデータベースから情報を取得するために利用できるSSHトンネルを使った接続を試します。
本記事内で実現すること
- Linuxサーバ内でTROCCO専用ユーザの作成と秘密鍵の作成
- SSHトンネルを使ったETLパイプラインの構築(TROCCO⇔踏み台サーバ→SQL Server)
この記事で取り扱わないこと
- サーバ自体の設定やネットワーク等のリソースの構築・設定変更
環境
- Azure
- Linux (ubuntu 24.04)
- Microsoft SQL Server
前提条件
- 踏み台サーバとして利用するLinuxにグローバルIPアドレスを使った接続ができること。
- 踏み台サーバからSQL Serverに通信ができること。
(本記事ではAzureを使うため、ファイアウォールのルールやNSG設定等が完了していること)
実際にやってみる
事前設定
- TROCCOで利用するための専用ユーザを作成します。
sudo adduser trocco
-
TROCCOから接続する際に必要となる秘密鍵を作成します。
TROCCOは、以下の方式の中から選択できます。- SSHユーザ名+SSHパスワード
- SSHユーザ名+SSH秘密鍵(パスフレーズなし)
- SSHユーザ名+SSH秘密鍵(パスフレーズあり)
今回は、SSHユーザ名+SSH秘密鍵(パスフレーズあり)で検証します。
また、鍵はED25519で作成してみます。※RSAも可
# ユーザスイッチ
sudo su - trocco
# SSHディレクトリの作成と権限変更
mkdir -p ~/.ssh
chmod 700 ~/.ssh
# キーペアの作成
ssh-keygen -t ed25519 -f ~/.ssh/trocco_key
- 公開鍵の登録をします。
# 公開鍵の内容を登録
cat ~/.ssh/trocco_key.pub>>~/.ssh/authorized_keys
# 権限の変更
chmod 600 ~/.ssh/authorized_keys
chmod 600 ~/.ssh/trocco_key
- 秘密鍵の内容を表示します。
ここで表示した内容はTROCCOの接続設定に利用するため、メモをしておきます。
# 秘密鍵の内容を表示
cat ~/.ssh/trocco_key
-
TROCCOの接続設定を行います。
SQL Serverの接続設定画面では、SSH経由で接続するというチェックボックスがあります。
チェックすると接続情報を入力する欄が表示されるため、必要な個所を入力します。今回は SSHユーザ名+SSH秘密鍵(パスフレーズあり) の方式を利用するので、以下の個所は最低限入力が必要になります。
SSHホスト :踏み台サーバのグローバルIPアドレス
接続ユーザー:作成したユーザー名
SSH秘密鍵 :先ほど表示した秘密鍵の内容
パスフレーズ:キーペア作成時に入力したパスフレーズ
⚠SSH接続経由の接続を行う場合、以下の点を考慮する必要があります。
・データベース用のプライベートエンドポイントがある場合でも、ホスト名はFQDNにする必要があります。
・データベースユーザ名は、「データベースユーザ名@サーバー名」にする必要があります。(SSH経由でない場合は、データベース名は不要です。)
これで準備はOKです。
では、実際に通信ができるかを試してみましょう。
データを連携してみる
TROCCOを使ってSQL ServerのデータをSnowflakeに連携してみます。
転送設定作成画面で必要事項を入力していきます。

次にSnowflakeのコンソールでデータ転送されているかを確認します。
無事にされていましたね。

これでSSHを経由してSQL Serverからデータを連携することができました。
おわりに
SSH接続にすると思わぬところで詰まりました。(データベースユーザ名など)
それぞれ設定を変えたときにどのような個所まで影響があるか洗い出すのも面白いなと思いました。
これからTROCCOを導入する際など、このエントリが何か役に立てれば幸いです。


