2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Google Cloud Workstations入門: 安全かつ再現可能な開発環境の作り方

Last updated at Posted at 2025-12-11

この記事は 3-shake Advent Calendar 2025 (12 日目) の投稿です。

こんにちは! スリーシェイクのイリドリシ愛民 (@realaminevg) です。

最近は主にクライアントワークを行なっているため、セキュリティやオンボーディングを徹底する必要があります。

ローカルで開発する時は、

  • チーム全員が安全な開発環境を使用していること
  • 新しいチームメンバーがすぐに作業を開始できること

としていますが、実際に上記条件を保つのは難しいです。

そこで、Google Cloud Workstationsを導入しました。セキュリティと再現性を重視し構築されており、日々の開発がより楽になりました。

この記事では、以下の 3 点について解説します。

  • Google Cloud Workstations とは何か、なぜ使用するのか
  • Cloud Workstations を設定する方法
  • ブラウザまたはローカルの IDE から Cloud Workstations に接続する方法

さらに公式ドキュメントに載っていない、ローカルの IDE からワンステップで Cloud Workstations を起動する方法も紹介します。

Google Cloud Workstations とは

まずは公式の定義を見てみましょう。

(Google Cloud Workstations は) 機密性の高いエンタープライズのニーズに応えるように構築されたフルマネージド開発環境。Google Cloud 向けの Gemini とのネイティブな統合などにより、開発環境のセキュリティを強化するとともに、デベロッパーのオンボーディングと生産性を加速します。

つまり、

  • どこからでもログインできる安全な開発環境が手に入る
  • チーム全員が同じ開発環境を利用できる
  • 開発環境でGeminiを使用し、AI を活用した開発ができる

ある意味、Github Codespacesや Google 独自のFirebase Studioと共通点が多いかもしれません。一番異なるのが、カスタマイズの幅です。

  • プリセットなどに縛られず、インスタンスタイプを自由に設定したり
  • IAM を通じて開発環境の安全性を向上させたり
  • 最初に提供されるコードエディタ(多くはブラウザでのみ利用可能)以外の IDE を使用したり
  • などなど

Github Codespaces や Firebase Studio は、すぐに開発を着手できる環境を提供しますが、上記のカスタマイズは不可能に近いです。

一方、Google Cloud Workstations は、セットアップに少し手間がかかりますが、環境を完全にカスタマイズできるのが大きな利点です

Cloud Workstations を使ってみよう

早速 Cloud Workstations を使ってみましょう!

ワークステーションクラスタとワークステーション構成の設定手順をガイドします。その後、ワークステーションを作成できるようになります。

前提

  • Google Cloud アカウントとプロジェクトを作成していること
  • Cloud Workstations APIを有効にしていること

1. ワークステーションクラスタを作成する

ワークステーションクラスタは、複数のワークステーションを管理するものです。Google Cloud リージョンごとに一度だけクラスタを作成する必要があります。

Cloud Workstations のクラスタ管理ページに移動し、新しいクラスタを作成します。

クラスタ名を「test-cluster」にします。

これでクラスタが作成されます。作成されるまで 20 分かかることがあるのでご注意ください。

2. ワークステーション構成を作成する

ワークステーション構成はマシンタイプ、ディスクサイズ、コンテナイメージなど、ワークステーションの設定を共通化するテンプレートです。ワークステーション構成を作成し、チーム全体の環境を統一化できます。

今回はワークステーション構成のデフォルト設定をそのまま利用しますが、詳しく知りたい方はドキュメントを参照してください!

Cloud Workstations のワークステーション構成ページに移動し、「作成」ボタンを押します。

構成は「test-configuration」と名付け、前に作成した「test-cluster」クラスタを利用します。

3. ワークステーションを作成する

いよいよ、ワークステーションを作成できます!

Cloud Workstations のワークステーションページで「ワークステーションを作成する」ボタンを押します。

ワークステーションを作成する

ワークステーションは「test-workstation」と名付け、前に作成した「test-configuration」構成を利用します。

「作成」ボタンを押すと、ワークステーションが作成されます!🎉

Cloud Workstations に接続しよう

ワークステーションへの接続方法を 2 つ紹介します。

  • ブラウザから接続する
  • ローカル IDE から接続する

まず、Cloud Workstations のワークステーションページで「Start」(起動)ボタンを押し、ワークステーションを起動します。

ブラウザから接続する

ワークステーションを起動したときに表示された「開始」ボタンを押します。

ブラウザ内でコードエディタが表示されます。VSCode のオープンソース版「Code-OSS」をもとにしたコードエディタのため、UI に見慣れている方が多いのではないでしょうか。

このコードエディタでは、リポジトリをクローンしたり、プログラムを実行したりと、通常の開発環境と同じように作業ができます!

ローカル IDE から接続する

ローカル IDE を通じてワークステーションに接続することもできます。

公式ドキュメントをもとに接続方法を紹介します。

(ここでは VS Code ベースのエディタのみを扱いますが、JetBrains IDEも使用できます!)

接続する前に、以下手順を完了してください。

  • ワークステーションを起動する
  • gcloud CLIをインストールする
  • ローカル IDE で「Remote - SSH」 VS Code 拡張機能をインストールする

まず、ワークステーション名を調べる必要があります。Cloud Workstations のワークステーションページで「詳細を表示」リンクをクリックしワークステーション名を確認できます。

ワークステーション名をコピーします。

ワークステーション名が分かったら、以下のコマンドを実行します。(ワークステーション名を置き換えます)

gcloud workstations start-tcp-tunnel --local-host-port=:9998 <YOUR_WORKSTATION_NAME> 22

ローカル環境からワークステーションへの TCP トンネルをポート 9998 で開きます。

Listening on port [9998].

開いた TCP トンネルを利用しローカル IDE からワークステーションに接続できます!リモートホストへの接続方法に従い、リモートホストはuser@localhost:9998を入力します。

Cloud Workstations へのワンステップ接続方法

ローカル IDE からワークステーションに接続する方法を紹介しました。が、もっと良い方法はないでしょうか?

上記の方法では、ワークステーションに接続するには3 つのステップが必要です。

  1. Cloud Workstations のワークステーションページでワークステーションを起動する
  2. ターミナルでgcloud workstations start-tcp-tunnelコマンドを実行する
  3. ローカル IDE でワークステーションに接続する

3 つのステップと聞くと、思うほど多くないかもしれません。しかし、「Web ブラウザ」「ターミナル」「ローカル IDE」と 3 つのプログラムを操作する必要があります。このようなコンテキストスイッチが生産性の低下に繋がり、できるだけ避けたいものです。

そこで、ワンステップでワークステーションに接続する、公式ドキュメントに載っていない接続方法を紹介します。

1. スクリプトを利用しワンステップ接続を実現する

ワークステーションの起動から TCP トンネルの作成まで、接続作業全体を自動化するスクリプトを提供します。SSH 設定ディレクトリに配置します。(例:~/.ssh/workstation-startup.sh

GCP_WORKSTATION_NAME="$1"
GCP_TUNNEL_HOST="$2"
GCP_TUNNEL_PORT="$3"

trap 'kill "$jpid" 2>/dev/null' EXIT

>&2 echo "Starting server..."

gcloud workstations start $GCP_WORKSTATION_NAME 2> /dev/null

>&2 echo "Server is ready!"

>&2 echo "Starting TCP tunnel..."

gcloud workstations start-tcp-tunnel --local-host-port=$GCP_TUNNEL_HOST:$GCP_TUNNEL_PORT $GCP_WORKSTATION_NAME 22 2> /dev/null &
jpid="$!"

until nc -z $GCP_TUNNEL_HOST $GCP_TUNNEL_PORT 2>/dev/null; do
    sleep 1
done

>&2 echo "Started tunnel on host $GCP_TUNNEL_HOST and port $GCP_TUNNEL_PORT"

nc $GCP_TUNNEL_HOST $GCP_TUNNEL_PORT

スクリプトを実行するときの流れは以下になります。

  • ワークステーションを起動する (gcloud workstations start)
  • ワークステーションへの TCP トンネルをバックグラウンドで開く (gcloud workstations start-tcp-tunnel)
  • TCP トンネルが開くまでに待機する (until nc ...)
  • netcat (nc) コマンドを通じて TCP 通信を SSH にリダイレクトする

2. SSH 設定を変更する

次は、SSH 設定ファイル(通常は~/.ssh/config)を開き、以下を追加します。

Host gcp-cloud-workstation # Host名は好きな名前に変更OK
  HostName localhost
  Port 9998 # Portは好きなポートに変更OK
  User user
  StrictHostKeyChecking no
  UserKnownHostsFile /dev/null
  ConnectTimeout 0
  ProxyCommand sh ~/.ssh/workstation-startup.sh "<YOUR_WORKSTATION_NAME>" %h %p # 実際のワークステーション名に変更

ProxyCommandを利用しスクリプトを実行します。

StrictHostKeyCheckingUserKnownHostsFileの設定に関して

ワークステーションを起動するたびに SSH ホストキーが変わるため、そのままスクリプトを実行すると、以下の警告が表示され、接続できなくなります。

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.

TCP トンネル経由で localhost に安全に接続しているため、この警告を無効にしても問題ありません。

3. ワークステーションを起動し接続する

これで、ワンステップでワークステーションに接続できます!追加した SSH ホスト「gcp-test-workstation」を選択すれば、ローカル IDE がワークステーションを起動し、TCP トンネルを開き、ワークステーションに接続します。

まとめ

この記事では、Google Cloud Workstations の基本的な使い方や、ローカル IDE からのワンステップ接続方法まで解説しました。

Google Cloud Workstations をうまく利用すれば、安全性・再現性の高い開発環境を実現できます。ブラウザ内であろうとローカル IDE であろうと、この記事が Google Cloud Workstations を試してみるきっかけになれば嬉しいです。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?