💻

デバイスを選ばない作業環境を:Google Cloud Shell でつくる「クラウドターミナル」

に公開


「外出先でPCを借りて作業したい」「iPad miniで軽くコードを修正したい」
そんなときに役立つのが、クラウド上に用意されたターミナル環境
今回は、Google Cloud Shell(クラウドシェル)を使って、どこからでも同じ開発環境を使える方法をご紹介します。


🌐 クラウドにターミナル環境を置く

通常、開発や運用は自分のPCに依存しがちです。
エディタ、ターミナル、Node.js や Python などの実行環境、各種 CLI ツール……。
しかし、環境構築にかかる手間や、端末を変えるたびに再設定が必要なのはストレスですよね。

Google Cloud Shell を使えば、この問題を根本から解決できます。

  • ターミナル環境は Google Cloud のサーバ上に常時存在
  • 接続はブラウザのみでOK。
  • デバイスに依存しない:自宅のPC、出先のWindows機、iPad mini + 外付けキーボードでも同じ環境がすぐに使えます。

👚 Google Cloud Shellとは?

Google Cloud Shell は、Google Cloud Platform(GCP)上で提供される、完全に管理されたLinuxターミナル環境です。

  • Ubuntuベースの仮想マシン
  • 標準で gcloud CLI、kubectl、Python、Node.js、Git、エディタ(Cloud Editor)などがインストール済み
  • ブラウザさえあればどこからでもアクセス可能

クラウドインスタンスにログインする手段としてだけでなく、ちょっとしたコーディングやインフラ操作にも活躍します。


🔐 認証がシンプルで、Amazon CloudShell より使いやすい

AWSにも類似のサービスとして AWS CloudShell がありますが、Google Cloud Shell は認証が非常にシンプル

  • Google アカウントさえあれば、即ログイン可能
  • IAM の複雑なロール設定やリージョン指定などに悩まされにくい
  • 初回起動から1分以内に環境が立ち上がる

個人的には、Googleアカウントに紐づいた一貫したUXのおかげで、Amazon CloudShellよりストレスが圧倒的に少ないと感じます。


💰 無料で使える

Cloud Shell は **1ユーザーあたり1台のVM(e2-small相当)**が無料で提供されます:

  • 5GB の永続的なホームディレクトリストレージ
  • GUIベースのコードエディタも無料で利用可能

⚠️ 注意点:保存されるのはホームディレクトリだけ

Cloud Shell には大きな特徴があります。

セッションが終了すると、ホームディレクトリ以外の内容はすべて消える

これはつまり:

  • sudo apt install などでインストールしたパッケージは、次の起動時には消えています
  • /usr/opt などのシステム領域は揮発性です

✅ 対策:パッケージは $HOME にインストール

Cloud Shell を便利に使うコツはシンプルです:

すべて $HOME 以下にインストールすること。

たとえば:

  • Python:pip install --user パッケージ名
  • Node.js:nvm を使って $HOME/.nvm にインストール
  • Rust:rustup を使えば $HOME/.cargo に配置される
  • npm:npm config set prefix ~/.local(ただし nvm 使用時は注意)

このように $HOME を意識すれば、Cloud Shell はログインするたびに同じ環境が使える堅牢なクラウド端末に変わります。


☁️ GCEやAWS EC2への入口としてのCloud Shell

Cloud Shell は、単体でも便利ですが、本番環境の入口として使うのがさらに効果的です。

  • gcloud compute ssh で GCE インスタンスにすぐログイン
  • kubectl で Kubernetes クラスタにアクセス
  • terraform をインストールして IaC 実行端末に
  • AWS CLI をインストールして、AWS EC2 への踏み台としても使える

✍️ おわりに

Google Cloud Shell を活用すれば、開発や運用を完全にクラウド化できます。
ローカルマシンに依存しない、新しい「ターミナルの持ち方」を一度試してみてはいかがでしょうか?

Discussion