CalcTune
🎮
おもしろ · 開発

AWS Lambda vs EC2 コスト計算

ワークロードをAWS Lambda(サーバーレス)で実行する場合とEC2インスタンス(サーバー)で実行する場合の月額コストを比較します。Lambdaの呼び出し量・実行パラメータと、EC2インスタンスの詳細を入力して、どちらがコスト効率に優れるか、またどのリクエスト量で損益分岐するかを確認できます。

Lambda(サーバーレス)

EC2(サーバー)

¥
計算例を表示中 — 上に値を入力してください
よりコスト効率の高い選択肢
Lambdaが有利¥57.65 EC2比
Lambda 月額コスト
¥3.08
EC2 月額コスト
¥60.74
Lambda コスト内訳
リクエスト料金
¥1.0000
コンピューティング料金
¥2.0833
損益分岐点
98,490,678 リクエスト/月

この量以下ではLambdaが安く、これを超えるとEC2が安くなります。

Lambda料金: $0.20/100万リクエスト + $0.0000166667/GB秒。EC2コストは時間単価×時間数。料金は概算です。最新のAWS料金は公式ページでご確認ください。

AWS Lambda vs EC2:コスト比較の完全ガイド

クラウドコンピューティングにおいて最も影響の大きいアーキテクチャ上の判断のひとつが、サーバーレス関数と従来の仮想マシンのどちらを選択するかです。AWS LambdaとAmazon EC2は根本的に異なる2つの料金モデルを代表しています。Lambdaは呼び出しごとに実際に消費されたコンピューティングリソースに基づいて課金され、EC2はインスタンスの稼働状況に関係なく時間単位の固定料金が課金されます。この違いにより、どちらが普遍的に安いということはなく、最適な選択はワークロードのリクエスト量、実行特性、トラフィックパターンに依存します。

AWS Lambdaの料金体系

Lambdaの料金は2つの要素で構成されます。1つ目はリクエスト単価で、100万リクエストあたり$0.20(1呼び出しあたり$0.0000002)です。2つ目は、割り当てたメモリ量と実行時間に基づくコンピューティング料金で、GB秒あたり$0.0000166667で計算されます。例えば、512MBのメモリを割り当てた関数が100ミリ秒実行される場合、0.512GB × 0.1秒 = 0.0512 GB秒/呼び出しを消費します。

メモリは64MB刻みで課金され、最小は128MBです。実行時間は1ミリ秒刻みで課金されます。Lambdaには無料利用枠も用意されており、月間100万リクエストと400,000 GB秒のコンピューティングが無料です。低トラフィックのワークロードであれば、コストゼロで運用できます。

重要な最適化のポイントはメモリ割り当てです。LambdaはメモリにCPUを比例配分するため、メモリを増やすと実行速度が向上し、結果として合計GB秒(つまりコスト)が、メモリ単価が上がっても減少することがあります。

EC2の料金体系

EC2はインスタンスタイプとリージョンに基づいた時間単位の固定料金で、実際のCPU使用率やリクエスト量に関係なく課金されます。使用率1%のインスタンスも100%のインスタンスもコストは同じです。常時稼働のインスタンスの場合、月間約730時間分の費用が発生します。

EC2の料金は幅広い範囲にわたります。最小のインスタンスは時間あたり$0.005未満ですが、高性能インスタンスは時間あたり数十ドルに達します。一般的な汎用Webサーバーにはt3.mediumが使われることが多く、時間あたり約$0.0416、常時稼働で月額約$30です。

EC2のコストはリザーブドインスタンス(1年契約で最大72%割引)やスポットインスタンス(耐障害性のあるワークロード向けに最大90%割引)で大幅に削減できます。この計算ツールはオンデマンド料金をベースラインとして使用していますので、リザーブドインスタンスを利用している場合は、割引適用後の実効時間単価を入力してください。

損益分岐点の理解

損益分岐点とは、LambdaとEC2のコストが等しくなる月間リクエスト量のことです。この量より少なければ、使った分だけ課金されるLambdaの方が安くなります。この量を超えると、固定の月額コストがより多くのリクエストに分散されるEC2の方が安くなります。

損益分岐の計算式は、EC2の月額コスト÷Lambdaの1リクエストあたりのコストです。Lambdaの1リクエストあたりのコストは、$0.0000002のリクエスト料金とメモリ・実行時間に基づくコンピューティング料金の合計です。128MBで100ミリ秒実行の関数の場合、1リクエストあたりのコストは約$0.00000041です。t3.mediumの月額$30の場合、この構成のLambdaとの損益分岐点は約7,300万リクエスト/月です。

実行時間が長い関数やメモリ使用量の大きい関数は損益分岐点が低くなり、より少ないリクエスト量でもEC2が有利になります。

トラフィックパターンの考慮

単純なコスト比較は、スパイク型トラフィックにおけるLambdaの優位性を過小評価しています。月初の1日に1,000万リクエストが集中し、残りの日はほぼゼロというアプリケーションの場合、Lambdaは自然にゼロまでスケールダウンし、バースト分のみが課金されます。EC2インスタンスは月間ずっと稼働しているため、フルの月額料金が発生します。

逆に、安定した大量トラフィックのワークロードでは、EC2の方が一般的にコスト効率に優れます。毎秒10,000リクエストを24時間処理し続ける適切にチューニングされたEC2インスタンスは、ほとんどのLambda損益分岐点をはるかに超えるリクエスト数を処理しています。

Auto Scalingを利用したEC2フリートは比較を複雑にします。需要に応じてEC2のキャパシティを増減させることで、実際に稼働するインスタンス分のみ課金されます。このハイブリッドアプローチは、Lambdaの変動コストの利点の一部を取り込みつつ、大規模処理ではEC2のリクエスト単価の経済性を維持できます。

コスト以外の判断要素

コストはLambda vs EC2の判断における一側面ですが、運用面の考慮も重要です。Lambdaはサーバー管理、OSのパッチ適用、キャパシティプランニング、インフラストラクチャのオーバーヘッドの大部分を排除します。この運用のシンプルさには、コスト計算には表れない実質的な価値があります。小規模チームや初期段階のプロダクトでは、コンピューティングの直接コストが高くても、運用負担の軽減がLambdaを正当化することがよくあります。

ただし、Lambdaには制約があります。最大実行時間15分のタイムアウト、最大10GBのメモリ制限、アイドル後の最初の呼び出しに100〜1000ミリ秒のレイテンシが追加されるコールドスタートなどです。長時間実行タスクや100ミリ秒未満の一貫した応答時間が求められるレイテンシに敏感なアプリケーションでは、EC2がアーキテクチャ上必須となる場合があります。

EC2は環境を完全に制御できます。OS設定、ネットワーク設定、インスタンスストレージ、GPUアクセス、あらゆるソフトウェアの実行が可能です。特定のカーネルモジュール、低レベルネットワーキング、GPUコンピューティングが必要なワークロードでは、コストに関係なくEC2が唯一の選択肢となることが多いです。

実践的なコスト最適化のヒント

Lambdaを選択する場合、メモリ割り当ての調整が最もインパクトの大きい最適化です。AWS Lambda Power Tuning(オープンソースツール)は、異なるメモリレベルで関数を自動テストし、コストとパフォーマンスの最適なバランスを見つけます。多くの関数は、最小の128MBよりも高いメモリレベルで最低コストパーリクエストを達成します。

EC2の場合、ライトサイジング(適切なインスタンスサイズの選択)が最も重要な最適化です。AWS Cost ExplorerやCompute Optimizerは、パフォーマンスに影響を与えることなくコストを削減できるインスタンスタイプの変更を提案します。Gravitonベースのインスタンス(arm64)は、互換性のあるワークロードにおいてx86同等品と比較して通常20%優れたコストパフォーマンスを提供します。

よくある質問

AWS Lambdaのコンピューティングコストはどのように計算されますか?

LambdaのコンピューティングコストはGB秒に基づきます。割り当てたメモリ量(GB)×実行時間(秒)×$0.0000166667/GB秒で計算されます。例えば、256MBの関数が500ミリ秒実行された場合、0.256GB × 0.5秒 = 0.128 GB秒となり、1呼び出しあたり約$0.00000213のコストです。これにリクエスト単価$0.0000002を加えた合計が総コストです。

EC2がLambdaより安くなるのはどの時点ですか?

Lambda構成とEC2インスタンスサイズによって異なります。目安として、128MBで100ミリ秒実行のLambda関数の場合、EC2(月額$30)は約7,000〜8,000万リクエスト/月を超えると安くなります。メモリが大きい関数や実行時間が長い関数では、より少ないリクエスト量で損益分岐点に達します。

Lambdaに無料利用枠はありますか?

はい。AWS Lambdaの恒久的な無料利用枠には、月間100万リクエストと400,000 GB秒のコンピューティングが含まれます。128MBの関数の場合、約32億ミリ秒の実行時間に相当します。この無料利用枠はアカウント内のすべてのLambda呼び出しに適用され、新規アカウントに限定されません。

EC2ではオンデマンド、リザーブド、スポットのどの料金を使うべきですか?

オンデマンド料金(この計算ツールのデフォルト)は最大の柔軟性を提供します。リザーブドインスタンス(1年または3年契約)は安定したベースラインワークロードに適しており、最大72%のコスト削減が可能です。スポットインスタンスは最大90%のコスト削減が可能ですが、2分前の通知で中断される可能性があるため、耐障害性のあるワークロードにのみ適しています。リザーブドインスタンスを使用している場合は、割引適用後の実効時間単価を入力してください。

Lambdaのコールドスタートとは何ですか?

Lambdaのコールドスタートは、新しい実行環境が初期化される際に発生し、通常100〜1000ミリ秒のレイテンシが追加されます。低トラフィックの関数ほど頻繁に発生します。Lambda Provisioned Concurrency(プロビジョニングされた同時実行)を使用するとコールドスタートを解消できますが、固定の時間課金が追加されます。この計算ツールにはProvisioned Concurrencyのコストは含まれていませんので、該当する場合は別途加算してください。