今回は Google Compute Engine のインスタンスで SSH Port Forwarding する方法について。 SSH Port Forwarding を使うと、インスタンスのポートをインターネットに晒すことなく利用できる。
使った環境は次の通り。
$ sw_vers ProductName: Mac OS X ProductVersion: 10.14.3 BuildVersion: 18D109 $ gcloud version Google Cloud SDK 239.0.0 bq 2.0.42 core 2019.03.17 gsutil 4.37
下準備
まずは下準備から。
Google Cloud SDK をインストールする
今回は Google Cloud SDK の CLI を使って Compute Engine を操作する。 なので、最初に Homebrew Cask を使って Google Cloud SDK をインストールしておく。
$ brew cask install google-cloud-sdk
認証する
インストールできたら gcloud auth login
コマンドで Google Cloud Platform の認証をしておく。
$ gcloud auth login
プロジェクトを作る
今回の動作確認をするプロジェクトを用意する。
$ gcloud projects create gce-example-$(whoami)-$(date "+%Y%m%d") $ gcloud config set project gce-example-$(whoami)-$(date "+%Y%m%d")
API と課金を有効にする
プロジェクトで API と課金を有効にする。 この操作だけは CLI からできないのでブラウザから行う。
$ open https://console.cloud.google.com/apis/dashboard
API が使えないと実行できないコマンドが上手くいけばおっけー。
$ gcloud compute instances list
Listed 0 items.
インスタンスを起動する。
適当にインスタンスを立ち上げる。
$ gcloud compute instances create gce-example \ --preemptible \ --zone asia-northeast1-a \ --machine-type f1-micro \ --image-project ubuntu-os-cloud \ --image-family ubuntu-1804-lts
立ち上げたインスタンスにログインする。
$ gcloud compute ssh --zone asia-northeast1-a gce-example
試しに Jupyter Notebook をインストールして起動する。
これでリモートの TCP:8888
ポートで Jupyter Notebook のサービスが動く。
gce-example $ sudo apt-get update gce-example $ sudo apt-get -y install jupyter-notebook gce-example $ jupyter notebook
準備ができたら、続いて SSH Port Forwarding する。
gcloud compute ssh
では --
以降に OpenSSH のオプションをそのまま渡せる。
これを利用してリモートの TCP:8888
をローカルホストの TCP:8888
にマッピングする。
-N
オプションを指定すると、リモートでコマンドを実行しないことを表す。
$ gcloud compute ssh --zone asia-northeast1-a gce-example \ -- -N -L 8888:localhost:8888
あとはブラウザでローカルホストの TCP:8888
ポートにアクセスすれば、いつもの画面が見える。
$ open http://localhost:8888
めでたしめでたし。
スマートPythonプログラミング: Pythonのより良い書き方を学ぶ
- 作者: もみじあめ
- 発売日: 2016/03/12
- メディア: Kindle版
- この商品を含むブログ (1件) を見る