[SVS320] AWS ユースカジノ チャット SnapStart: Fast cold starts for your Java functions[NEW LAUNCH!]
投稿日: 2022/12/09

関数コードを変更することなく、Javaベースの関数のコールドスタートを最大10倍速くするAWS ユースカジノ チャット機能の紹介セッションでした。

ユースカジノ チャットでは、関数を初期化するときに以下の項目の処理が必要です。
- Class loading
- Runtime dependency injection(依存性注入)
- Just-in-time compliation

上記のユースカジノ チャット時に発生する問題を解決するために、追加のライブラリやフレームワークを使用したり、メモリを増設する方法などを使用しています。

AWS ユースカジノ チャット SnapStartを使用すると、レイテンシーの影響を受けやすい Java アプリケーションに対して、追加コストなしで最小限のコード変更またはまったく変更なしで、最大10倍高速な機能を開始できます。

ユースカジノ チャットを使用すると、関数バージョンを公開するときに関数の初期化が事前に行われます。
ユースカジノ チャットは、初期化された実行環境のメモリとディスクの状態についてFirecracker microVMスナップショットを作成して暗号化し、短い待ち時間アクセスのためにキャッシュします。
アプリケーションが起動して拡張され、トラフィックを処理するとき、ユースカジノ チャットは最初から初期化するのではなく、キャッシュされたスナップショットから新しい実行環境を再開して起動パフォーマンスを向上させます。

ユースカジノ チャット SnapStart機能が回復力を持たせるために考慮すべき事項は次のとおりです。
- ネットワーク接続:コードがユースカジノ チャット段階でネットワークサービスへの長期接続を作成し、呼び出し段階でそれを使用する場合は、必要に応じて接続を再確立できることを確認する必要があります。
- Ephemeral data:コードがユースカジノ チャット段階で参照情報をダウンロードまたは計算する場合は、クイックチェックを実行してキャッシュ期間中に古くないことを確認する必要があります。
- Uniqueness:ユースカジノ チャットを使用するときに一意性を維持するために、初期化中に作成されたすべての一意のコンテンツは、初期化後に作成する必要があります。


AWS ユースカジノ チャット SnapStart アクティベーションは、ユースカジノ チャット 関数の [一般設定] タブで設定可能で、コードの変更も必要です。

ユースカジノ チャット SnapStartを使用すると、どのくらいの遅延時間が減少するかを上記のようにテスト環境を設定し、毎秒100個の要求を10分間送信する方法でテストしました。

実際、ユースカジノ チャット SnapStartを使用した場合、起動が10倍程度速くなったそうです。
Javaで開発されたユースカジノ チャット関数やアプリケーションをお客様が利用されているのであれば、導入を検討する価値のある機能のように思いますし、対応言語が限定されることなく継続的に追加されていけばより便利な機能になっていくのではないでしょうか。