ブラウザでVS CodeがうごくVisual Studio Onlineを使ってみた

VSCodeのオンライン版であるVisual Studio Online(VS Online)がついにPublic Previewになりました。早速使ってみたので雰囲気をつかんでもらえるようにレビューしてみます。個人的にはAWSに買収される前のCloud 9をよく使っていたので、とても楽しみにしていました。これでローカルマシンに色々なバージョン・設定の開発環境を用意したりする必要はなくなりますね！

https://visualstudio.microsoft.com/ja/services/visual-studio-online/


![Visual Studio Online - Web ベースの IDE と共同コード エディター - Google Chrome 2019-11-05 10.22.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/8727/ff4e72a7-9b41-18c1-6bb9-1ef906fc9747.png)


# 必要なものはMSアカウントとAzureの課金設定

パブリックプレビューに参加するには、Azureのアカウントを作成し、サブスクリプションプラン（お支払い設定）を設定する必要があります。仕組みとしてはVSCodeがはいったインスタンスをAzureがホストしてくれるわけです。

実際に申し込んでみましょう。お支払アカウントを選び、リージョンを選択（現在東京はないのでSoutheast Asiaをえらびます）その他の設定はデフォルトにしてCreateを押します。

![Visual Studio Online - Google Chrome 2019-11-05 10.02.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/8727/c6bf435a-0669-5172-f888-5b0cfaea081e.png)

# Environmentでワークスペースを作成

Cloud 9でいうところのワークスペースになるのですが、開発環境＝インスタンスをEnvironmentという単位で管理します。これは案件別や言語別で作るのがよさそうですね。１つのプランあたり20のEnviroment、１つの支払アカウントあたり20のプランが作成できるので（=400個）、環境の数に困ることはなさそうです。

![Visual Studio Online - Google Chrome 2019-11-05 10.04.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/8727/c645072e-37f6-f4ba-0885-bbd5838528f5.png)

このときにgit repositoryを設定するとgit cloneとnpm installまで自動で行ってくれるようです。また、その他のスタートアップスクリプトやenvなども設置可能でよく考えられていました。好みの設定をリポジトリ管理しておけば新しいワークスペースを作る時も使いまわすことができるわけですね。

![Visual Studio Online - Google Chrome 2019-11-05 10.04.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/8727/682c5483-de14-0f8e-00ba-9c4045682387.png)


# VS Onlineの利用料金（ざっくり平日8時間利用で月1万円程度）

VS OnlineはEnvironmentごとに、Standard/Premiumのインスタンスマシンの設定があり、それぞれ単価が異なります。Standardインスタンスの場合は

- 基本料金（2ユニット/時×約0.52円×730時間）＝750円くらい
- 起動時料金（125ユニット）・・・1時間65.5円、100時間6550円

となり、月に20日間×8時間ほど利用すると160時間で1万円強となります。Premiumインスタンスはお値段約2倍となります。

# 起動してみる

作成したEnvironmentは、ブラウザ以外でもVSCodeやVisual Studioからも接続できるようです。

![Visual Studio Online - Google Chrome 2019-11-05 10.06.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/8727/ea905f5c-dc67-f1d6-381e-2a2a7ad9b291.png)

Connectを選ぶとブラウザ上でエディタが立ち上がります。今回はEnvironment作成時にvsonline-quickstartを取り込むようにしていましたので、既にファイル群があり、npm installも実行されています。

![Welcome - workspace [VS Online] - Visual Studio Code - Insiders - vsonline+41b8eb17-8519-4868-af34-2f59a88df4b4 - Google Chrome 2019-11-05 10.07.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/8727/9bae03c3-a947-01c9-a5c4-bbe32189f132.png)

[こちらの記事](https://qiita.com/suzuki_sh/items/7bf0465e727f56d1baf3) にもある通り、日本語パックはインストール可能ですが、言語切り替えはまだできないようです。

# チュートリアルに従いデバッグ

READMEにあるとおり、F5を押してデバッグしてみましょう。localhost:3000でnodeアプリケーションが起動します。

![Preview README.md - workspace [VS Online] - Visual Studio Code - Insiders - vsonline+41b8eb17-8519-4868-af34-2f59a88df4b4 - Google Chrome 2019-11-05 10.18.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/8727/5aceed9f-26c8-7c32-b7d4-1ee48c80fd16.png)

Forwarded Portの設定をせよとのことでしたが、ブラウザ版にはその設定はなく、コンソールに表示されたh ttp://localhost:3000/ のリンクをCtrl+クリックするとすでに設定済みのホストを開いてくれました。とてもスムーズでコーディングもはかどりそうです。Southeast Asiaは若干モタつく気もしますが実用の範囲内だと感じました。

![https___ea51e2bbe27261907e124968580dcaa7a660-3000.app.online.visualstudio.com - Google Chrome 2019-11-05 10.19.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/8727/cc0af346-9d11-98cb-2ce1-6af942c0e36b.png)

# 使った後は閉じる or 明示的にサスペンドする

上記の通り利用時間課金なので、使わないときはサスペンドしてしまいましょう。Environmentを自動的にSuspendする機能があり、こちらデフォルトでは30分になっています。しかし、ブラウザを開いて接続が生きている間はつねにアクティブ課金対象となりますので、使わないときはブラウザを閉じる、あるいは明示的にdisconnectするようにしましょう。左側のオンラインメニューよりdisconnectすることができます。

![Snapshot 2019-11-05 10.20.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/8727/e1dcdd26-d81f-6f29-e400-25c9cde6c1bf.png)

# Self-hosted環境を使ってみる

ところで、説明のところどころに「Self hostedなEnvironmentもつかえるよ！」という表現があるのですが、いったいこれはどういうことでしょう。Environmentの作成画面にはそのようなメニューが見当たらなかったのですが、よくよく調べてみて使い方が分かりました。

https://docs.microsoft.com/ja-jp/visualstudio/online/how-to/vscode#self-hosted

前提条件として先に↑のプラン作成までは終わらせておく

1. お手元のVSCodeにVS Online拡張をインストールし（VSCodeは最新版にしておく）
2. F1を押してコマンド実行「VS Online: Register Local Environment」を選択
3. 環境名称（Windowsの場合はPC名がデフォルト）を入力し、プランを選択します。
4. 最初はログインエラーが出るので、signinしなおして再実行
5. 環境によりますがファイアーウォールの許可が出るので許可して完了

そうするとEnviromentの中に自分のVSCode環境が現れます。

![Visual Studio Online - Google Chrome 2019-11-05 15.45.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/8727/6c653bd2-9f3f-c9da-6ee1-0c72118e2eb1.png)

接続すると、自分のローカル環境がほぼ再現されます！

![flightbooks - Visual Studio Code - Insiders - vsonline- Google Chrome 2019-11-05 15.53.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/8727/ab45b541-6c05-37b5-882a-ae32cb2c5273.png)

Terminalを開いても、OnlineのインスタンスはLinux系ですが、こちらは手元のPowershellが開いています。つまり、VSOnlineを利用してブラウザのエディタ画面のみ利用して、自宅サーバのDockerやVPS上のVSCode環境を利用することもできるというわけです。

参考：
[Dockerで立ち上げた開発環境をVS Codeで開く!](https://qiita.com/yoskeoka/items/01c52c069123e0298660)

以上、簡単なレビューでした。楽しいリモート開発ライフを！


## おまけ：値段だけ見るとGitpodの方が安い

任意のgitリポジトリを取り込んでワークスペースが使えるシステムとしては、[Gitpod](https://www.gitpod.io) というサービスがあります。これはTheiaというVSCode派生のOSSプロジェクトがあって、そいつをホスティングしてくれるサービスです。

![Gitpod - Pricing - Google Chrome 2019-11-05 16.31.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/8727/525fd4f3-7781-3350-215f-19e21524706b.png)

Unlimited hoursで$39なので半額程度でたくさんのインスタンスを利用可能です。CPU/ramは明記されていないですが中身はGCPで動いているようです。厳密にはVSCodeと互換があるわけではなく、ユーザコミュニティに多さなどを考えるとVSCodeのほうが手厚いわけですが、サクッと使うばあいはこちらも選択肢に上がりそうです。