[Pycharm]リモートのデータソースへSocksProxy経由で接続する

2020.03.26

はじめに

データアナリティクス事業本部のkobayashiです。

新型コロナの影響でリモートワークが推奨されているためリモートから業務をすることが増えているかと思います。自分はもともと「ふるさと勤務」というリモートワーク前提の勤務体系だったのでこれを機にリモートワークでの開発環境を整備するといったことは無いのですが、以前環境を構築した際に行ったPyCharmのデータベースツール(DataGrid)からSocksProxy経由でデータソースに接続した方法をまとめます。

[IntelliJ IDEA] インストール後の設定(Pythonデバッグ環境の構築まで)

環境

  • macOS Mojave
  • PyCharm 2019.3.3
  • ProxyCap 2.25

結論:PyCharm単体でのSocksProxy経由での接続は難しい

いきなりの結論になってしまうのですが、「PyCharm」「Intellij」「DataGrid」で色々調べたもののどれも決定的な解決方法は見つからず、JetbrainsのCommunityでも踏み台サーバにSocksProxy経由でSSH接続してからRedshiftへ接続するといったものは見つけたのですが、SocksProxy経由でRedshiftへ直接接続する方法は例がなく途方にくれていました。

そこで、結局の所Proxyを中継してくれるツールに頼ることにしその中でもProxyCapが使い勝手がよかったので今回はこのツールを使います。

ProxyCap - Proxifier and SSH Tunneler for Windows/macOS

ProxyCapの設定

公式のサイトからdmgファイルがダウンロードできるのでインストールします。インストールは特に難しいことはありませんので説明は省きインストール後の設定をまとめます。

1. Proxyサーバの登録を行います。ProxyCapを起動すると以下の様なパネルが開きますので、「New」を押してProxyサーバの登録に進みます。

2. 以下の様なタブが開くので、「登録名」「Proxyのタイプ」「ホスト名」「ポート」を入力します。

ここでは − 登録名:SocksProxy - タイプ:SOCKS5 - ホスト名:proxy.example.com - ポート:1080

を想定しています。また「Proxyのタイプ」でSSHを選択することもできますので踏み台サーバを使うこともできます。

3. ここまでの設定で以下の様なProxyが登録できます。

4. 次にルールを登録します。ルールとはどのソフトウェアでどのProxyを使うか(使わないか)を指定するものになります。

「New」を押してルールの登録に進みます。

5. ここで実際にPyCharmにProxyを経由させる設定を登録します。

「Proxy」に先程登録を行った「SocksProxy」を選択し、「Application」に「PyCharm」を指定します。「All Programs」を指定するとProxyサーバに多大なトラフィックが流れることになるので必ず「PyCharm」を指定します。あとは「Rules Name」にわかりやすい名前を入力しルールを登録します。

6. ここまでの設定で以下の様なルールが登録できます。

以上でProxyCapの設定が終わりです。これでPyCharmのデータベースツール(DataGrid)を使ってSocksProxy経由でデータソースに接続することができるようになります。

まとめ

PyCharmのデータベースツール(DataGrid)でSocksProxyを経由してリモートのデータソースへ接続する際にはそれ単体では設定が困難なので、ProxyCapを使って接続することが現状最適だと思います。

また、弊社の「ふるさと勤務」は、地方でなかなか都会に行くことができないが新しい技術に興味があり積極的に取り組みたい人には最適な制度です。

最後まで読んで頂いてありがとうございました。