社内で 1 人目のデータ担当として、AI エージェントに毎日レポートや記事を作らせたい方向けに、「どこで動かすか」を費用と止まり方で比べます。読み終わると、自分の処理の長さと認証の方針から、手元の Mac・Cloud Run Jobs・GitHub Actions のどれを選ぶかを決められるようになります。
この記事で分かること:
- 1 日の実行時間が 2・8・14.5・20 時間のとき、3 方式の月額がいくらになるか(2026-11-09 時点の料金表から筆者が計算)
- 数時間〜20 時間動く処理が、どの方式なら途中で止められないか
- Claude Code の認証(定額プランのログインか API キーか)が、動かす場所でどう変わるか
ざっくり結論
先に結論を書きます。費用だけなら手元の Mac が最も安く、次が Cloud Run Jobs、最も高いのが GitHub Actions です。
| 方式 | 1 日 14.5 時間・30 日の月額(筆者計算) | 1 回の実行の上限 | Claude の認証 |
|---|---|---|---|
| Mac + launchd | 0 ドル(計算資源の追加費用なし) | 機械的な上限なし | 定額プランのログイン |
| Cloud Run Jobs + Cloud Scheduler | 約 29.23 ドル | 最大 168 時間 | API キーか OAuth トークン(推論) |
| GitHub Actions(プライベート) | 約 144.60 ドル | 1 ジョブ 6 時間 | OAuth トークンか API キー |
表の認証の列に出てくる言葉の意味は次のとおりです。
- API キー: 使った分だけ課金される Claude API を使うための、鍵となる文字列です。
- OAuth トークン: 定額プランでログインした人の権限を、ブラウザなしで使えるようにした文字列です。
- 定額プランのログイン: 手元のパソコンで、ブラウザから定額プランにログインした状態のことです。
ただし、費用の差よりも大きいのは「止まり方」の差です。GitHub Actions は 1 ジョブ 6 時間で強制終了されるため、長い処理はそのままでは入りません。Mac は電源と蓋の状態に左右されます。
共通条件: 筆者の運用で実際にかかった時間
比べるために、3 方式とも同じ条件で計算します。条件は、筆者がこのサイトの運用で試した記録から取りました。
筆者は手元の Mac で、毎日 06:30 に launchd(macOS が時刻やイベントに合わせてプログラムを起動する仕組み)から入口のスクリプトを動かしています。スクリプトは claude -p(Claude Code を人の操作なしで 1 回だけ動かす起動方法)で、1 日 6 本の記事を作る処理を動かします。
ある日(2026-11-06)は、この処理に約 14.5 時間かかりました。6 本目が claude -p の待つ上限(12 時間)で止まったため、上限を 20 時間に延ばしています。この経緯は 1 日 6 本の AI 実行が待ち上限で止まった構築ログ に書きました。
そこで、1 日の実行時間を次の 4 ケースに分けて計算します。
| ケース | 1 日の実行時間 | 意味 |
|---|---|---|
| 短い | 2 時間 | 本数が少ない日や、処理を軽くした場合 |
| 中くらい | 8 時間 | 1 営業日分 |
| 実績 | 14.5 時間 | 筆者の記録で実際にかかった日 |
| 上限 | 20 時間 | 待つ上限まで使い切った場合 |
計算の前提は次のとおりです。
- 1 日 1 回 × 30 日で 1 か月とします。
- 試算に入れるのは計算資源(パソコンやサーバーの使用料)だけです。Claude の利用料、電気代、通信料は含めません。Claude の API の単価と定額プランの月額は、今回の調査では確認していないためです。
- 料金は 2026-11-09 時点の公式料金表の値で、単位は米ドルです。
3 方式の構成と、Claude の認証をどこに置くかは図 1 のとおりです。
方式 1: 手元の Mac + launchd
構成
構成は「launchd → 入口スクリプト → claude -p」の 3 段です。launchd の StartCalendarInterval(毎日何時何分に動かすかを決める設定)で時刻を指定します。Apple は時刻指定の処理に cron ではなく launchd を使うよう案内しています(Apple: Scheduling Timed Jobs)。
費用
すでに持っている Mac を使うので、計算資源の追加費用は 0 ドルです。電気代はかかりますが、今回は試算していません。
止まり方
Mac で一番気をつけるのは、電源とスリープです。Apple の文書では、予定の時刻にスリープしていた場合は起きた後に実行され、電源が切れていた場合は次の予定時刻まで実行されません(Apple: Scheduling Timed Jobs)。
筆者の運用では、実行中に caffeinate -i(何もしていない時のスリープを止める macOS のコマンド)を使っています。ただし、ノートパソコンの蓋を閉じるとスリープしてしまい、処理が止まりました。
もう 1 つは、翌日の起動との重なりです。06:30 に始めて 20 時間待つと、終わるのは翌日の 02:30 です。スリープで開始が遅れると翌日の 06:30 と重なり、筆者の運用では後から来た回を ロック(同じ処理が 2 つ同時に動かないようにする目印)で飛ばし、日付を指定して手で取り戻しています。
方式 2: Cloud Run Jobs + Cloud Scheduler
構成
Cloud Run Jobs は、Google Cloud でコンテナ(プログラムと動かす環境をまとめた箱)を、終わるまで 1 回だけ動かすサービスです。Cloud Scheduler は、決めた時刻にそのジョブを起動する仕組みです。構成は「Cloud Scheduler → Cloud Run Jobs → claude -p」になります。
1 回の実行時間には上限があります。各タスクの既定の上限は 10 分で、設定を変えると最大 168 時間(7 日間)まで延ばせます(Cloud Run: ジョブを作成する)。20 時間の処理も入りますが、既定の 10 分のままだと途中で止まる点に注意が必要です。
費用の計算
Cloud Run Jobs は、起動したインスタンス(実際に動いている 1 台分の計算機)の全期間に課金されます(最小 1 分)。AI の応答を待っているだけの時間も課金の対象です(Cloud Run の料金)。
ここでは、1 vCPU(仮想的な CPU 1 個分)・2 GiB(メモリ約 2GB)のインスタンス 1 台で 6 本を並行して動かすと仮定します。この大きさは筆者の仮定で、大きくすれば費用もほぼ比例して増えます。
料金表の値(2026-11-09 時点、ジョブの表の既定の列)は次のとおりです(Cloud Run の料金)。
| 項目 | 値 |
|---|---|
| CPU | 1 vCPU 秒あたり 0.000018 ドル |
| メモリ | 1 GiB 秒あたり 0.000002 ドル |
| 無料枠(毎月) | 240,000 vCPU 秒と 450,000 GiB 秒 |
上の値は、料金表で既定に表示される Iowa(us-central1)の値で、無料枠も us-central1 の料金に基づきます。料金表では、東京(asia-northeast1)も Iowa と同じ ティア 1(Google Cloud が地域ごとに決めている料金の区分)に分類されています。ただし、東京の単価そのものは取得した表で確かめていないため、この記事では「Iowa(ティア 1)の値」として計算します。
計算の流れは次のとおりです。14.5 時間のケースを例にします。
vCPU 秒 = 14.5 時間 × 3,600 秒 × 30 日 = 1,566,000
GiB 秒 = 1,566,000 × 2 GiB = 3,132,000
CPU = (1,566,000 − 240,000) × 0.000018 = 23.868 ドル
メモリ = (3,132,000 − 450,000) × 0.000002 = 5.364 ドル
合計 ≒ 29.23 ドル
Cloud Scheduler は実行回数ではなくジョブの数で課金され、1 ジョブあたり 31 日ごとに 0.10 ドルです。請求先アカウントごとに毎月 3 ジョブまでは無料なので、ジョブ 1 つなら 0 ドルになります(Cloud Scheduler の料金)。
筆者が無料枠を割り戻すと、メモリ 2 GiB の場合は 1 日約 2.08 時間でメモリの無料枠が尽きます(450,000 ÷ 30 日 ÷ 3,600 秒 ÷ 2 GiB)。CPU 側は 1 日約 2.22 時間です。このため、2 時間のケースは無料枠の中に収まります。
ただし、この結論は 2 GiB という筆者の仮定に左右されます。メモリを 4 GiB にすると、無料枠に収まるのは 1 日約 1.04 時間までになり、2 時間のケースでも費用が出ます。
方式 3: GitHub Actions の schedule
構成
GitHub Actions は、GitHub のリポジトリ(ファイルの保管場所)で決めた処理を自動で動かす仕組みです。schedule(cron の書き方で時刻を決める起動方法)を使うと、毎日決まった時刻に ランナー(GitHub が貸し出す実行用の計算機)で処理が動きます。
費用の計算
標準の Linux 2 コアのランナーは 1 分 0.006 ドルです。毎月、プランごとに含まれる利用額があり、GitHub Free は 12 ドル、Pro と Team は 18 ドルです(GitHub Actions の課金)。
ここではプライベートリポジトリを前提にします。パブリックリポジトリなら標準ランナーの利用は無料なので、結果が変わります(同じ文書)。
分 = 14.5 時間 × 60 分 × 30 日 = 26,100 分
総額 = 26,100 × 0.006 = 156.60 ドル
GitHub Free の 12 ドルを引く = 144.60 ドル
6 時間の上限
GitHub が用意するランナーでは、1 つのジョブは最大 6 時間までで、上限に達するとジョブは終了され失敗します(GitHub Actions の制限)。14.5 時間の処理を動かすには、6 時間以内のジョブ 3 つに分ける必要があります。
筆者の記録では、1 本の claude -p が 12 時間を超えて動きました。この処理はそのままでは 6 時間で強制終了されます。
つまり、この記事の Actions の試算は「処理を 6 時間以内の単位に分けて、途中から再開できる設計にした場合」の値です。
月額の比較: 実行時間 2・8・14.5・20 時間
4 ケースの月額を、筆者が料金表から計算しました。図 2 は、1 日の実行時間が延びたときの月額の変わり方です。
図 2 と同じ値を表にします。Actions は GitHub Free と、Pro・Team の 2 通りを載せました。
| 1 日の実行時間 | Mac + launchd | Cloud Run Jobs | GitHub Actions(Free) | GitHub Actions(Pro・Team) | Actions で必要なジョブ数 |
|---|---|---|---|---|---|
| 2 時間 | 0 ドル | 0 ドル | 9.60 ドル | 3.60 ドル | 1 |
| 8 時間 | 0 ドル | 13.79 ドル | 74.40 ドル | 68.40 ドル | 2 |
| 14.5 時間 | 0 ドル | 29.23 ドル | 144.60 ドル | 138.60 ドル | 3 |
| 20 時間 | 0 ドル | 42.30 ドル | 204.00 ドル | 198.00 ドル | 4 |
差が開く理由は、1 時間あたりの単価です。筆者が計算すると、Cloud Run(1 vCPU・2 GiB)は 1 時間 0.0792 ドル、Actions の Linux 2 コアは 1 時間 0.36 ドルで、Actions は約 4.5 倍です。
また、Actions の含まれる利用額で動かせるのは、GitHub Free で 1 日約 1.1 時間、Pro・Team で約 1.7 時間です。このため、2 時間のケースでも Actions だけは費用が出ます。
認証と費用モデル: 定額プランが使える場所
もう 1 つの比較軸は、Claude Code の認証です。認証の方法によって、Claude の利用料が「定額」か「使った分だけ(従量)」かが切り替わります。
Claude Code の非対話の実行(claude -p)では、ANTHROPIC_API_KEY(API キーを入れる 環境変数。環境変数は、プログラムに渡す設定値を OS 側に名前付きで置く仕組みです)があれば常にそれが使われます。次に CLAUDE_CODE_OAUTH_TOKEN、その次が定額プランでログインした資格情報です(Claude Code: Authentication)。
| 方式 | 使える認証 | Claude の費用モデル | 根拠 |
|---|---|---|---|
| Mac + launchd | 定額プランのログイン | 定額(使用量の上限に届くと途中で止まることがある) | 筆者の運用記録 |
| Cloud Run Jobs | API キー、または OAuth トークンと考えられる | API キーなら従量 | 公式の記述は見つからず、認証の優先順位からの推論 |
| GitHub Actions | OAuth トークン(claude setup-token)か API キー | OAuth なら定額、API キーなら従量 | Claude Code: GitHub Actions |
claude setup-token は、CI やスクリプト向けに 1 年有効の OAuth トークンを作るコマンドです。Pro・Max・Ultra・Team・Enterprise のどれかのプランが必要です(Claude Code: Authentication)。
注意したいのは、トークンが「setup-token を実行した人の定額プラン」に結び付く点です。公式文書は、複数のリポジトリで共有する秘密情報には、個人のプランに結び付く OAuth トークンより API キーを勧めています(Claude Code: GitHub Actions)。また、—bare という起動方法では定額プランのログインを使わず、API キーが必要です(Claude Code: headless)。
Cloud Run Jobs で定額プランを使えるかについて、Cloud Run を名指しした公式の記述は確認できませんでした。一方で、認証の公式文書は CLAUDE_CODE_OAUTH_TOKEN を、ブラウザでログインできない CI やスクリプト向けの方法として案内しています(Claude Code: Authentication)。この記述と上の優先順位から考えると、OAuth トークンを環境変数で渡す方法か、API キーを使う方法になると考えられます。
止まり方の比較
費用以外の違いを図 3 にまとめました。
| 観点 | Mac + launchd | Cloud Run Jobs | GitHub Actions |
|---|---|---|---|
| 1 回の上限 | 機械的な上限なし(翌日と重なるとロックで飛ばす) | 既定 10 分、最大 168 時間 | 1 ジョブ 6 時間 |
| 止まる条件 | 電源オフの日は動かない。蓋を閉じるとスリープ | 設定したタイムアウト | 6 時間上限、高負荷時の遅延・破棄 |
| 秘密情報の置き場所 | 自分の Mac | クラウド側の保管場所 | リポジトリの Secrets(GitHub がリポジトリごとに暗号化して保管する秘密情報の置き場所) |
| 失敗の知らせ方 | 終了コード(プログラムが終わる時に返す番号で、0 が成功)を見て自分で作る | 同左 | 同左 |
claude -p は、成功すると終了コード 0、失敗すると 0 以外で終わります(Claude Code: headless)。どの方式でも、この終了コードを見て通知する仕組みを自分で用意します。
筆者がクラウドの定期実行を見送った理由は、秘密情報の権限でした。push(変更をリポジトリへ送ること)に使う GitHub App が、組織の全リポジトリの workflow を書き換えられる権限を持っていたため、クラウドに置くのを避けました。launchd で動かし始めた時のつまずきは launchd × claude -p の初回 0 本の構築ログ に書いています。
自分の場合はどれを選ぶか
図 4 の 3 つの質問で、置き場所を絞り込めます。
- 1 回の処理が 6 時間を超えるなら、GitHub Actions は外します(分けて再開できる設計にする場合を除く)。
- Claude を定額プランで動かしたいなら、Mac か、OAuth トークンを使う Actions が候補です。API の従量でよいなら、Cloud Run Jobs が費用と上限の両方で扱いやすくなります。
- パソコンを毎日、電源オン・蓋を開けたままにできるなら、Mac + launchd が最も安く済みます。
つまずきやすい点
Cloud Run の料金表の列を取り違える
Cloud Run の料金表のジョブの表には、確約利用割引(一定の利用量を前もって約束する代わりに単価が下がる割引)の列もあります。ジョブはインスタンスベースの課金で、この記事では割引なしの既定の列を使いました(Cloud Run の料金)。別の列を使うと、月額が変わります。
タイムアウトを既定のままにする
Cloud Run Jobs のタスクは、設定しなければ 10 分で止まります(Cloud Run: ジョブを作成する)。数時間かかる AI の処理では、タイムアウトを必ず延ばします。
Actions の schedule は時刻どおりに動くとは限らない
schedule は、毎時の開始時刻などの高負荷時に遅れることがあり、負荷が高いと待ち行列のジョブが破棄されることもあります(Actions のイベント)。schedule は既定ブランチでしか動かず、パブリックリポジトリでは 60 日間活動がないと自動で無効になります(同じ文書)。
Mac は電源・蓋・回線に左右される
電源が切れていた日は、その日の分は動きません(Apple: Scheduling Timed Jobs)。筆者の運用では、蓋を閉じると止まり、定額プランの使用量の上限に届くと途中で止まることもありました。
月額に Claude の利用料が入っていない
この記事の月額は計算資源だけです。API キーで動かす場合は、Claude の API 利用料が別にかかります。比べるときは、計算資源と Claude の利用料を分けて考えます。
まとめ
- 1 日 14.5 時間・30 日の計算資源の月額は、筆者の計算で Mac 0 ドル、Cloud Run Jobs 約 29 ドル、GitHub Actions(プライベート・Free)約 145 ドルです。Actions は 1 時間あたりの単価が約 4.5 倍です。
- 長い処理では、Actions の 1 ジョブ 6 時間の上限が先に効きます。Cloud Run Jobs は最大 168 時間まで延ばせますが、既定の 10 分のままだと止まります。
- 定額プランのログインがそのまま使えるのは手元の Mac です。クラウドでは OAuth トークンか API キーになり、API キーなら Claude の利用料が従量になります。
自分の処理の長さや認証の方針から置き場所を決めたい方、AI に任せる範囲を相談したい方は、お問い合わせからご連絡ください。AI が作った集計の SQL の確認に不安がある場合は、BigQuery SQL レビューパックも用意しています。
参考にした一次情報
- Google Cloud: Cloud Run の料金(2026-11-09 確認。ジョブの課金方式、vCPU 秒・GiB 秒の単価、無料枠、ティア 1 の地域)
- Google Cloud: ジョブを作成する(Cloud Run)(2026-11-09 確認。タスクの既定 10 分と最大 168 時間)
- Google Cloud: Cloud Scheduler の料金(2026-11-09 確認。ジョブ単価と無料 3 ジョブ)
- GitHub Docs: GitHub Actions の課金(2026-11-09 確認。Linux 2 コアの分単価、プラン別の含まれる利用額、パブリックリポジトリの無料)
- GitHub Docs: Actions limits(2026-11-09 確認。1 ジョブ 6 時間)
- GitHub Docs: Events that trigger workflows(2026-11-09 確認。schedule の遅延・破棄、既定ブランチ、60 日の無効化)
- Apple: Scheduling Timed Jobs(2026-11-09 確認。StartCalendarInterval とスリープ・電源オフの扱い。旧版の文書)
- Claude Code: headless(2026-11-09 確認。終了コード、—bare と API キー)
- Claude Code: Authentication(2026-11-09 確認。認証の優先順位、setup-token)
- Claude Code: GitHub Actions(2026-11-09 確認。OAuth トークンと API キーの課金の違い)
- 筆者がこのサイトの運用で試した記録(2026-11-04〜2026-11-06 の launchd 構成、実行時間、待つ上限の変更)