Google Cloud Platform

Cloud Shell : 任意の端末からの接続が可能に

Google Cloud Platform(GCP)で実行されるアプリケーションの開発や管理に携わっている方なら、さまざまな開発ツールがプリインストールされているオンデマンド対話型シェル環境の Google Cloud Shell のことはよくご存じでしょう。従来はブラウザ経由でなければ Cloud Shell にはアクセスできませんでしたが、これからは gcloud コマンドライン ツールを使って任意の端末から直接接続できるようになります。

SSH セッションは 1 つのコマンドで開始できます。

  erik@localhost:~$ ls
Desktop
erik@localhost:~$ gcloud alpha cloud-shell ssh
Welcome to Cloud Shell! Type "help" to get started.
erik@cloudshell:~$ ls
server.py  README-cloudshell.txt

gcloud を使用すれば、Cloud Shell とローカル マシンの間でファイルをコピーすることもできます。

  erik@localhost:~$ gcloud alpha cloud-shell scp cloudshell:~/data.txt localhost:~
data.txt                                           100% 1897    28.6KB/s   00:00
erik@localhost:~$

Mac や Linux をお使いなら、sshfs をインストールすることで、Cloud Shell ホーム ディレクトリをローカルのファイル システムにマウントすることさえ可能です。こうすれば、お気に入りのローカル ツールを使用して、Cloud Shell ホーム ディレクトリ内のファイルを編集できます。リモート マウントされたファイル システムのデータはすべて永続ディスクに格納されるため、高速で強い整合性があり、セッションやリージョンを超えて保持されます。

  erik@localhost:~$ gcloud alpha cloud-shell get-mount-command ~/my-cloud-shell
sshfs ekuefler@35.197.73.198: /home/ekuefler/my-cloud-shell -p 6000 -oIdentityFile=/home/ekuefler/.ssh/google_compute_engine
erik@localhost:~$ sshfs ekuefler@35.197.73.198: /home/ekuefler/my-cloud-shell -p 6000 -oIdentityFile=/home/ekuefler/.ssh/google_compute_engine
erik@localhost:~$ cd my-cloud-shell
erik@localhost:~$ ls
server.py  README-cloudshell.txt
erik@localhost:~$ vscode server.py

この機能にはさまざまな用途がありますが、ここでは最初のきっかけとして基本的な用途を紹介しましょう。

  • プレイグラウンドとして使用 : Cloud Shell にインストールされているツールや言語ランタイムを使用すれば、評価対象のソフトウェアをローカル マシンにインストールすることなく試すことができます。

  • サンドボックスとして使用 : 信頼できないプログラムを Cloud Shell でインストール、実行すると、それがローカル マシンに悪影響を与えたり、ローカル データにアクセスしたりするリスクを回避でき、ほとんど実行しないプログラムでマシンを汚染することも避けられます。

  • ポータブル開発環境として使用 : ファイルを Cloud Shell ホーム ディレクトリに格納しておくと、デスクでは使い慣れた IDE で編集できる一方、外では Chromebook でウェブ端末やエディタを使用して同じファイルの編集を続けることができます。

CLI の完全なドキュメントはこちらを参照してください。cloud-shell コマンド グループは現在アルファ テストの段階なので、今後変更される可能性があります。ご意見やご提案はドキュメント ページの末尾のリンクからお送りください。

* この投稿は米国時間 3 月 19 日、Google Cloud の Software Engineer である Erik Kuefler によって投稿されたもの(投稿はこちら)の抄訳です。

- By Erik Kuefler, Software Engineer, Google Cloud