タダです.
以前の記事で ECS で Bytebase を展開する記事を書きました.書いた後に気付いたのですが,ECS タスクを落としてしまうとユーザー情報やデータベースの接続情報など Bytebase のデータが無くなっていてデータベースの指定ができてなかったしそりゃそうかと思って専用のデータベースを使う過程を備忘録にまとめます.
専用のデータベースの設定
冒頭の通りデフォルトでは --data
ディレクトリで指定した場所にデータが保存されるので別途専用のデータベースを指定するオプションがあります.ビルドするときに --pg
を指定するか環境変数に PG_URL
を指定すれば良いです.ドキュメントに記載がありますが, postgresql://bytebase:z*3kd2@example.com:5432/meta
か postgresql://bytebase:z*3kd2@example.com:5432/meta?sslrootcert=root.pem
のフォーマットでデータベースの接続情報を渡してあげる必要があります.
専用データベースで RDS の PostgreSQL を指定する
そして本題です.専用データベースに RDS PostgreSQL を指定します.起動時の論理データベースで meta
というデータベースを用意する必要があるため初回の起動時に指定して作成しました.その他のパラメーターは以下のように指定しました.
- データベースエンジンバージョン:
16.1-R2
- インスタンスクラス:
db.t3.small
- ストレージタイプ:
gp3
- ストレージ容量:
20GB
- パラメーターグループ: デフォルトのパラメーターグループ
Bytebase の接続ユーザーを作成する
Bytebase 接続ユーザーとして bytebase
というユーザーを作り,ドキュメント記載の以下の権限を付与しています.これで準備万端です.
- SELECT
- INSERT
- UPDATE
- DELETE
- TRUNCATE
- REFERENCES
- TRIGGER
- CREATE
- CONNECT
- TEMPORARY
- EXECUTE
- USAGE
- ALTER DATABASE meta OWNER TO bytebase
- ALTER SCHEMA public OWNER TO bytebase
専用データベースのオプションを指定してビルドする
この記事ではビルドの指定オプションとして --pg
で指定した場合はコンテナイメージを作り,ECS で起動すれば接続できました.
※変更前 CMD ["--port", "8080", "--data", "/var/opt/bytebase"] ※変更後 CMD ["--port", "8080", "--pg", <接続情報>]
まとめ
Bytebase のメタデータストアとして RDS PostgreSQL を指定してメタデータを保存できるようにしてみました.