AWSは、Pythonおよび.NET関数用のLambda SnapStartの一般提供を発表しました。この機能により、関数の起動時間が1秒未満に短縮され、多くの場合、コードの変更は最小限で済みます。これにより、応答性とスケーラビリティの高いサーバーレスアプリが可能になります。Lambda SnapStartは、1回限りの初期化コード、またはLambda関数が最初に呼び出されたときにのみ実行されるコードのスナップショットされたメモリおよびディスク状態をキャッシュおよび再利用することで機能します。Lambdaは、初期化された実行環境のメモリおよびディスク状態のFirecracker microVMスナップショットを取得し、スナップショットを暗号化し、低レイテンシアクセス用にキャッシュします。関数バージョンを初めて呼び出すとき、および呼び出しがスケールアップされると、Lambdaはキャッシュされたスナップショットから新しい実行環境を再開するため、最初から初期化する必要がなくなり、起動レイテンシが向上します。Python関数の場合、初期化コードからの起動レイテンシは数秒かかる場合があります。これが発生する可能性のあるシナリオとしては、依存関係の読み込み(LangChain、Numpy、Pandas、DuckDBなど)やフレームワークの使用(FlaskやDjangoなど)があります。.NET関数の場合、.NETのJust-In-Time(JIT)コンパイルに数秒かかるため、ほとんどのユースケースでメリットが得られると予想されます。Lambda関数の初期化に関連するレイテンシの変動性は、顧客がAWS Lambdaで.NETを使用する際の長い間障壁となっていました。SnapStartを使用すると、メモリとディスクの状態のスナップショットをキャッシュすることにより、関数をすばやく再開できます。したがって、ほとんどの.NET関数は、Lambda SnapStartによってレイテンシの変動性が大幅に改善されます。