毎日の AI 実行をどこで動かすか:手元の Mac・Cloud Run Jobs・GitHub Actions の月額を 1 日 2〜20 時間で試算し、止まり方と認証で比べる

1 日 1 回・最長 20 時間動く AI の定期処理を、手元の Mac(launchd)、Cloud Run Jobs、GitHub Actions で動かした場合の月額を料金表から計算しました。14.5 時間/日なら Cloud Run は約 29 ドル、Actions は約 145 ドルです。

27分で読めます Data
時計の文字盤から 3 本の線が分かれ、ノートパソコン・雲・縦に連なる小さな箱の 3 つの置き場所へつながる抽象図。毎日の AI 処理をどこで動かすかを表す
この記事は AI が下書きを補助し、運営者が内容を確認して公開しています。

社内で 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 + launchd0 ドル(計算資源の追加費用なし)機械的な上限なし定額プランのログイン
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 のとおりです。

3 方式の構成図。左から Mac は launchd から入口スクリプトを経て claude -p を起動し定額プランのログインを使う、中央の Cloud Run Jobs は Cloud Scheduler から起動され API キーか OAuth トークンを使う、右の GitHub Actions は schedule からランナーで claude -p を動かし OAuth トークンか API キーを使う

方式 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 の料金)。

項目値
CPU1 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 日の実行時間が延びたときの月額の変わり方です。

1 日の実行時間 2・8・14.5・20 時間ごとの月額の折れ線グラフ。GitHub Actions は 実行時間に比例して 9.6 ドルから 204 ドルへ増え、Cloud Run Jobs は 0 ドルから 42.3 ドル、Mac は全ケースで 0 ドル

図 2 と同じ値を表にします。Actions は GitHub Free と、Pro・Team の 2 通りを載せました。

1 日の実行時間Mac + launchdCloud Run JobsGitHub 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 JobsAPI キー、または OAuth トークンと考えられるAPI キーなら従量公式の記述は見つからず、認証の優先順位からの推論
GitHub ActionsOAuth トークン(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 は上限なしだが電源オフの日は動かず定額プランのログインを使い、Cloud Run Jobs は最大 168 時間で認証は推論、GitHub Actions は 1 ジョブ 6 時間で強制終了され OAuth トークンか API キーを使う

観点Mac + launchdCloud Run JobsGitHub 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 時間以内か、定額プランのログインで動かしたいか、パソコンを毎日電源オンにできるかの 3 つの質問で、Mac + launchd、Cloud Run Jobs、GitHub Actions に分かれる

  1. 1 回の処理が 6 時間を超えるなら、GitHub Actions は外します(分けて再開できる設計にする場合を除く)。
  2. Claude を定額プランで動かしたいなら、Mac か、OAuth トークンを使う Actions が候補です。API の従量でよいなら、Cloud Run Jobs が費用と上限の両方で扱いやすくなります。
  3. パソコンを毎日、電源オン・蓋を開けたままにできるなら、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 レビューパックも用意しています。

参考にした一次情報