いつでもどこでもVS Codeが利用できるGitHub Codespaces
はじめに
皆さんは外出先などで突然VS Codeを使いたくなったことはないでしょうか?僕はあります。
それは職場かもしれませんし、カフェかもしれませんし、オフトゥンの中かもしれません。そんな時に、ブラウザとネットワーク環境さえあればいつものVS Codeが使えるのがGitHub Codespacesです。
GitHub Codespacesとは
GitHub Codespacesは、GitHubが提供しているクラウドベースの開発環境です。
機能的にもUI的にも普段利用しているVS Codeとほぼ同じため、日常的にVS Codeを利用している人であれば、いつも通りの開発体験を得ることができます。
GitHub上の任意のRepositoryをcloneすることができるので、GitHubで管理しているソースコードであればすぐに開発を開始することができます。
ブラウザ上で利用できる
GitHub Codespacesはネットワーク環境さえあれば、ブラウザ上でいつでも利用可能です。
そのため、たとえばiPadなどのタブレット端末でも利用することができます。
iPadで開いたGitHub Codespaces
必要なマシンスペックを選択できる
GitHub Codespacesでは、開発に必要なマシンスペックを選択することができます。
たとえばMySQLなどのDBを利用したい場合などは、必要に応じてマシンスペックを上げることができます。
RegionやMachine Typeを選択できる
最大で16-core / 64GB RAM / 128GB SSDを選択選択できるので、よっぽど重たい処理をしない限りは十分でしょう。
開発環境を統一できる
これはDockerなどを利用する場合と同じですが、開発環境を統一することができます。
利用しているPCのOSが開発チーム内で異なっている場合であっても、GitHub Codespacesを利用すれば開発環境を統一することができます。
また、READMEなどのMarkdownに [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/<owner>/<repo>)
のように記述することで、GitHub Codespacesで開くボタンを設置することができます。
READMEなどにGitHub Codespacesで開くボタンを設置できる
使い方
それでは早速GitHub Codespacesを利用してみましょう。
必要なもの
まずGitHub Codespaces利用するために最低限必要なものを説明します。
- GitHubアカウント
- ブラウザ
- ネットワーク環境
- 支払い方法(カード決済 or PayPal)
GitHub CodespacesはGitHubのサービスですので、GitHubアカウントが必要です。
それともう1つ必要なのが、支払い方法です。詳しい料金は後述しますが、GitHub Codespacesは有料のサービスです。毎月の無料枠はありますが、無料枠を超えた場合は有料になります。そのため、無料枠内でしか利用しないとしても、支払い方法の登録は必要です。
支払い方法は以下のページから設定可能で、カード決済(クレジットカード or デビットカード)かPayPalを利用することができます。
GitHub Codespacesの起動
GitHub Codespacesを起動するには、GitHub Codespacesを利用したいRepositoryのページにアクセスします。
- Code をクリックする
- Codespaces タブを開く
- + をクリックする
これだけで、Repositoryがcloneされた状態でGitHub Codespacesが起動します。
設定の共通化
もしGitHub Codespacesの環境をカスタマイズしたり、セットアップ時に任意の処理を実行したい場合、 .devcontainer/devcontainer.json
に記述することになります。
ここでは、以下のような設定が可能です。
- VS Codeの設定
- インストールしたい拡張機能の定義
- インストールしたい環境の定義(Node.jsなど)
- 起動時などに実行したいコマンド(
npm install
など)
詳しくは以下のドキュメントを参照してください。
料金
GitHub Codespacesは有料のサービスですが、金額は「コンピューティング使用料」と「ストレージ使用料」の2つの料金で構成されています。
コンピューティング使用料
コンピューティング使用料は、Machine Typeと利用時間によって決まります。
当然ですが、Machine Typeが高いほど料金も高くなります。
マシンの種類 | Unit of Measure | 含まれる使用量の乗数 | Price |
---|---|---|---|
2 コア | 1 時間 | 2 | $0.18 |
4 コア | 1 時間 | 4 | $0.36 |
8 コア | 1 時間 | 8 | $0.72 |
16 コア | 1 時間 | 16 | $1.44 |
32 コア | 1 時間 | 32 | $2.88 |
ストレージ使用料
ストレージ使用料は、GitHub Codespacesで利用しているストレージの容量によって決まります。
これは、利用の有無に関わらず、環境を破棄しない限り発生し続けます。
無料枠
また、毎月以下の無料枠があります。さすがに毎日すべての開発をGitHub Codespacesで行うと無料枠を使い切ってしまいますが、たまに利用する程度であれば無料枠内で利用することができます。
アカウント プラン | 1か月あたりのストレージ | 1か月あたりのコア時間 |
---|---|---|
GitHub Free | 15 GB/月 | 120 |
GitHub Pro | 20 GB/月 | 180 |
詳しくは以下のドキュメントを参照してください。
注意点
最後に、GitHub Codespacesを利用する上で注意すべき点をいくつか紹介します。
環境を削除するとソースコードも削除される
GitHub CodespacesはGitHubが用意したContainer環境を利用しています。これによってどこからでも利用できますが、環境を削除するとContainer内のリソースはすべて完全に削除されてしまいます。
「せっかく書いたコードが消えてしまった」ということがないように、必ず編集したソースコードはGitHubなどにpushしておきましょう。
Machine Typeの上げすぎや長時間の起動は控える
GitHub CodespacesはMachine Typeを上げるとよっぽど重たい処理でもない限り、スペック面で困ることはありません。しかし、必要以上にMachine Typeを上げると、料金が高くなってしまいます。
また、GitHub Codespacesはデフォルトで30分間無操作だと自動的にidle状態になります。idle状態になるとコンピューティング使用料は発生しなくなりますが、再起動するのに若干時間がかかります。だからといって起動しっぱなしにしてしまうとずっと課金され続けるので、使わないときはidle状態にしておきましょう。
まとめ
実はこのZennの記事も、GitHub Codespacesを利用して書いています。むしろ最近はほとんどのコーディングをGitHub Codespacesで行っています。
GitHub Codespacesをデフォルトで利用しておくとマシンスペックを気にしたり、別のパソコンなどからでも瞬時にコーディングの続きを始められるので、非常に便利です。
日常的にVS CodeとGitHubを利用している人は、ぜひGitHub Codespacesを利用してみてください。
Discussion