サーバーレスのコンピュート基盤として代表的なのが、AWS LambdaとGoogle Cloud Functionsです。基本コンセプトは似ていますが、トリガーの種類・連携サービス・運用面で違いがあります。本記事では、両者を比較し選び方を解説します。
基本コンセプト
どちらもイベント駆動・自動スケール・従量課金のサーバーレス関数サービスです。最大15分(Lambda)/ 60分(Cloud Functions 2nd gen)の実行制限があり、関数単位で独立して動作します。
項目別比較
対応ランタイム
- Lambda:Node.js / Python / Java / Go / .NET / Ruby / カスタムコンテナ
- Cloud Functions:Node.js / Python / Go / Java / .NET / Ruby / PHP
トリガー
- Lambda:API Gateway, S3, DynamoDB, SQS, EventBridge, Kinesisなど豊富
- Cloud Functions:HTTP, Pub/Sub, Cloud Storage, Firestore, Eventarcなど
実行時間制限
- Lambda:最大15分
- Cloud Functions 2nd gen:最大60分(HTTP関数)/ 9分(イベント関数)
料金
両者とも「呼び出し回数 × 実行時間 × メモリ」が基本構造で、無料枠も充実しています。コンピュート単価は接近しており、エコシステムやネットワーク料金で差が出るケースが多いです。
コールドスタート
- Lambda:Provisioned Concurrency / SnapStart(Java)で緩和
- Cloud Functions:最小インスタンス数で常駐させる設定が可能
ローカルから書き比べ
// Lambda(Node.js)
export const handler = async (event) => {
return { statusCode: 200, body: 'Hello Lambda' };
};
// Cloud Functions(Node.js, 2nd gen)
import * as functions from '@google-cloud/functions-framework';
functions.http('hello', (req, res) => {
res.send('Hello Cloud Functions');
});
選び方の指針
- 既存システムがAWS中心:Lambda(連携サービスが圧倒的)
- GCP利用・Firestore連携が必要:Cloud Functions
- 大規模ストリーム処理:Lambda + Kinesis or Cloud Functions + Pub/Sub
- 長時間処理が必要:Cloud Functions 2nd gen / ECS / Cloud Run
類似サービスの比較
- AWS Fargate / Cloud Run:コンテナを直接実行できる柔軟性
- Cloudflare Workers / Vercel Edge Functions:エッジでの実行が強み
- Azure Functions:Microsoft環境との統合
まとめ
サーバーレスコンピュートはクラウドごとに微妙に得意領域が異なります。AWS中心ならLambda、GCP中心ならCloud Functionsが無難。長時間処理や柔軟性が必要ならCloud Run・Fargateも候補に。要件に応じて使い分けるのがベストです。