Cloud Workstationsとは
クラウドにマネージドな開発環境をセキュアに構築できるサービスです。
クラウド上に、事前に必要なソフトウェア等をインストールした構築済みの開発環境をデプロイすることで、
開発者はローカルに環境構築することなく、作業を始めることができます。
また、以下のようにセキュリティにも優れています。
- 環境に接続できるユーザはIAMで管理できる
- ソースコードやデータを各開発者のローカルに分散保存されることがなくなる
- VPC上にインスタンスを作成することから、GCのさまざまなセキュリティサービスが適応できる
実践
ワークステーションをデプロイするまで
Cloud Workstationsにおいては、「ワークステーション」と呼ばれるインスタンスが開発環境の実体となります。
ワークステーションにはインスタンスのスペックや環境を定義した構成設定を紐づけます。
ワークステーションと設定ファイルはクラスタでまとめられ、管理されます。
今回はコンソールで各種コンポーネントを作成しました。
クラスタ作成
まずはクラスタを作成します。
名前とリージョン、ワークステーションをデプロイするVPC・サブネットを指定します。
現在Cloud Workstationsは日本リージョンに対応してないので、今回は台湾リージョンを選択しました。
Tips
ネットワークを指定しない場合は、いつものようにVPC「default」のサブネット「default」の作成されるようです。
プロジェクト内にVPC「default」がない場合はエラーとなっています。
構成設定作成
次にワークステーションに紐づける構成設定を作成します。
基本設定
また「Quick start workstations」という項目がありますが、
こちらは指定した数のインスタンスを待機状態にさせておくことで、ワークステーションの起動時間を早くする機能です。
ただし、待機状態のインスタンスは常時料金が発生します。
マシン設定
- マシンタイプ : CPU及びメモリの違う複数のマインタイプが存在するので、環境に見合ったものを指定します。
- Auto-sleep : 非アクティブになってから一定時間すると自動で停止状態になる機能です。何分(時間)後に停止するかを指定できます。
あとは「Advnced options」として主にセキュリティ関する設定が行えます。
環境カスタマイズ
最後にワークステーション内の環境設定を行います。
まずはコンテナのベースイメージを選択します。
今回はデフォルトのCode OSSを選択しました。
また、Persistent Diskの設定もここで行います。
ワークステーション作成
最後にワークステーションを作成します。
といってもコンソール上だと名前と構成設定を指定するだけです。
すると最初は停止状態でワークステーションが作成されるので、これを起動させると環境に接続できるようになります。
試しに起動後、ブラウザからアクセスすると以下のような感じになります。
VS Codeからワークステーションに接続する
ではSSHを用いてVS Codeからワークステーションに接続しましょう。
あらかじめVS Codeには拡張機能「Remote Development」をインストールしておきます。
まずは以下のコマンドをローカルで実行し、TCPトンネルを確立させます。(gcloudコマンドが必要です。)
gcloud alpha workstations start-tcp-tunnel \
--project=${プロジェクトID} \
--cluster=dohara-cluster \
--config=dohara-conf \
--region=asia-east1 \
dohara-workstation 22 \
--local-host-port=:2222
プロジェクトIDやクラスター名は環境に合わせてください。
次に.ssh/configに以下のように接続設定を記載します。
Host dohara-workstations
User user
HostName localhost
port 2222
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
するとVS Codeにて、接続先一覧として確認できるようになります。
最後にこちらの接続先を選択することで、ワークステーションにアクセスすることができました。
最後に
本記事ではVS CodeからCloud Workstationsに接続するまでを説明しました。
ワークステーション起動中は料金が発生してしまうため、個人が普段使いをするというのはちょっと厳しい印象もありますが、
企業や組織がグループ単位で利用するにはなかなか良いサービスなのではないでしょうか。
まだプレビュー版ということもあり今後もアップデート入っていくと思うので、そちらも楽しみですね。