gcloud CLIでCloud Shellを使ってみる
概要
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のホームディレクトリをマウントしてみようと思います。
この記事がどなたかのお役に立てば嬉しいです。それではまた。