0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

XserverのDBをBudibaseで使えるようにするまで

Posted at

XserverのDBをBudibaseで使用するまで

背景

Xserverは外部にSQLを公開する機能がないため、直接接続することができません。そこで、ポートフォワーディングを使用し、SSHトンネル接続を行うことで問題を解決します。

環境

  • Xserver: レンタルサーバー
  • Budibase側
    • AWS: t2.micro
    • Docker: Budibaseのホスティング

方法

BudibaseのDockerコンテナ内部でSSHポートフォワーディングを実行します。前提として、Budibaseをホスティングできている環境が整っていることとします。


手順

1. コンテナへ入る

まず、Webアプリのコンテナを特定するため、以下のコマンドを実行します。

docker ps

すると、次のような表示がされるはずです。

CONTAINER ID   IMAGE                 COMMAND                  CREATED          STATUS          PORTS                   NAMES
20200f858a97   budibase/proxy        "/docker-entrypoint.…"   53 seconds ago   Up 50 seconds   80/tcp, 10000/tcp       bbproxy
cbee044be031   budibase/apps         "docker-entrypoint.s…"   53 seconds ago   Up 51 seconds   4001/tcp                 bbapps
597b48847e53   budibase/worker       "docker-entrypoint.s…"   53 seconds ago   Up 52 seconds   4001/tcp                 bbworker

今回は bbapps のコンテナを使用するため、以下のコマンドでコンテナに入ります。

docker exec -it bbapps bash

2. OSの確認

コンテナに入ると、次のような表示になります。

8d146fc87543:/app#

どのOSが使われているかを確認するため、以下のコマンドを実行します。

cat /etc/os-release

結果として、Alpine Linux であることが判明しました。

NAME="Alpine Linux"
ID=alpine
VERSION_ID=3.21.2
PRETTY_NAME="Alpine Linux v3.21"

3. SSHとautosshのインストール

ポートフォワーディングを行うために ssh を使用可能にし、また常時 ssh を維持する autossh もインストールします。

apk update && apk add --no-cache openssh autossh

4. SSH接続のテスト

ポートフォワーディングの前に、通常の ssh で接続テストを行います。
※ 事前に docker cp コマンドなどで 秘密鍵 をコンテナ内にコピーしておくこと。

ssh -i /鍵のパス -p 10022 xserver@ホスト名.xserver.jp

鍵が正しく設定されていれば、SSH接続が成功します。

5. SSHトンネルの作成

次に、以下のコマンドを実行し、Xserverの3306ポートをローカルの3307ポートにトンネル接続します。

autossh -M 0 -N -o ServerAliveInterval=60 -o ServerAliveCountMax=3 \
    -L 0.0.0.0:3307:localhost:3306 \
    -i /鍵のパス -p 10022 xserver@ホスト名.xserver.jp &

この設定により、

  • Xserverの3306ポートローカルの3307ポート にマッピングされる
  • 0.0.0.0:3307 を開放することで、他のサービスからのアクセスも可能になる

6. Budibaseの設定

最後に、Budibase側で以下の設定を行います。

HOST: localhost
PORT: 3307

加えて、任意で ユーザー名・パスワード・DB名 を入力すれば、正常に接続されるはずです。


まとめ

これで、XserverのデータベースにBudibaseからアクセスできるようになります。AWSのセキュリティ設定でアクセス可能なIPを制限することで、よりセキュアな運用が可能です。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?