AWS Lambda Managed Instancesは、AWS Lambda関数をAmazon Elastic Compute Cloud(Amazon EC2)インスタンス上で実行できる新機能だ。
同社によると、この新機能は、サーバーレス開発体験を損なうことなく、専門的なコンピュートオプションへのアクセスと、安定したワークロードにおけるコスト最適化を可能にする。
AWSのシニアソリューションアーキテクトであるMicah Walter氏は説明した。
Lambda Managed Instancesを使用すると、Lambda関数がEC2インスタンス上でどのように実行されるかを定義できます。Amazon Web Services(AWS)は、これらのインスタンスのセットアップと管理をお客様のアカウント内で行います。最新世代のAmazon EC2インスタンスにアクセスでき、AWSがインスタンスライフサイクル管理、OSパッチ適用、負荷分散、自動スケーリングといった運用の複雑さをすべて処理します。
AWS Lambda Managed Instancesは、インスタンスタイプやスケーリングパラメータなどの特定のコンピュート特性に基づいてEC2インスタンスを整理するために、内部的にキャパシティプロバイダーを活用している。これらはLambdaコンソールやIaCツールを通じて設定可能だ。
この仕組みにより、事前プロビジョニングされた実行環境へのリクエストのルーティングが効率的なリソース利用を保証し、コールドスタートを最小化しながらマルチコンカレンシーを可能にする。また、トラフィックの急増時にはAWSが自動的に新しいインスタンスを起動してスケーリングを行う。同時に、組み込みの安全策がリソースの過負荷を防ぎ、手動設定やインスタンス管理を必要としないサーバーレス運用モデルを維持する。
(出典:AWS News Blog)
AWS Lambda Managed Instancesでは、各実行環境が複数のリクエストを同時に処理できるため、リソースを共有することでコンピュート消費を削減できる。また、Lambda Managed Instancesを使用することで、Amazon EC2の価格モデル(Savings PlansやReserved Instancesなど)にアクセス可能であり、オンデマンド価格と比較して最大72%の割引を受けられる。
AWS Serverless HeroであるLuc van Donkersgoed氏はLinkedInで述べた。
これはLambdaとEC2の驚くべき融合です。Lambda関数をホストするためにEC2インスタンスを選択可能になり、特定のCPUやコスト節約プランにアクセスできます。ただし、これは安定したワークロード向けです!
一方、Redditのスレッドでの回答者はコスト計算の複雑さについて議論している。
AWSがインスタンスを管理するためにオンデマンド価格の15%がかかりますが、コードを書き直してマルチコンカレンシーを処理すればコストを節約できます。実行時間に対する料金は発生しません。そのため、長時間実行されるLambdaはより良いROIを得られます。ただし、これが自社のEC2でホスティングするよりもコストを節約できるかどうかを計算するには、NASAの計算能力が必要なように思えます。
AWSの競合他社もFunction-as-a-Service(FaaS)を提供しており、Azure FunctionsやGoogle Cloud Functionsなどがさまざまなコンピュートオプションを提供している。Jelmer Cormont氏はLinkedInで述べた。
なぜMicrosoft Azureのマーケティングはこれほど悪いのでしょうか。人々が「待って、これって2016年からAzure Functionsとして専用のApp Service Plansで提供されているじゃないか!」と言わないのは不思議です(実際に提供されています)。
最後に、ユーザーはLambdaコンソール、AWS CLI、またはAWS SDKを通じてLambda Managed Instancesを活用できる。最新バージョンのNode.js、Java、.NET、Pythonランタイムをサポートしている。これらは、US East(N. Virginia)、US East(Ohio)、US West(Oregon)、Asia Pacific(Tokyo)、Europe(Ireland)のリージョンで利用可能だ。