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 がデータを使用する方法とタイミングについての説明をご確認ください

ソフトウェア サプライ チェーンのセキュリティ

Cloud Workstations は、ソフトウェア サプライ チェーンの保護に使用できる Google Cloud コンポーネントの一つです。Cloud Workstations を他の Google Cloud プロダクトや機能と組み合わせて使用すると、デベロッパーのワークフローやツール、ソフトウェアの依存関係、ソフトウェアのビルドとデプロイに使用される CI/CD システム、Google Kubernetes Engine や Cloud Run などのランタイム環境のセキュリティ対策を強化できます。詳細については、ソフトウェア サプライ チェーンのセキュリティをご覧ください。