「AWS Lambda」と「Google Cloud Functions」とは
サーバーレスとは
プログラムを実行するためのサーバー管理を不要とすることで、ユーザーが実行環境を意識せずにクラウドアプリケーションを開発・運用できるようにする技術で、アプリケーション開発の新たな構造として注目を集めています。
サーバーレスでWEBサービス、サイト運用の場合、システムに必要な容量を、システム稼働時のみのコストで利用する事が出来ます。通常であれば、システムを動かすためのサーバーは、常に稼働していなければなりません。この為システムの開発、構築はもちろん、一定規模のサーバーの運用、保守にも常にコストが発生します。その為、コストを抑えることが可能な点は、サーバーレスで開発・運用するメリットだと言えるでしょう。
また、今回はサーバーレスサーバーコンピューティングサービスの中でも、amazonの「AWS Lambda」と、Googleの「Google Cloud Functions」についてお話する内容となっております。
概要
・AWS Lambda
Amazonが提供しているAmazon Web Services (AWS) の一つで、サーバーレスコンピューティングサービスです。2014年11月に提供が開始されました。同じAWSのサービスとして存在するクラウドコンピューティングサービスのAmazon EC2との違いとしては、Amazon EC2は仮想化されたサーバを提供するのに対し、AWS Lambdaはプログラムの実行環境のみを提供するため、管理の手間が省かれる点は特徴の一つです。
・Google Cloud Functions
Googleが提供しているクラウドコンピューティングサービスである。既に先行サービスとして存在していたAWS Lambdaに対抗すべくGoogle Cloud Platfromに新機能として追加されました。Google Cloud StorageもしくはGoogle Cloud Pub/SubからのイベントやHTTPからの呼び出しによって、軽量な関数を、フルマネージド環境で実行させることができます。AWS Lambdaに対応可能なものの多くがCloud Functionsでも対応できるようにされています。
AWS Lambdaの特徴
言語
2020年8月時点、ネイティブでは、「Java」「Go」「PowerShell」、「Node.js」「C#」「Python」「Ruby」 のコードがサポートされています。また、関数の作成にその他のプログラミング言語を使用できるようにするための Runtime API を提供されています。「COBOL」や「PHP」を使用することも拡張機能を使用すれば利用可能です。
AWS Lambda 関数
AWS Lambda で実行するコードは「Lambda 関数」としてアップロードされます。それぞれの関数は名前、説明、エントリポイントなどの設定情報と関連付けされます。基盤となるコンピューティングインフラストラクチャに依存しないよう、コードはステートレスなスタイルで書くことが必須です。ローカルファイルシステムのアクセス、子プロセス、その他の類似アーティファクトはリクエストの有効期限を越えて延長はされません。永続的な状態はすべて Amazon S3、Amazon DynamoDB、その他のインターネットが利用可能なストレージサービスに保存されます。また、Lambda 関数にはライブラリを利用できます。
料金
AWS Lambdaの料金は比較的安価に設定されています。また、無料利用枠として、無料で1 か月ごとに 100 万件の無料リクエスト、および 40 万 GB-秒のコンピューティングであれば利用可能となっている為、個人で利用するのであれば、無料利用枠の中でプログラムの実行ができることが多いです。加えて利用料金は、プログラムを実行している時間で決まるため、利用していない時は、利用料金は発生しない従量制となっています。
Google Cloud Functionsの特徴
言語
2020年8月時点では、「Node.js(JavaScript)」「Python」「Go」「Java」といった言語のランタイムがサポートされています。
料金
コンピューティング時間と呼ばれる関数がリクエストを受け取ってから、関数が終了するまでの期間だけ計測され、100 ミリ秒単位で最も近い値に丸められ、使用料は課金されます。関数がアイドル状態の場合、料金は発生しない従量制となっています。また、関数の呼び出しについては、定額制となっています。コンピューティング時間や関数の呼び出しは、AWS Lambdaと同じく定められている範囲内であれば無料で使用することができます。
まとめ
いかがでしたでしょうか?今回はAWS LambdaとGoogle Cloud Functinonsのそれぞれの概要と特徴をまとめました。サーバーレスによるサービスの開発は、今後益々浸透していくことが予想される分野です。今回のように、種類により違いがあるため、メリット・デメリットを見極め利用していきましょう。