これは何?
- GitHub Codespacesという開発用のVMをGitHub上に作成できるらしいので試してみました。
- 自分は無料枠の存在を知らなかったので,意外と知らない人がいるんじゃないかと思い,記事にしてみました。
この記事から学べること
- GitHub Codespacesとはなにか,課金体型
- 無料枠を超えたら使用できなくなる設定方法
- 試した感想と優位点など
価格について
- 無料枠が毎月あり,超えた分が請求される(ただし,limitを設けられるため無制限に課金されることはなく,0も設定可能)
- 基本的にGB月数とコア時間数で金額が決まる。
GB 月
ストレージの GB/月という単位は時間ベースの測定値であり、1 GB/月は 1 GB のストレージを 1 か月間使用できます。 すべての codespace と prebuild によって使われているディスク領域が 1 時間に 1 回評価されて、現在の GB/月の使用量が再計算されます。 そのため、codespace と prebuild がある間は、GB/月の使用量が月を通して増加します。 たとえば、ストレージの合計が 15 GB で、1 か月の請求サイクルを通して変わらない場合は、半月の時点で 7.5 GB、月末の時点で 15 GB 使われます。 この記事で後述する「ストレージ使用に対する請求について」を参照してください。
コア時間
"コア時間" は、含まれるコンピューティング使用量に対して使われるメジャーです。 コア時間を計算するには、codespace がアクティブになっていた時間数に、この記事の後半に出てくる料金表の乗数を掛けます。 基本的なマシンの種類の場合、乗数は、codespace をホストするマシン内のプロセッサ コアの数です。 次に例を示します。
- 2 コア マシンを 1 時間使うと、2 コア時間に相当します
- 8 コア マシンを 1 時間使うと、8 コア時間に相当します
- 8 コア マシンを 2 時間使うと、16 コア時間に相当します
使用状況の確認
コア時間を減らして使用量を減らす
- Idle timeoutはアカウントの設定ページから設定可能。
- 停止しているCodeSpaces似関してはGB月数のみの課金になるので使用量の節約になる(ゼロになるわけではない)。
コンピューティング使用量は、codespace を停止することで制御できます。 詳細については、「codespace の停止と開始」を参照してください。 codespace は、構成可能な非アクティブ期間後に自動的に停止されます。 タイムアウト期間は、ユーザーによって、または Organization レベルで構成できます。 「GitHub Codespaces のタイムアウト期間を設定する」と「アイドル タイムアウトの期間を制限する」を参照してください。
コンピューティングの使用量の課金について
無料で試したい人向けの設定
自分は一旦無料で試したいので,誤って課金されることのないように以下の設定を行いました。
- 個人用アカウントに含まれる月間ストレージとコア時間のみの使用になる。
個人用アカウントには、次のストレージとコア時間の使用量が無料で含まれています。
アカウント プラン 1 か月あたりのストレージ 1 か月あたりのコア時間 個人用アカウント用の GitHub 15 GB/月 120 GitHub Pro 20 GB/月 180
- Spending limitsの設定ページから0にしておけば無料枠を超えたらCodeSpacesが使えなくなる。
-
利用上限のメール通知も可能。チェックボックスをつけておくと,上限の75%,90%,100%に達するとメール通知が飛ぶ。
ためしてみる
-
リポジトリを選択してCodeSpacesを作成する
Dev Containerとdotfilesに対応している。
dotfilesはcode spacesの設定ページから
設定しておくと全CodeSpacesに共通のdotfilesをインストールできる。
dotfilesディレクトリは
/workspaces/.codespaces/.persistedshare/dotfiles/
にマウントされる。 -
ブラウザから開いてみる
ブラウザから開くとそのままVSCodeのような画面が表示される。ちなみに,VSCodeのExtensionsがあり,これを使うとローカルのVSCodeから開くこともできる。
こっちのほうがブラウザよりも若干レスポンスが早い気がする。
環境のクリーンアップ
codespaceの設定ページから削除できる。
GitHub Codespacesの使いどころ
- 短期間だけ入ってくる人と開発環境を共有したい時: GitHub Codespaceを使った開発環境のメリットをまとめてみたに記載があったが,
git clone
やgit pull
のためにトークンやsshの公開鍵を設定するみたいな手間が省けるのが一番でかいと思う。 - VDIの代替として: 画面は飛ばさないのでVDIよりはレイテンシが良さそう。
- 社内ネットワークの制約が厳しい: クラウド上に環境が閉じるので社内ネットワークの制約を受けずに好きなツールが使える