リモートDBを使って開発環境を整える


1.動機

①セットアップ
最近、開発環境をセットアップすることが増えました。
Docker環境が整備されたことで、かなり楽にセットアップを行うことができました。しかし、DBの変更まで、完璧に同期することはかなり難しいです。

②PR確認
DB変更を伴う機能追加や修正の場合、レビュアーはローカルのDBに変更を加える必要があります。しかし、レビューが終わったら元に戻す必要があったりと、かなり時間と手間がかかってしまいます。


2.検討

どんなサービスを使うか?

【要件】
・MySQL5.7
・~20GBの容量

結果として、LightsailのDBインスタンスを利用する形にしました。

エントリーNo.1:RDS for MySQL
 
 Good
 ・本番環境に近い形で運用が可能
  ・最小構成で20GBから始められる
  ・社内ノウハウもある
 Bad
  ・高い!(使わない時間は停止すればコストダウン可能)

エントリーNo.2:Lightsail

 Good
  ・安い!
  ・リカバリーが簡単にできる
 Bad
  ・可用性が微妙
  ・最小構成が40GB~


3.導入

LightsailのDBインスタンスでは、下記のようにパブリックネットワークにすると危ないかもよ?と脅されます。


同じリージョンにあるインスタンスであれば、アクセスできます。
なので、踏み台用のインスタンスを用意します。

「俺は、ローカルからアクセスしたいんだよ!!!話が違うじゃないか!」

そんなあなたに、SSHポートフォワーディングを!!!

・SSHポートフォワーディングとは?
 ローカルから踏み台サーバーのネットワークにアクセスし、DBにアクセス可  能にできます。こんな感じです↓

・Point
 リモートDBに繋ぐ際は、ローカルのDockerから一度出て、SSH Clientのポートフォワーディングで踏み台サーバー経由でリモートDBに繋ぎます。


4.まとめ

少々面倒な方法になってしまいましたが、リモートDBがあることで、開発のスピードが格段に上がったよに感じます。
今後も、ロジック周りの環境が変化することはあると思うので、データと隔離するメリットはあると思います。



コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です