Technical Blog テクニカルブログ
  1. HOME
  2. テクニカルブログ
  3. セキュアな開発環境サービスCloud Workstationsを試す

セキュアな開発環境サービスCloud Workstationsを試す

投稿者:中根

セキュアな開発環境サービスCloud Workstationsを試す

中根です。
本記事は弊社のアドベントカレンダー7日目の記事になります。
今回はCloud Workstationsを試したいと思います。

これはなに

Cloud Workstationsは先日のNextにてプレビュー版が発表されたマネージドの開発環境を提供するサービスです。

上記記事にて

Cloud Workstations は、セキュリティが組み込まれ、開発者に柔軟性をもたらし、よく使われる多くのデベロッパー ツールがサポートされているマネージド開発環境を提供します。企業の技術チームのニーズに対応しています。
・開発者は、場所を問わずにブラウザやローカルの IDE から安全、高速、カスタマイズ可能な開発環境にすぐにアクセスできます。Cloud Workstations を使用すれば、環境構成を統一できるので、開発者育成に要する時間を大幅に短縮し、「私のマシンでは動いたのに」という問題に対処することができます。
・管理者は、開発者向けに開発環境を簡単にプロビジョニング、スケーリング、管理、保護でき、限定公開、自己ホスト型、オンプレミス、さらには他のクラウドで実行されているサービスやリソースへのアクセスを提供できます。Cloud Workstations を使えば開発環境を簡単にスケーリングできるので、日常のタスクを自動化すれば、効率性と安全性の向上を実現できます。

とあるようにセキュリティを意識しつ管理された開発環境を利用できるサービスとなります。
ざっくりイメージでGCPのVPCサービスへの接続が容易なマネージドVS Codeといったところでしょうか。
アーキテクチャ図だとわかりやすいですがGCPのプロジェクト上にPrivate Service Connect経由でインスタンスが立ち上がります。
これはプライベートIPをもったCloud SQLやMemoryStoreと似た構成ですね。

Architecture.jpg

引用: Cloud Workstations architecture

作ってみる

それでは早速作成をしてみましょう。
Workstationsは

  • クラスタ
  • コンフィグ
  • ワークステーション

の3つから構成されます。

cluster.jpg

引用: Cloud Workstations overview

コンフィグ

コンフィグでは利用するクラスタとWorkstationの構成を選択できます。
Workstationの構成では常時稼働するプールサイズを指定することで素早く環境にアクセスできるようになります。
不要な場合は常時稼働を0(Quick Accessを無効)にすることもできます。

config_1.jpg

コストと言う観点ではワークステーションのAuto-Sleep設定も指定できます。
スリープしないという設定は選べないようですが30分〜4時間の間から選択でき、デフォルトでは2時間インアクティブの場合にスリープになる設定です。

config_2.jpg

またワークステーションが利用するコンテナを指定できます。
2022年12月現在下記が利用できるようです。

  • Base Editor(Code OSS)
  • InteliJ IDEA Ultimate
  • PyCharm Professional
  • Rider
  • WebStorm
  • PhpStorm
  • RubyMine
  • GoLand
  • CLion
  • Base Image – no IDE
  • ユーザーカスタムイメージ

クラスタ

クラスタはコントロールプレーンとも呼ばれワークステーションがデプロイされるリージョンと接続するVPCを指定できます。

cluster_1.jpg

留意点としては1つのクラスタ構成に接続できるVPCは1つとなります。
なのでほとんどの場合、必要なクラスタは1つになるかと思いますがもし複数のVPCや複数のリージョンへの接続が必要となった場合はその数だけクラスタを作成する必要があります。

クラスタの作成は画面上では最大20分程度かかるとありますが今回は18分ほどで作成できました。

ワークステーション

コンフィグをもとに作成するのがワークステーションとなります。
コンフィグとクラスタに設定は紐づくのでワークステーションの作成画面はシンプルです。

workstation_1.jpg

ワークステーションを起動してみる

ワークステーションの作成はクラスタと異なり数分で起動できます。

workstations.gif

今回はデフォルトのCode OSSになりますのでVS Codeがブラウザで立ち上がります。
使用感としては起動直後の時点ではローカルのVS Codeと遜色は無いように感じます。
Cloud Shellよりもキビキビ動くのは間違いないです。

ベースのコンテナでは最低限のものが導入されている状態になります。

workstation_3.jpg

より良い開発を行うためにコンテナイメージのカスタムが必要になるかと思います。
ガイドがありますのでこちらを参考にすると良いでしょう。

またWorkstations上の権限についてですがガイドにあります。
gcloud auth loginやTokenによる認証は良く使われることがあるかと思いますがimpersonate_service_accountオプションのガイドはあまり見ないですね。

料金

料金は3つの要素から課金されます。

  • コンピューティング リソースと Persistent Disk リソース(現在 Compute Engine で支払っている料金と同じレートを使用)
  • ワークステーション管理料金 1 vCPU 時間あたり $0.05
  • コントロール プレーンの料金は 1 時間あたり $0.2

2022年12月現在プレビュー版となるためコンピューティングリソースのみの課金となります。

料金の計算例として以下を考えてみましょう。

  • コントロールプレーンとなるクラスタは常時起動(1ヶ月約730時間)
  • ワークステーションはe2-standard-4とし9時-19時の1日10時間利用を21日利用
  • コントロールプレーン: $0.2 * 730h = $146
  • ワークステーションリソースと管理料金: $0.32 * 10 * 21 = $67.2
  • 永続ディスク: 100GB * $0.1/GB =$10GB

となり月に$223.2となります。
詳しくはCloud Workstationsの料金ページも合わせて確認をしてみてください。

まとめ

作成から少し触ってみただけですがCloud Workstationsはマネージドの開発環境として非常に便利なサービスのように感じました。
以下のような場合に強みが出てくるのではないでしょうか。

  • GCPプロジェクト上のリソースにセキュアに接続したい
  • ローカルPCへデータを保存させたくない
  • チームで開発を行うがメンバーの出入りが発生することが多い
  • 開発環境を統一したい

一方考慮はコストになるかと思います。
ローカルPCの考え方によりますが単純に見ればコスト増は間違いないでしょう。
前述のように2022年12月現在Cloud Workstations はプレビュー版ですのでワークステーションの管理とコントロール プレーンの料金は発生しません。
ですのでぜひこの機会にCloud Workstationsを評価てみてはいかがでしょうか。

ページのトップへ