Cloud Workstationsを触ってみた

[アイレット株式会社 22新卒 Advent Calendar 2022](https://qiita.com/advent-calendar/2022/iret-22) 9日目の投稿です！
# 概要
執筆時（2022/12/2）にプレビュー版で公開されているGoogle Cloudの[Cloud Workstations](https://cloud.google.com/workstations?hl=ja)に触れてみようという記事です。

# Cloud Workstationsとは
Cloud Workstationsは、フルマネージドな開発環境を提供するGoogle Cloudのサービスです。
利点としては以下のことなどが挙げられるようです。
>ブラウザやローカル IDE で安全かつ高速な開発環境をいつでも利用できます。

>管理者は、開発環境を簡単にプロビジョニング、スケーリング、管理、保護できます。

>お好みの IDE とカスタム コンテナ イメージを使用して、開発環境をカスタマイズできます。

## Cloud Workstationsの構成
![3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2953508/67e882d7-2a33-8e7a-86d6-31d067a8c4a5.png)

1. **管理者**がVPCのサブネットにワークステーションクラスタを作成します。
1. **管理者**は各ワークステーションクラスタに1つまたは複数のワークステーション構成を作成できます。
ワークステーション構成は、ワークステーション仮想マシン(VM)インスタンスタイプ、永続ストレージ、コンテナーイメージ定義環境、使用するIDEまたはコードエディターなどを定義します。
また、IAMルールを使用して、開発者やチームにアクセス権を付与することもできます。
1. **開発者**は開発環境が定義されているワークステーション構成から、ワークステーションを作成できます。

**参考**

https://cloud.google.com/workstations?hl=ja

https://cloud.google.com/workstations/docs/overview

## 対応リージョン
- アジア太平洋
  - asia-east1
  - asia-southeast1

- ヨーロッパ
  - europe-north1
  - europe-southwest1
  - europe-west1
  - europe-west2
  - europe-west3
  - europe-west4

- アメリカ
  - southamerica-west1
  - us-central1
  - us-east1
  - us-west1

# やること
1. 事前準備
1. クラスタの作成
1. ワークステーション構成の作成
1. ワークステーションの作成
1. ワークステーションの起動

今から上記の流れでCloud Workstationsを使ってみましょう！

# 事前準備
下記の内容を各自の環境で実施してください。
- Google CloudのプロジェクトにVPCとサブネットを用意する。
(サブネットを作成するロケーションは、前述の対応リージョンに配置してください。)
- Cloud Workstations APIを有効にする

# クラスタの作成
![10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2953508/395277fb-c805-8755-f4f7-65aa94bbbba4.png)
①「クラスタ」を押下。
![5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2953508/dc01e195-bc29-9cc1-3a94-901365d06e2b.png)
②「作成」を押下。
![6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2953508/da48198e-df01-b3d6-1474-a20728c6e715.png)
- クラスタ名を入力(任意の名前)
- リージョンを選択(事前に作成したVPCのサブネットと同じリージョンを選択してください)
![7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2953508/dcc16db9-efda-758e-ade9-a3cfcd8679ee.png)

- Advanced network settings
  - 事前に作成していたVPCネットワークとサブネットワークを選択。
  - Gateway typeはデフォルトのPublic gatewayを使用。
- 「作成」を押下。
![12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2953508/8d20ee68-470b-9eec-f250-a584fcf302a8.png)
- 20分ほどでクラスタが作成されるので、待ちます。

# ワークステーション構成の作成
![27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2953508/a0f8d46e-9073-939f-f4d9-a95f64fb296e.png)
①「構成」を押下。
![28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2953508/74b35c3f-94a0-f7ef-2ea8-15ba68f832a8.png)
②「作成」を押下。
![15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2953508/5b7438bd-d27b-7c27-1597-f2f78f0e2e53.png)
**Basic information**
- 構成名を入力(任意の名前)
- 前の手順で作成したクラスタを選択。
- その他の項目はデフォルトの値のままにします。
- Quick start workstationsのEnabledを選択すると、ワークステーションの起動時間を短縮できるようですが、VMインスタンスに対して課金が発生します。
- Quick start pool sizeで事前に起動の用意をしておくVMインスタンスの数を設定できます。
- Quick start pool sizeを0に設定すると、新しいワークステーションの起動に時間がかかります。
- 「続行」を押下。
![17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2953508/ad97bfa9-a452-7045-1cf5-d3e56cb869cf.png)

**Machine configuration**
- コストを抑えるため、マシンタイプは一番低いスペックを選択します。
- 非アクティブなワークスペースが、Auto-sleepで設定した時間が経過した際に自動的にシャットダウンされます。
- コストを抑えるため、Auto-sleepは30分を選択します。
- これによって30分以上非アクティブなワークステーションが自動的にシャットダウンされます。

- Advanced options
  - ネットワークタグやパブリックIPの有無、[Shielded VM](https://cloud.google.com/compute/shielded-vm/docs/shielded-vm?hl=ja)の設定ができますが、今回はすべてデフォルトのままで進めます。
- 「続行」を押下。

![18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2953508/f8002265-e787-9a64-b227-a5828a3ec37c.png)

**Environment customization**
- ワークステーションで使用するIDEを選択できます。
- 事前に用意されたイメージとカスタムイメージのどちらを使うか選択できます。
- 今回はデフォルトのまま、Code editors on base imagesのCode OSSを選択します。

- Storage settings
  - ワークステーションのデータディスクの設定ができます。
  - コストを抑えるため、Disk TypeをBalancedにしてDisk sizeを10GBに設定します。
![19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2953508/3304088f-0f97-25f3-cfcc-20098c2dd372.png)

- Advanced container options
  - コンテナの詳細な設定ができますが、今回はすべてデフォルトのままで進めます。
- 「作成」を押下。
![20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2953508/8a265c23-da70-8a52-fe46-1b41fb84f6ff.png)
- 少し待つと、構成が作成されます。

# ワークステーションの作成
![29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2953508/83c8bf4b-0b08-ea10-d0e5-b423fe25e9ce.png)
①「ワークステーション」を押下。
![30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2953508/1881aed9-d567-db19-3aea-9b1916a8c0b9.png)
②「作成」を押下。
![23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2953508/20022f1f-7429-e1e6-02a7-0da9892d5ea1.png)
- ワークステーションの名前を入力(任意の名前)
- 前の手順で作成した構成を選択。
- 「作成」を押下。
![24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2953508/b71729a6-966b-c684-a315-0c9d6bf7b312.png)
- 少し待つと、ワークステーションが作成されます。

# ワークステーションの起動
![24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2953508/b71729a6-966b-c684-a315-0c9d6bf7b312.png)
- 「START」を押下。
![25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2953508/5fe1f8c9-a6b6-c768-b15d-aea1c8ef77a0.png)
- 「LAUNCH」を押下。
![26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2953508/9f5db138-9c7b-7666-aab4-d0f2e6e2c7c0.png)
- これで開発環境をブラウザで起動することができました。
- プラグインのインストールやGitによるバージョン管理、デバッグ等ができ、ローカルのVSCodeと同じように使うことができるようです。

**参考**

https://cloud.google.com/workstations/docs/create-configuration

https://cloud.google.com/workstations/docs/create-workstation

# さいごに
コンソール画面をポチポチ操作するだけで開発環境を作ることができて便利ですね。
IDEやエディターもいろいろ種類が用意されているので、自分が使い慣れたものを使えるのではないかと思います。
Preview期間で料金も安くなっているので、気になる方は一度触ってみてはいかがでしょうか。
Cloud Workstationsの今後のアップデートに注目していきたいです。

[アイレット株式会社 22新卒 Advent Calendar 2022](https://qiita.com/advent-calendar/2022/iret-22) 10日目は@poteto345くんが担当です！
お楽しみに！！