【GCP】gcloudでポートフォワーディングする方法
この記事では、GCPでインスタンスを立て、ローカルPCからJupyter Notebookを使用するためにインスタンスへポートフォワーディングをする方法について書いていきます。
はじめに
記事の目的
下記記事のポートフォワーディングのコマンドをそのまま実行するだけだとアクセスできなかったので、他に同様のハマり方をしてしまった方の手助けになればと思います。
gcloudでポートフォワーディングするためのコマンド
公式ドキュメントへのリンクです。貼っておきます。
環境
本題
実行したコマンド
Qiitaの記事に記載されている通りですが、下記を実行しました。
$ gcloud compute ssh --zone {インスタンスのゾーン} "{インスタンス名}" -- -N -f -L 28888:localhost:8888
発生したエラー(解決したい課題)
上記コマンドを実行後、ブラウザからlocalhost:28888
にアクセスしても接続できません。(コマンドはターミナルからsshコマンドで打っていますが、ブラウザからアクセスしても同じです)
chittai:~ chittai$ ssh -p 28888 localhost ssh: connect to host localhost port 28888: Connection refused
原因
解決に至るまではかなり迷ったのですが、単純に指定するポートが間違っていました。そのため、ポートの確認方法を調べました。
対策
Jupyter Notebookで使用されているポートの確認
下記コマンドでJupyterのプロセスを確認します。
ps -ef | grep jupyter jupyter 553 1 0 17:46 ? 00:00:00 /usr/bin/python3 /usr/local/bin/jupyter-lab --config=/home/jupyter/.jupyter/jupyter_notebook_config.py
プロセスに指定のあった下記スクリプトの中身を確認するとポート番号が書いてあります。
cat /home/jupyter/.jupyter/jupyter_notebook_config.py
最終的に実行したコマンド
今回は8080だったので、下記コマンドを実行しました。
$ gcloud compute ssh --zone {インスタンスのゾーン} "{インスタンス名}" -- -N -f -L 28888:localhost:8080
感想
結果自体は問題なかったのですが、切り分けがちゃんとできずかなり時間がかかってしまったので、もしポートフォワーディングがうまく行かないときは試してみてはいかがでしょうか。