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 Code Assist

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

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

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

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

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

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

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

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