Pythonでsshtunnelをつかって本番DBにトンネリング接続を試してみる
パフォーマンステストをする際に開発用のDBじゃ負荷がわかりづらいみたいなことはありませんか?
そんな時にもう開発環境から本番までパフォーマンス測定のためにつなげてみよう!ってなったのでそのやり方を紹介します。
sshtunnel
sshトンネルの用途だったら様々な箇所で有用。
実際のコード
flaskでつなげたのですが、ちょうどdbのsshtunnelをしている箇所だけ抜き出しました。
# coding: utf-8 import sshtunnel ... ... tunnel = sshtunnel.SSHTunnelForwarder( ssh_address_or_host='server_address', ssh_username='username', ssh_port=port_num, remote_bind_address=( '踏み台サーバからのアドレス', ポート番号 ) ) tunnel.start() app.config['DBのURLを入れるためのconfigのkey'] = 'mysql+pymysql://user:pass@127.0.0.1:{}/dbname?charset=utf8mb4'.format(tunnel.local_bind_port) ... ...
sshtunnel.SSHTunnelForwarder
の引数でパスワード設定などもできるので足りない設定があったらいろいろ付け足しましょう。
本番につなげる場合は、できるだけテスト項目をつくりこんでさっと終わらせましょうね。