gcloud CLIでCloud Shellを使ってみる

Google CloudのCloud Shellはローカル端末からssh接続することができます。本記事ではローカル端末からのssh接続方法についてとメリットをまとめてみました。
2024.06.27

概要

Cloud Shellを使う時、Google CloudのWebのUIからCloud Shellにアクセスをしますが、
ローカルPCのコマンドライン(gcloud CLI)でもアクセスをすることができます。本記事ではそのやり方を説明しています。

そもそもCloud Shellとは

Cloud Shell は、Webブラウザからアクセスできる Google Cloud のCLI(コマンドライン)環境です。仮想マシンを起動したりソフトウェアをインストールしたりせずとも使えます。Cloud Shell は、Docker、Cloud SDK、Terraformなど、Google Cloud を操作するためのツールがあらかじめインストールされた状態で使用することができます。そのため、Cloud Storage や Compute Engine などのサービスをコマンドラインから簡単に操作することができます。

Cloud Shellイメージ画面

Cloud Shellは、Webブラウザからアクセスする度にCloud Shell専用の小さな仮想マシン(Compute Engine)が割り当てられる仕組みです。この仮想マシンはGoogle Cloud上にあり、前述の通りCloud SDKやその他開発ツールがあらかじめインストールされています。Cloud Shell使用後はブラウザを閉じるなどすると、自動的にセッションが切断されリソースが解放されます。ただし、ホームディレクトリは永続的に保存されるため(120日間Cloud Shellにログインしないと削除されます)、次回アクセス時もファイルや設定を引き継げます。

どうやってgcloud CLIでCloud Shellを使うの

ローカル端末のターミナルで以下のコマンドを発行すると、gcloud configで現在activeになっているプロジェクトのCloud Shellへアクセスすることができます。

gcloud cloud-shell ssh --authorize-session

--authorize-sessionオプションを設定することで、現在のgcloud CLIの認証情報を用いてsshすることができます。
上記オプションを設定しなかった場合はパスワード入力を求められます。
コマンドを叩いた後に少し待っていると以下のような表示が出てCloud Shellにログインされます。

Starting your Cloud Shell machine...
Waiting for your Cloud Shell machine to start...done.

※ローカル環境の構成によってはsshの設定やパスワードを要求されます

何がメリットなのか

ローカルからCloud Shellが操作できる

これが一番のメリットだと思っています。VSCodeのターミナルとか、使い慣れたターミナルでCloud Shellを使うことができます。
それにそもそもWebブラウザを開かなくてもCloud Shellを操作できます。これが結構自分にとってはありがたいです。どのタブで開いていたか忘れたりするので・・・

ローカルにCloud Shellのストレージをマウントできる

sshfsを用いることでCloud Shellのホームディレクトリをローカル環境にマウントできます。

まとめ

Webブラウザ以外にローカル端末からでもCloud Shellが使えるのは地味に便利なのでぜひ押さえておきたいところです。今度はsshfsを使ってローカルにCloud Shellのホームディレクトリをマウントしてみようと思います。
この記事がどなたかのお役に立てば嬉しいです。それではまた。

参考

gcloud CLI で Cloud Shell を使用する