投稿日 2023.04.07

AWS Lambda vs Azure Functions vs Cloud Functions

  • サーバーレス

今回は、サーバーレスのサービスに関する内容だね!

どういう内容でしょうか?

はじめに

本記事では、サーバーレスのサービスである、AWS LambdaとAzure Functions、Cloud Functionsについて、3つの観点から詳しく解説します。

想定する読者

本記事は、サーバーレスのサービスを利用して、アプリケーション開発を行いたいエンジニアやエンジニア志望の方を対象としています。

サーバーレスのサービスとは

サーバーレスのサービスとは、サーバーの構築や管理を提供会社が行ってくれるクラウドサービスのことをいいます。このサービスを利用することで、開発者は、インフラストラクチャを気にすることなく、コーディングに専念することができます。

AWS Lambdaとは

AWS Lambdaとは、AWSが提供するサーバーレスのサービスのことです。

Azure Functionsとは

Azure Functionとは、Microsoftが提供するサーバーレスのコンピューティングサービスです。

Cloud Functionsとは

Cloud Functionsとは、Google Cloudが提供するサーバーレスのコンピューティングサービスです。

比較

コストパフォーマンス

  • AWS Lambdaは一か月あたり100万リクエストが無料で提供され、それを超えると、100万リクエストあたり$0.2かかります。
  • Azure Functionsは一か月あたり100万リクエストが無料で提供され、それを超えると、100万リクエストあたり$0.2かかります。
  • Cloud Functionsはは一か月あたり200万リクエストが無料で提供され、それを超えると、100万リクエストあたり$0.4かかります。

これらのサービスを用いたアプリケーションにおいて、リクエストが200万を超えるケースはあまり多くないため、コストパフォーマンスはCloud Functionsが高いといえます。

 

実行時間

  • AWS Lambdaの最大実行時間は、900秒です。
  • Azure Functionsの最大実行時間は600秒ですが、App Service上なら無制限で実行することができます。
  • Cloud Functionsの最大実行時間は540秒です。

イベントドリブンなサービスの開発には、最大実行時間が一番長いAWS Lambdaがおすすめですが、それ以外のサービスに対して、サーバーレスを使いたいのであれば、App ServiceがあるAzure Functionsがおすすめです。

 

対応言語

  • AWS Lambdaの主な対応言語は、C#、Go、 Java、.NET 、Node.js、Python、Rubyとなっています。
  • Azure Functionsの主な対応言語は、C#、F#、JavaScript、PowerShell、Python、Typescriptとなっています。
  • Cloud Functionsの主な対応言語は、Go、Java、Python、.NET、Node.js、PHP、Rubyとなっています。

優劣はつけがたいですが、アプリケーション開発における主流言語の観点から述べると、RubyがAzure Functionsでは対応していないこととPHPに対応しているのがCloud Functionsだけであるということは特筆すべきでしょう。

まとめ

本記事では、3つのサーバーレスのサービスについて紹介しました。コストの面では、Cloud Functionsが優れているといえます。また、実行時間と対応言語の面では、どれを使えばよいかはケースバイケースであるため、上記の比較を参考に選んでいただくとよいでしょう。

語句の説明

イベントドリブン: 利用者や別のプログラムなどが引き起こす出来事をきっかけにして処理を実行する方式のこと