GitHub Codespacesの無料枠が減る原因|削除しても使用量が戻らない理由と対処法

GitHub Codespacesをほとんど使っていないのに無料枠が減っていたり、不要なcodespaceを削除しても今月の使用量が戻らなかったりすると、課金が止まっていないように見えます。

結論からいうと、GitHub Codespacesには計算時間とストレージという別々の使用量があります。計算時間はcodespaceが稼働している間、ストレージはcodespaceやprebuildが存在している間に加算されます。

また、請求画面に表示される今月の使用量は累積値です。環境を削除しても、それまでに記録された使用量は減りません。削除によって止まるのは、削除後のストレージ使用量の加算です。([GitHub Docs][1])

目次

Codespacesを止めても使用量が増える理由と不要環境の整理

GitHub Codespacesの使用量は、次の2種類に分けて確認する必要があります。

使用量加算される条件停止した場合削除した場合
計算時間codespaceが稼働している間以後の加算が止まる以後の加算が止まる
ストレージcodespaceやprebuildが存在する間引き続き加算される削除後の加算が止まる

つまり、使っていないcodespaceを停止すれば計算時間は節約できますが、環境を残している限りストレージは消費されます。

反対に、今後使わないcodespaceを削除すれば、その環境によるストレージ使用量の増加も止められます。ただし、今月すでに消費した分が取り消されるわけではありません。([GitHub Docs][1])

ブラウザを閉じただけでは停止しない

特に間違えやすいのが、ブラウザのタブやVisual Studio Codeのウィンドウを閉じたことで、codespaceも停止したと思ってしまうケースです。

GitHubの公式ドキュメントでは、明示的に停止しなかったcodespaceは、アイドルタイムアウトが発生するまで稼働し続けると説明されています。ブラウザのタブを閉じただけでは、リモート側のcodespaceは停止しません。([GitHub Docs][2])

「今日は数分しか作業していないのに計算時間が多い」という場合は、画面を閉じた後もcodespaceが稼働していなかったか確認してください。

削除しても今月の使用量が戻らないのは正常

GitHub Codespacesのストレージ使用量は、保存容量だけでなく、環境が存在していた時間も含めて計算されます。公式ドキュメントではGB-hoursという時間ベースの単位で計測され、月内で累積すると説明されています。([GitHub Docs][3])

たとえば、次のような使い方をしたとします。

  1. 月曜日にcodespaceを作成する
  2. 水曜日まで環境を残す
  3. 水曜日にcodespaceを削除する

この場合、月曜日から水曜日までに発生したストレージ使用量は、削除後も今月の実績として残ります。木曜日以降の加算は止まりますが、月曜日から水曜日までの値が差し引かれることはありません。

請求画面のストレージ使用量は、現在の請求期間中は増えるか、同じ値を維持します。新しい請求期間が始まるとリセットされます。codespaceやprebuildを途中で削除しても、今月の累積値は減らず、以後の増加速度が下がるだけです。([GitHub Docs][1])

したがって、削除後に使用量が戻っていなくても、削除に失敗したとは限りません。

まず請求画面で計算時間とストレージを分けて確認する

無料枠が減っている原因を調べるときは、合計値だけを見るのではなく、計算時間とストレージを分けて確認します。

GitHubの個人アカウントでは、アカウント設定にある請求・使用量の画面から、利用中の従量課金製品を確認できます。組織の利用状況を確認する場合は、組織所有者や請求管理者など、請求情報を閲覧できる権限が必要です。画面名やメニュー構成は変更されることがありますが、CodespacesUsage hoursStorageなどの項目を探してください。([GitHub Docs][4])

計算時間が増えている場合

主に次の原因が考えられます。

  • codespaceを明示的に停止していない
  • ブラウザやVisual Studio Codeを閉じただけになっている
  • アイドルタイムアウトが長く設定されている
  • ターミナルで動かしている処理が継続している
  • Webサーバーのログなどがターミナルへ出力され続けている

Codespacesのアイドル判定では、キーボードやマウスの操作だけでなく、ターミナルの入出力も活動として扱われます。そのため、本人が操作していなくても、ログ出力などが続くことでタイムアウトまでの時間がリセットされる場合があります。([GitHub Docs][5])

ストレージが増えている場合

次の項目を確認します。

  • 停止中のcodespaceが残っていないか
  • 今後使わない古いcodespaceが残っていないか
  • prebuildが設定されていないか
  • 不要なVisual Studio Code拡張機能が入っていないか
  • カスタムdev containerイメージを使用していないか
  • リポジトリ以外のデータをcodespace内へ保存していないか

停止中のcodespaceでも、ファイルや拡張機能などを保持するためのストレージは使用します。また、カスタムdev containerを使っている場合は、標準イメージを使う場合よりストレージ量が増えることがあります。([GitHub Docs][1])

どのアカウントに計上されているか確認する

Codespacesの使用量は、codespaceを作成した個人アカウントか、リポジトリを所有する組織のいずれかに計上されます。

組織所有リポジトリでは、組織側がCodespacesの費用負担を許可しているかどうかによって請求先が変わる場合があります。フォークやテンプレートから作成したリポジトリでは、請求先の判断がさらに複雑になることがあります。([GitHub Docs][3])

次の3点をセットで確認してください。

  • codespaceを作成したGitHubアカウント
  • 元になったリポジトリの所有者
  • 使用量を確認している請求アカウント

個人アカウントの請求画面だけを見て「環境がない」と判断せず、関連する組織の請求画面も確認することが重要です。

使わないcodespaceは明示的に停止する

作業を再開する予定があるcodespaceは、削除せずに停止します。停止すると、実行中のプロセスが終了し、計算時間の加算が止まります。保存済みの変更は、次回起動時にも利用できます。

Web画面から停止する基本的な流れは次のとおりです。

  1. GitHubのCodespacesページを開く
  2. 対象codespaceの右側にある三点メニューを開く
  3. Stop codespaceを選択する
  4. 一覧で停止状態になったことを確認する

GitHub CLIを使用している場合は、次のコマンドから停止対象を選択できます。

gh codespace stop

停止後もストレージ使用量は加算されるため、停止はあくまで「後で再開する環境」に向いた操作です。([GitHub Docs][2])

自動停止時間を短くする

停止し忘れが多い場合は、アイドルタイムアウトを短く設定します。

GitHubの個人設定では、Settings内のCodespacesから、デフォルトのアイドルタイムアウトを変更できます。設定後に新しく作成するcodespaceへ適用されるため、既存環境にも自動的に反映されるとは限らない点に注意してください。([GitHub Docs][5])

タイムアウトを短くすると計算時間を節約できますが、次のような作業では短すぎる設定が不便になることがあります。

  • ビルドやテストに時間がかかる
  • Webサーバーを起動して動作確認する
  • 一時的に別の作業へ移ることが多い
  • 長時間のデータ処理を実行する

通常の編集作業が中心なら短めに設定し、長時間処理が必要なときだけ個別に調整する運用が現実的です。

変更を保全してから不要なcodespaceを削除する

今後使わないcodespaceは削除します。ただし、削除前にローカル変更がGitHubへ反映されているか確認してください。

codespace内にしか存在しないデータは、環境を削除すると失われる可能性があります。

削除前に確認する項目

確認対象対応
エディターで未保存のファイルSave Allなどで保存する
未コミットの変更内容を確認してコミットする
未追跡ファイル必要なものだけ追加する
未プッシュのコミットリモートリポジトリへプッシュする
.gitignore対象のファイル別途ダウンロードやバックアップを行う
ローカルデータベースや生成物必要性を判断して退避する
APIキーや秘密情報リポジトリへコミットしない

まず、ターミナルで現在の状態を確認します。

git status

変更内容を確認する場合は、次のコマンドも利用できます。

git diff

保存するファイルを選び、コミットしてプッシュします。

git add <保存するファイル>
git commit -m "Save work before deleting codespace"
git push -u origin <ブランチ名>

git add -Aですべてをまとめて追加すると、秘密情報や不要な生成物までコミットする可能性があります。特に.env、認証情報、秘密鍵、ローカル専用の設定ファイルは、追加前に必ず確認してください。

Web画面から削除する手順

変更を保全したら、次の手順で削除します。

  1. GitHubのCodespacesページを開く
  2. 対象codespaceの三点メニューを開く
  3. Deleteを選択する
  4. 削除確認を完了する
  5. 一覧から対象環境が消えたことを確認する

GitHub CLIでは、次のコマンドから削除対象を選択できます。

gh codespace delete

GitHub CLIは未保存の変更がある場合に確認を表示しますが、削除前の確認をツール任せにせず、リモートリポジトリへ必要な変更が反映されていることを自分でも確認してください。([GitHub Docs][6])

削除しても今月の累積使用量は減りません。ただし、そのcodespaceによる削除後のストレージ加算は止まります。

codespaceを削除してもストレージが増えるならprebuildを確認する

すべてのcodespaceを削除したのにストレージ使用量が増える場合は、prebuildが残っている可能性があります。

prebuildは、codespaceを素早く起動できるように、あらかじめ開発環境を構築して保存しておく機能です。prebuildは通常のYour codespaces一覧には表示されませんが、リポジトリ用のprebuildが存在すればストレージを消費します。([GitHub Docs][1])

prebuildの使用状況を調べる

請求画面のStorage項目を展開すると、prebuildによる使用量を確認できる場合があります。

詳細が分からない場合は、使用量レポートを出力し、Product列でCodespacesに関連する行を絞り込みます。使用量レポートを使うと、どのリポジトリにprebuildが存在するか調べやすくなります。([GitHub Docs][1])

不要なprebuild構成を削除する

リポジトリの管理権限がある場合は、リポジトリ設定のCodespacesページからprebuild構成を確認できます。

不要な構成を削除する基本的な流れは次のとおりです。

  1. 対象リポジトリの設定を開く
  2. Codespacesの設定を開く
  3. 対象のprebuild構成を確認する
  4. 三点メニューからDeleteを選択する
  5. 削除を確定する

Disable runsで更新処理を無効化しただけでは、すでに作成されたprebuildは削除されません。既存のprebuildによるストレージ使用も止めたい場合は、不要なprebuild構成そのものを削除する必要があります。構成を削除すると、それに関連する既存のprebuildも削除されます。([GitHub Docs][7])

ここでも、今月すでに記録された使用量は減りません。削除後のストレージ加算が止まると考えてください。

予算と支払い設定は個人・組織ごとに確認する

GitHub Codespacesの無料利用枠は、個人アカウントに含まれるものです。組織アカウントやエンタープライズアカウントには、個人アカウントと同じ無料枠が自動的に含まれるわけではありません。([GitHub Docs][1])

会社やチームのリポジトリでCodespacesを使っている場合は、次の項目を確認してください。

  • 組織がCodespacesの費用負担を許可しているか
  • 個人アカウントと組織のどちらが請求先か
  • 支払い方法が登録されているか
  • Codespaces用の予算が設定されているか
  • 予算上限や利用ポリシーに達していないか
  • 通知先のメールアドレスが正しいか

有効な支払い方法が登録されている場合でも、設定された予算によって利用が制限されることがあります。個人アカウントと組織アカウントでは予算設定が別になるため、実際の請求先アカウント側で確認してください。([GitHub Docs][3])

無料枠や単価は契約プランやGitHubの料金体系によって変わる可能性があります。過去の記事に掲載された固定金額だけで判断せず、現在の請求画面と公式料金情報を確認するのが確実です。

よくある勘違いと正しい対処

勘違い実際の動作対処
ブラウザを閉じれば停止するタイムアウトまで稼働する場合があるStop codespaceを実行する
停止すれば使用量は一切増えないストレージは加算される不要なら削除する
削除すれば今月の使用量が戻る過去の累積値は残る次の請求期間まで待つ
codespace一覧が空ならストレージは使われないprebuildが残っている場合があるprebuild構成を確認する
コミット済みなら削除しても安全未プッシュのコミットは環境内だけに存在するリモートへプッシュする
個人の無料枠が組織利用にも使われる請求先は設定や所有者によって変わる請求対象アカウントを確認する

無料枠の減少を止めるための確認順序

GitHub Codespacesの使用量が想定より多いときは、次の順序で整理すると原因を切り分けやすくなります。

  1. 請求画面で計算時間とストレージを分ける
  2. どの個人・組織アカウントに計上されているか確認する
  3. 稼働中のcodespaceを明示的に停止する
  4. アイドルタイムアウトを必要に応じて短くする
  5. 未保存・未コミット・未プッシュの変更を保全する
  6. 今後使わないcodespaceを削除する
  7. prebuildが残っていないか確認する
  8. 請求先アカウントの予算と支払い設定を確認する

重要なのは、停止は計算時間を止める操作、削除は将来のストレージ加算も止める操作と理解することです。

削除後も今月の使用量が残るのは、請求画面が月内の累積値を表示しているためです。値を元に戻そうと繰り返し削除操作を行うのではなく、対象環境が一覧から消えていることと、その後の増加原因となるcodespaceやprebuildが残っていないことを確認してください。
[1]: https://docs.github.com/en/codespaces/troubleshooting/troubleshooting-included-usage “Getting the most out of your included usage – GitHub Docs”
[2]: https://docs.github.com/en/codespaces/developing-in-a-codespace/stopping-and-starting-a-codespace “Stopping and starting a codespace – GitHub Docs”
[3]: https://docs.github.com/en/billing/concepts/product-billing/github-codespaces “GitHub Codespaces billing – GitHub Docs”
[4]: https://docs.github.com/en/billing/how-tos/products/view-productlicense-use “Viewing your usage of metered products and licenses – GitHub Docs”
[5]: https://docs.github.com/en/codespaces/setting-your-user-preferences/setting-your-timeout-period-for-github-codespaces “Setting your timeout period for GitHub Codespaces – GitHub Docs”
[6]: https://docs.github.com/en/codespaces/developing-in-a-codespace/deleting-a-codespace “Deleting a codespace – GitHub Docs”
[7]: https://docs.github.com/en/codespaces/prebuilding-your-codespaces/managing-prebuilds “Managing prebuilds – GitHub Docs”

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次