インフラ

Google Cloud Functionsとは?仕組み・料金とCloud Run functionsへの改称・採用判断を実装者目線で解説

Google Cloud Functionsは、サーバーやコンテナの構築・運用を自分で抱えずに、書いた関数(コード)を1つの単位としてGoogle Cloud上で実行できるサーバーレスのFaaS(Function as a Service)です。HTTPリクエストやストレージへのファイル追加などのイベントをきっかけに関数だけが起動し、実行した分だけ課金される従量制のため、常時起動のサーバーを持たずに小さな処理を組み立てられます。本記事では、2024年に案内された「Cloud Run functions」への改称と第1世代・第2世代の関係を整理したうえで、トリガー・対応言語・料金と無料枠・実行制約、そしてAWS LambdaやCloud Run・GKEとの違いから採用の判断軸までを実装者の目線でまとめます。

まとめ:Google Cloud Functionsの要点と採用判断

先に結論を述べます。Google Cloud Functionsは「イベントに反応して短時間の処理を走らせる」用途に向いた土台であり、常時稼働のWebサーバーを立てるほどではない自動処理・連携処理を、運用負荷を抑えて素早く動かしたいときに効いてきます。判断の要点は次の3点です。

  • 正体はFaaS:関数単位でデプロイし、リクエストやイベントの発生時だけ起動する。アイドル時は課金されず、実行回数と実行時間に応じた従量課金になる。
  • 改称と世代:2024年8月にCloud Run functionsへ名称が改められ、第2世代の基盤にはGoogle Cloudのサーバーレスコンテナ実行環境であるCloud Runが用いられる(2026年時点)。新規構築では第2世代が案内されている。
  • 向き不向き:Webhook受け・軽量API・ファイル到着時の変換・定期バッチの起点には向く。長時間バッチ、細かな並行制御を要する常時稼働サービス、コールドスタートを一切許容できない低遅延用途では見送りやCloud Runなどへの切り替えを検討する。

サーバーレスという考え方そのものの全体像はサーバーレスとは?仕組みとコンテナとの使い分けで、関数実行モデルの制約はFaaSとは?実行時間やコールドスタートの制約と採用判断で補完できます。以下で仕組みから順に掘り下げます。

Google Cloud Functionsとは?サーバーレスFaaSの基本を解説

Google Cloud Functionsは、Google Cloudが提供するFaaS(Function as a Service)です。開発者は「入力を受け取り、処理して、結果を返す」という関数を1つ書いてデプロイするだけで、その関数を動かすためのサーバー、OS、スケーリングの仕組みをGoogle Cloud側が受け持ちます。呼び出しが来たときにだけ関数の実行環境が起動し、処理が終われば片付けられるため、待機中のサーバー費用が発生しません。

この「関数だけを預ける」モデルは、サーバーレスと呼ばれる広い分類の中でも、実行の最小単位を関数に置いた形態にあたります。同じサーバーレスでもコンテナ単位で預けるCloud Runとは粒度が異なり、常時起動のインスタンスを持たない点は共通しつつ、扱う対象が「関数」か「コンテナイメージ」かで設計の考え方が分かれます。関数単位ゆえにデプロイが軽く、イベント連携の受け皿を短時間で用意できるのが持ち味です。

典型的な使いどころは、外部サービスからのWebhookを受けて別処理へ橋渡しする、ストレージにアップロードされた画像をサムネイルへ変換する、データベースの更新をきっかけに通知を送る、定期実行のトリガーから集計を回す、といった「何かが起きたら、短い処理を1つ走らせたい」場面です。逆に、複雑な状態を長く保持し続けるサービスや、数十分に及ぶ重い計算をひとつの実行で完結させたい処理には、後述する制約から不向きになります。

Cloud Run functionsへの改称と第1世代・第2世代の違い

Google Cloud Functionsを調べると「Cloud Run functions」という名称に出会います。これは2024年8月に案内された名称の改めで、旧「Cloud Functions(第2世代)」がCloud Run functionsに、旧「Cloud Functions(第1世代)」がCloud Run functions(第1世代)に整理されました(2026年時点の表記)。呼び名は変わっても、関数をデプロイして使うという開発体験の骨格は引き継がれています。

第2世代は、Google Cloudのサーバーレスコンテナ実行環境であるCloud Runを基盤に据えています。これにより、実行時間の上限やイベント連携の幅が第1世代より広がりました。新規に構築する場合は第2世代が案内されており、第1世代は既存資産の互換のために残る位置づけと捉えると整理しやすくなります。両世代の主な差は次の通りです。

観点 第1世代 第2世代(現行)
最大実行時間 約9分 約60分
基盤 従来の実行環境 Cloud Runを利用
イベント連携 限定的なトリガー Eventarc経由で拡張
推奨 互換維持向け 新規構築で推奨

第2世代の基盤がCloud Runである点は、採用判断にも効いてきます。関数として始めた処理が育ってコンテナ全体を制御したくなったとき、地続きの選択肢としてCloud Runへ寄せやすいためです。基盤側の詳細はCloud Runとは?GCPのサーバーレスコンテナの仕組みと違いで確認できます。

トリガーと対応言語で理解するGoogle Cloud Functionsの実行モデル

Google Cloud Functionsの実行は「トリガー」で始まります。トリガーは大きく2系統です。1つはHTTPトリガーで、割り当てられたエンドポイントURLへリクエストが届くと関数が同期的に実行され、レスポンスを返します。軽量なAPIやWebhookの受け口はこの形です。もう1つはイベントトリガーで、クラウド内で発生した出来事を受けて非同期に関数が起動します。

イベントトリガーの供給元には、メッセージングのPub/Sub、ファイル操作を検知するCloud Storage、ドキュメント変更を拾うFirestoreなどがあります。第2世代ではEventarcを介してイベントを受け取る形が案内されており、対応できるイベント源の幅が広がりました。「HTTPで叩くのか、イベントで発火させるのか」を最初に決めることが、関数設計の出発点になります。

対応言語は幅広く、Node.js・Python・Go・Java・Ruby・PHP・.NETといった主要ランタイムを選べます。関数の入口は言語ごとの流儀に沿って書きますが、いずれも「リクエストやイベントを引数で受け取り、処理して返す」という形は共通です。Node.jsでHTTP関数を書く最小例は次のようになります。

const functions = require('@google-cloud/functions-framework');

functions.http('helloHttp', (req, res) => {
  const name = req.query.name || 'world';
  res.send('Hello, ' + name);
});

デプロイ後は割り当てられたURLへアクセスするだけで関数が動きます。このように「入口の関数を1つ書く」だけで公開できる手軽さが、イベント連携の受け皿を素早く用意したい場面での持ち味です。関数実行モデル一般の制約はFaaSとは?コールドスタックの制約と採用判断もあわせて押さえておくと設計を誤りにくくなります。

Google Cloud Functionsの料金体系と無料枠・実行制約の勘所

料金は従量課金です。課金対象は主に「関数の呼び出し回数」と「関数が動いた時間に応じたコンピューティング量(vCPUとメモリ)」で、これに送信データ量が加わります。関数が待機している間は課金されないため、呼び出しがまばらな処理ほどコスト面で有利です。無料枠も用意されており、少量の利用であれば費用を抑えて始められます。

無料枠は世代や課金体系によって単位が異なります。呼び出し回数は毎月200万回までが無料枠の目安として案内されており、超過分は100万回あたり数十セント規模の加算です。コンピューティング分は、第2世代ではvCPU秒・メモリ(GiB秒)・リクエスト数それぞれに月次の無料枠が設定されています。実際の金額は世代・リージョン・時期で改定されるため、見積り時はGoogle Cloudの公式料金ページで最新の単価を確認する前提で設計します(2026年時点)。

課金・制約の観点 目安(2026年時点)
呼び出し無料枠 月200万回まで
課金単位 回数+計算時間+転送量
最大実行時間 第1世代9分/第2世代60分
最大同時実行数 数千規模の上限あり
待機中の課金 原則なし(従量)

実装上の勘所は制約側にあります。まず実行時間の上限があるため、数時間かかる重いバッチをひとつの関数で完結させる設計は現実的ではありません。次にコールドスタートで、しばらく呼ばれていない関数は起動に一拍かかるため、常に低遅延を求められる用途では待ち時間が問題になります。加えて、大量アクセスが一気に来ると同時実行数の上限に触れることがあり、下流のデータベースへ負荷が集中しないよう流量の設計もあわせて考える必要があります。

AWS LambdaやCloud Run・GKEとの違いと使い分けの判断軸

関数を動かすだけなら似た選択肢が複数あります。まずAWS Lambdaは、AWS側のFaaSで思想がよく似た関係です。Google Cloud Functionsを選ぶ判断は多くの場合「基盤としてどのクラウドに寄せるか」で決まり、周辺サービスとの連携のしやすさが決め手になります。関数モデルそのものの比較観点はAWS Lambdaとは?仕組みと料金・採用判断と読み比べると輪郭がはっきりします。

同じGoogle Cloudの中では、Cloud RunとGKEが比較対象になります。Cloud Runはコンテナ単位のサーバーレスで、任意のイメージを動かせるぶん自由度が高く、複数のエンドポイントや常時性の高い処理まで受け止められます。GKE(Kubernetes)は自前でクラスタを運用し、細かな制御と引き換えに運用負荷を引き受ける選択肢です。粒度と運用負荷の関係を整理すると次のようになります。

選択肢 実行単位 向く用途
Cloud Functions 関数 イベント受け・軽量API
Cloud Run コンテナ 常時性のあるWeb処理
GKE Pod(k8s) 大規模で複雑な基盤

判断軸はシンプルです。「イベントに反応する単発処理」ならCloud Functions、「常に受け付けるWebアプリやAPI群」ならCloud Run、「多数のサービスを緻密に束ねる基盤」ならGKE、と粒度で選ぶのが出発点になります。第2世代のCloud FunctionsはCloud Runを基盤とするため、関数から始めて手狭になったらコンテナへ寄せるという移行のしやすさも判断材料に加えられます。

実装者目線で追うGoogle Cloud Functionsのデプロイ手順

実装の流れは、環境準備・関数の記述・デプロイ・確認の4段で捉えると迷いません。前提として、Google Cloudのプロジェクトを用意し、gcloudコマンドが使える状態にしておきます。関数のソースはローカルに置き、入口の関数を1つ書くところから始めます。

コードが用意できたら、gcloudでデプロイします。トリガー種別・ランタイム・リージョンを指定し、第2世代を選ぶオプションを付けて実行します。HTTPトリガーの最小デプロイは次のイメージです。

gcloud functions deploy helloHttp \
  --gen2 \
  --runtime nodejs20 \
  --trigger-http \
  --region asia-northeast1 \
  --allow-unauthenticated

デプロイが終わると関数のエンドポイントURLが払い出されるので、そのURLへアクセスして期待通りの応答が返るかを確かめます。イベントトリガーの場合は、Pub/SubトピックやStorageバケットなど発火源を指定してデプロイし、実際にイベントを起こしてログで実行を確認しておくと安全です。運用に入ってからはログとエラー率の監視をあわせて用意し、コールドスタートの頻度や同時実行の上限に触れていないかを見ていきます。

認証の扱いも設計時に決めておきます。誰でも叩ける公開エンドポイントにするのか、呼び出し元を絞るのかで指定が変わるため、外部公開する関数では入力検証と認証を関数側で必ず組み込むべきです。実運用の設計や周辺基盤の構築まで含めて相談したい場合は、インフラ構築(AWS・Google Cloud・Azure)のように、クラウド横断で設計を支援できる体制と組むと、世代選定や移行方針まで含めた判断がしやすくなります。

Google Cloud Functionsを採用すべき場面と見送るべき場面

ここは判断を言い切ります。Google Cloud Functionsを採用すべきなのは、次の条件が揃うときです。処理が「イベントに反応する短時間の単発」で完結し、実行が常時ではなくまばら、かつ運用チームを厚く持たずに素早く動かしたい――この3条件に当てはまるなら、関数単位の軽さと従量課金の相性が効き、Cloud Functionsが有力な第一候補になります。Webhook受け、ファイル到着時の変換、更新通知、定期集計の起点は典型的な適用例です。

逆に見送るべきなのは、次のいずれかに強く当てはまる場合です。第一に、ひとつの実行が実行時間の上限を超える長時間バッチ。第二に、コールドスタートによる初回の待ちを一切許容できない低遅延・常時応答の用途。第三に、複雑な状態を長く保持し、細かな並行制御やミドルウェアを自前で握りたいケースです。これらでは、コンテナ単位で常時性を確保できるCloud Runや、緻密な制御が効くGKEへ寄せるほうが素直に収まります。

迷いやすいのは「常時ではないが、たまに重い」処理です。この場合は、軽い受け口だけをCloud Functionsに置き、重い本処理はCloud Runや非同期のジョブ基盤へ渡す、という役割分担が現実解になりやすい構成です。関数を万能の実行環境と捉えず、「イベントの入口」として割り切ると、システム全体の見通しが良くなります。サーバーレス全体の中での位置づけはサーバーレスとはの判断整理とあわせて捉えると、選定の根拠を言語化しやすくなります。

よくある質問

Google Cloud FunctionsとCloud Run functionsは何が違いますか?

別サービスではなく、同じサービスの名称が改められたものです。2024年8月にCloud FunctionsはCloud Run functionsへ案内され、旧第2世代が現行のCloud Run functionsにあたります。関数をデプロイして使う仕組みは引き継がれているため、既存の関数がそのまま動かなくなるわけではありません(2026年時点)。

Google Cloud FunctionsとCloud Runはどちらを選ぶべきですか?

実行単位で選びます。イベントに反応する単発の処理なら関数単位のCloud Functions、常に受け付けるWebアプリやAPI群ならコンテナ単位のCloud Runが素直です。第2世代はCloud Runを基盤とするため、関数から始めて手狭になったらCloud Runへ寄せる移行もしやすくなっています。

Google Cloud Functionsの料金はどのくらいかかりますか?

呼び出し回数と計算時間、データ転送量に応じた従量課金です。呼び出しは月200万回まで無料枠の目安があり、待機中は課金されません。少量の利用なら無料枠に収まることも多い一方、単価は改定されるため、見積り時は公式の料金ページで最新の値を確認してください。

コールドスタートはどの程度気にすべきですか?

用途しだいです。バッチや非同期のイベント処理では初回の一拍は問題になりにくい一方、ユーザーが待つ同期APIでは体感に響きます。低遅延が要件なら、最小インスタンスを確保する設定や、常時性のあるCloud Runへの切り替えを検討します。

どのプログラミング言語で書けますか?

Node.js・Python・Go・Java・Ruby・PHP・.NETといった主要言語に対応しています。いずれも「リクエストやイベントを受け取り、処理して返す」という関数の入口を書く形は共通で、既存チームの得意な言語を選べます。

関連記事

資料請求

RELATED POSTS 関連記事