Cloud Shell の仕組み

Cloud Shell を起動すると、Debian ベースの Linux オペレーティング システムを実行する Google Compute Engine 仮想マシンがプロビジョニングされます。Cloud Shell のインスタンスは、各ユーザーまたは各セッションにプロビジョニングされます。Cloud Shell セッションがアクティブである間、インスタンスは継続します。非アクティブな状態が 1 時間続くと、セッションは終了し、その VM は破棄されます。使用量の割り当てについて詳しくは、制限ガイドをご覧ください。

デフォルトの Cloud Shell エクスペリエンスでは、事前構成済みの一時的な VM が割り当てられ、作業環境はその VM 上で動作する Docker コンテナになります。VM の起動時に自動的に環境をカスタマイズし、Cloud Shell インスタンスに好みのツールが含まれるようにすることもできます。

永続ディスク ストレージ

Cloud Shell は、仮想マシン インスタンスの $HOME ディレクトリとしてマウントされた 5 GB の無料の永続ディスク ストレージをプロビジョニングします。このストレージは、ユーザーごとに割り当てられ、複数のプロジェクトを横断して使用することができます。インスタンスとは異なり、このストレージは非アクティブな状態であっても、タイムアウトすることはありません。インストールされたソフトウェア、スクリプト、.bashrc.vimrc のようなユーザー構成ファイルなど、ホーム ディレクトリに保存されているファイルはすべて、セッションを横断して維持されます。$HOME ディレクトリは、ユーザー専用であり、他のユーザーがアクセスすることはできません。

承認

Cloud Shell で初めて Google Cloud API を呼び出す場合、または認証情報を必要とするコマンドライン ツール(gcloud コマンドライン ツールなど)を使用する場合、Cloud Shell で「Cloud Shell を認可する」ダイアログが表示されます。[認可] をクリックして、呼び出しを行うために使用する認証情報を、ツールで使用できるようにします。

詳細については、Cloud Shell での認可をご覧ください。

事前構成された環境変数

Cloud Shell を起動すると、Console 内のアクティブなプロジェクトが Cloud Shell 内の gcloud 構成に伝播され、すぐに使用できるようになります。GOOGLE_CLOUD_PROJECT は、プロジェクト ID を定義するアプリケーションのデフォルト認証情報ライブラリ サポートで使用される環境変数で、Console 内のアクティブなプロジェクトを指定するようにも設定されます。

ゾーンの選択

Cloud Shell は、複数の Google Cloud Platform のリージョンにまたがってグローバルに分散しています。最初に Cloud Shell に接続したときに、利用可能なリージョンの中で最も近いところが自動的に割り当てられます。自分でリージョンを選択することはできません。Cloud Shell が選んだリージョンが最適でない場合、Cloud Shell VM を使用していないときにより近いリージョンに移行しようとします。

現在のリージョンを表示するには、Cloud Shell セッションから次のコマンドを実行します。

curl metadata/computeMetadata/v1/instance/zone

イメージのロールアウト

Cloud Shell コンテナ イメージは毎週更新され、あらかじめパッケージ化されたツールが最新の状態に保たれます。つまり、Cloud Shell には、Cloud SDK、Docker、他のすべてのユーティリティの最新バージョンが常に付属しています。

root ユーザー

Cloud Shell セッションを設定すると、メールアドレスに基づいたユーザー名を持つ通常の Unix ユーザー アカウントを取得できます。このアクセス権があれば、割り当てられた VM の完全なルート権限を取得でき、必要に応じて sudo コマンドを実行することもできます。

使用可能なツール

Cloud Shell の仮想マシン インスタンスには、次のツールがプレインストールされています。

タイプ ツール
Linux シェル インタープリタ bash
sh
Linux ユーティリティ Debian 用の標準的なシステム ユーティリティ
Google SDK とツール Google App Engine SDK
Google Cloud SDK(Cloud Storage 用の gcloud コマンドライン ツール gsutil を含む)
テキスト エディタ Emacs
Vim
Nano
ビルドとパッケージのためのツール Gradle
Helm
Make
Maven
Bazel
npm
nvm
pip
Composer
ソース コントロール ツール Git
Mercurial
追加ツール Docker
iPython
MySQL クライアント
gRPC コンパイラ
TensorFlow
Terraform

仮想マシン インスタンスに追加のソフトウェア パッケージをインストールできますが、$HOME ディレクトリにソフトウェアをインストールするか、カスタム環境を作成しない限り、インスタンスの終了後にインストールは維持されません。

言語サポート

Cloud Shell の仮想マシン インスタンスには、次の言語への対応がプレインストールされています。

言語 バージョン
Java JRE / JDK 1.8 と 1.11
Go 1.13
Python 2.7.13
Node.js v10.14.2
Ruby 2.6.0
PHP 7.0.33
.NET Core SDK 2.0.0 と 2.1.502
コアランタイム 2.0.0 と 2.1.6

Java 環境のデフォルトのバージョンは、1.11 です。使用中の Cloud Shell のセッションを変更し、JRE と JDK のバージョン 1.8 を使うには、Cloud Shell コマンド プロンプトで次のように入力します。

sudo update-java-alternatives -s java-1.8.0-openjdk-amd64 && export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

1.11.0 に戻すには、次のように入力します。

sudo update-java-alternatives -s java-1.11.0-openjdk-amd64 && export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64/jre

セーフモード

.bashrc ファイルまたは .tmux.conf ファイルに問題があると、Cloud Shell は接続直後に終了します。この問題を解決するには、URL に cloudshellsafemode=true を追加して Cloud Shell をセーフモードで開きます。これによって、Cloud Shell が再起動して root としてログインできるため、ファイル内のあらゆる問題を解決できます。

ホーム ディレクトリ内のすべてのファイルを完全に削除し、Cloud Shell ホーム ディレクトリをクリーンな状態に復元する場合は、完全に Cloud Shell VM をリセットできます。