Cloud Workstations の概要

Cloud Workstations は、Google Cloud 上にマネージド開発環境を提供し、組み込みのセキュリティと事前構成済みのカスタマイズ可能な開発環境を提供します。デベロッパーにソフトウェアのインストールとセットアップ スクリプトの実行を要求する代わりに、再現可能な方法で環境を指定するワークステーション構成を作成できます。ワークステーション構成の更新は、次回ワークステーションを起動すると自動的に適用されます。デベロッパーは、ブラウザベースの IDE、複数のローカルコード エディタ(VSCode など、または IntelliJ IDEA Ultimate や PyCharm Professional などの JetBrains IDE)から、または SSH を介してワークステーションにアクセスします。

Cloud Workstations は、次の Google Cloud リソースを使用して開発環境を管理します。

  • ワークステーション クラスタは、特定のリージョン内のワークステーションのグループと、それらが接続されている VPC ネットワークを定義します。ワークステーション クラスタは、Google Kubernetes Engine(GKE)クラスタとは関係ありません。

  • ワークステーション構成は、ワークステーションのテンプレートとして機能します。ワークステーション構成は、ワークステーション仮想マシン(VM)インスタンス タイプ、永続ストレージ、コンテナ イメージ定義環境、使用する IDE またはコードエディタなどの詳細を定義します。管理者とプラットフォーム チームは、Identity and Access Management(IAM)ルールを使用して、チームや個々のデベロッパーにアクセス権を付与することもできます。

  • ワークステーションは、クラウド IDE、言語ツール、ライブラリなどを提供する事前構成された開発環境です。ワークステーションは、オンデマンドで起動または停止でき、プロジェクトの Compute Engine VM 上で実行できます。永続ディスクはセッション間でデータを保存するためにアタッチされます。

管理者とプラットフォーム チームは、開発チームと共有するワークステーション構成を作成します。各デベロッパーは、ワークステーション構成に基づいてワークステーションを作成します。

コンセプト

図 1.
Cloud Workstations のコンセプト

ワークステーションのライフサイクル

ワークステーションは、一時的な Compute Engine VM 上で実行され、オンデマンドで起動または停止してコストを節約することができます。また、管理者とプラットフォーム チームは、ワークステーション構成アイドル タイムアウトまたは実行タイムアウトを構成して、使用していないワークステーションがシャットダウンされるようにすることで、コストを削減できます。また、各ワークステーションが再起動したときに、すべてのワークステーションがワークステーション構成に適用される最新の変更と同期するようにすることもできます。

永続ストレージ

ワークステーションが停止すると、そのエフェメラル VM はすべてのワークステーション ランタイム データとともに削除されます。管理者チームとプラットフォーム チームは、必要に応じてワークステーション構成で永続ホーム ディレクトリを構成できます。これにより、ホーム ディレクトリに保存されたすべてのデータがセッション間で維持されます。この永続ストレージは、セッション開始時にワークステーション VM に接続され、セッション終了時に切断される永続ディスクとして実装されます。

ワークステーションの DNS ホスト名

すべてのワークステーションに独自のホスト名がつけられます。ワークステーション クラスタ内のすべてのワークステーションは、共通のクラスタ固有のドメイン名を共有し、ワークステーション クラスタは、このホスト名に対する実行中のワークステーションへのルーティング リクエストを処理します。ワークステーションのホスト名は、ブラウザを介してワークステーションに接続するために使用できます。

構成の更新

ワークステーション構成の更新は、構成の更新後に各ワークステーションが再起動すると自動的にワークステーションに適用されます。たとえば、ワークステーション構成でマシンタイプを変更すると、各ワークステーションが次回再起動したときに、関連するワークステーションで使用される VM のマシンタイプが変更されます。管理者とプラットフォーム チームは、ワークステーション構成アイドル タイムアウトまたは実行タイムアウトを構成して、ワークステーションが一定期間内に構成の更新と同期するようにできます。

Gemini コード アシスタンス

Gemini Code Assist は、AI を活用した、Google Cloud のコラボレーターです。ワークステーション構成を作成する際に Cloud Workstations の Base Editor(Cloud Workstations 用の Code OSS)を選択した場合、Gemini はベースエディタで以下のような場合に役立ちます。

  • コードの問題を解決するためのガイダンスを提供する。

  • プロジェクトのコードを生成する。

  • コーディング時にインラインの候補を受け取る。

Gemini は、候補がソースから長い引用を直接行う場合に、ソースの引用を用意してライセンス要件への遵守をサポートします。Cloud Workstations で Gemini を使用する方法については、Gemini Code Assist のアシスト機能を使用したコードをご覧ください。

Gemini がプロンプトやその回答をデータとして使用してモデルをトレーニングすることはありせん。詳細については、Google Cloud の Gemini がデータを使用する方法をご覧ください。

ソフトウェア デリバリー シールド

Cloud Workstations は、ソフトウェア デリバリー シールド ソリューションの一部です。ソフトウェア デリバリー シールドは、フルマネージドのエンドツーエンド ソフトウェア サプライ チェーン セキュリティ ソリューションです。ソフトウェアの構築とデプロイに使用するデベロッパー ワークフローとツール、ソフトウェアの依存関係、CI/CD システム、およびランタイム環境(Google Kubernetes Engine や Cloud Run など)のセキュリティ対策の改善に役立ちます。ソフトウェア デリバリー シールドのその他のコンポーネントで Cloud Workstations を使用して、ソフトウェア サプライ チェーンのセキュリティ体制を改善する方法については、ソフトウェア デリバリー シールドの概要をご覧ください。