継続は力なり

タイトル通り定期的な更新を心掛けるブログです。

Bytebase のメタデータストアを RDS の PostgreSQL を指定する

タダです.

以前の記事で ECS で Bytebase を展開する記事を書きました.書いた後に気付いたのですが,ECS タスクを落としてしまうとユーザー情報やデータベースの接続情報など Bytebase のデータが無くなっていてデータベースの指定ができてなかったしそりゃそうかと思って専用のデータベースを使う過程を備忘録にまとめます.

sadayoshi-tada.hatenablog.com

専用のデータベースの設定

冒頭の通りデフォルトでは --data ディレクトリで指定した場所にデータが保存されるので別途専用のデータベースを指定するオプションがあります.ビルドするときに --pg を指定するか環境変数PG_URL を指定すれば良いです.ドキュメントに記載がありますが, postgresql://bytebase:z*3kd2@example.com:5432/metapostgresql://bytebase:z*3kd2@example.com:5432/meta?sslrootcert=root.pem のフォーマットでデータベースの接続情報を渡してあげる必要があります.

www.bytebase.com

専用データベースで RDS の PostgreSQL を指定する

そして本題です.専用データベースに RDS PostgreSQL を指定します.起動時の論理データベースで meta というデータベースを用意する必要があるため初回の起動時に指定して作成しました.その他のパラメーターは以下のように指定しました.

  • データベースエンジンバージョン: 16.1-R2
  • インスタンスクラス: db.t3.small
  • ストレージタイプ: gp3
  • ストレージ容量: 20GB
  • パラメーターグループ: デフォルトのパラメーターグループ

docs.aws.amazon.com

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 を指定してメタデータを保存できるようにしてみました.