ちょっと話題の記事

「Should your EC2 be a Lambda?」Lambda と EC2 のコストを簡易比較出来る Servers.lol を使ってみた!

2020.02.17

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

園部です。

Lambda の動向がレポートされている New Relic Blogs - For the Love of Serverless を読んでいたところ Servers.lol というツールが記載されていたので、やってみました!

Servers.lol とは

元々サーバーレスモニタリングサービスを提供していた IOpipe 社(2019年 NewRelic へ JOIN)のツールです。 現在のリソース状況(リクエスト数、実行期間、メモリ 等)を入力することで、そのアプリケーション(機能)が Lambda 向きか EC2 向きかをコスト面で比較が出来ます。

※ あくまで単純なコンピューティングリソースコスト比較のため、注意が必要です。 本格的にアプリケーションをサーバーレスで構築する際は Serverless Application Lens AWS Well-Architected Framework 等を確認し計画的に行いましょう。

道くさ

Lambda の料金を計算する方法としては公式サイト料金表や計算ツールにて可能です。計算ツールは、以前からある SIMPLE MONTHLY CALCULATOR ではなく AWS Pricing Calculator であることにご注意ください。

AWS Pricing Calculator では、無料枠の有無を考慮した計算が可能なため便利です。

今回は Severs.lol で試算される金額を AWS Pricing Calculator でも確認していきます。

やってみる

Servers.lol ヘアクセス
https://servers.LOL/

「Find Out」 を選択

言語 を選択 >>> 「Yes」 を選択
(言語の選択肢が豊富ですね)

アプリケーション(リソース)情報を入力

  • Name Of Application
  • Requests
    • 単位は Minute/Hour/Day/Week/Fortnight/Month から選択可能です
  • Avg Request Duration
  • How much memory does your app require?

Request 傾向を選択

※ 残念ながらここで選択した傾向は、コスト計算や比較に反映されません。

EC2 で実行する場合のインスタンスタイプと数を選択

「Get Results」 を選択

結果が表示されます。
今回のアプリケーションの場合は、 EC2 で実行した方がお得のようです。

  • Lambda: $446.47
  • EC2: $66.82

AWS Pricing Calculator で検算してみましょう。 先ほどの Servers.lol の結果に計算方法が記載されています。

  • 無料利用枠は適用されない
  • API Gateway など他のリソースは考慮されない

How we calculate the cost estimates

EC2: We use Amazon’s price schedule for US-West-2, along with the data you have supplied us about the instances you run to get a reasonable estimate of your EC2 costs each month for your applications

Lambda: Lambda pricing is as follows: $0.20 per 1 million requests. $0.00001667 for every GB-second of compute, with every execution rounded up to the nearest 100ms. AWS Lambda includes a free tier which includes 1 million events, and 400,000 GB seconds free every month forever. NOTE: the free tier is not calculated into these results. There may be additional costs for other services used such as API Gateway and Step Functions that are not calculated into these results.

AWS Pricing Calculator ヘアクセス

AWS Pricing Calculator

Servers.lol では Request 数は分単位で入力しましたが、こちらは月単位なので単純変換(60x24x30x10,000)して入力 >>> 他の項目は先ほどを同様の値を入力

(画像が小さいので引用)
最終行 に Lambda costs 446.40 USD と記載され Servers.lol と同じであることが確認出来ます。

Show calculations

Unit conversions Amount of memory allocated: 512 MB x 0.0009765625 GB in a MB = 0.5 GB Pricing calculations RoundUp (15) = 100 Duration rounded to nearest 100ms 432,000,000 requests x 100 ms x 0.001 ms to sec conversion factor = 43,200,000.00 total compute (seconds) 0.50 GB x 43,200,000.00 seconds = 21,600,000.00 total compute (GB-s) 21,600,000.00 GB-s x 0.0000166667 USD = 360.00 USD (monthly compute charges) 432,000,000 requests x 0.0000002 USD = 86.40 USD (monthly request charges) 360.00 USD + 86.40 USD = 446.40 USD Lambda costs - Without Free Tier (monthly): 446.40 USD

リベンジ

Lambda がコスト面では最適な例もやっておきたいので、極端な例で再度実施してみます。

今度は Lamdba の方がコストを低く抑えられる結果が得られました。

共有

Servers.lol では結果を共有することが可能です。

「Share with results」 を選択

表示されたURLを共有

コピーした URL へアクセス

さいごに

ちょっとしたところから気になったツールを試してみました!部分的な比較ではありますが、簡単に試すことが可能です。コスト面だけが先行するのは避けたいですが、サーバーレス検討の第一歩としては最適ではないかと思います!

(個人的には、こういったちょっとツールが好きです。