Upgrade to Pro — share decks privately, control downloads, hide ads and more …

SnapStartの未来についての期待と妄想

TomoyaIwata
February 15, 2023

 SnapStartの未来についての期待と妄想

2023/2/15に開催された「サーバーレスLT大会 in 肥後橋」の登壇資料です

TomoyaIwata

February 15, 2023
Tweet

More Decks by TomoyaIwata

Other Decks in Programming

Transcript

  1. 7 Lambdaの実⾏モデルについておさらい l Lambda実⾏環境の構築 l MicroVMの起動 ※実際には起動済みのMicroVMを利⽤するケースがほとんど l Inner sandboxの構築

    l S3からデプロイパッケージのダウンロード ※⾮コンテナイメージ形式の場合 l Initフェーズ l Extension init l Runtime init l Function init l Invokeフェーズ
  2. 8 Lambdaの実⾏モデルについておさらい l Lambda実⾏環境の構築 l MicroVMの起動 ※実際には起動済みのMicroVMを利⽤するケースがほとんど l Inner sandboxの構築

    l S3からデプロイパッケージのダウンロード ※⾮コンテナイメージ形式の場合 l Initフェーズ l Extension init l Runtime init l Function init l Invokeフェーズ ここまで終わった段階でMicroVMのスナップショットを 取得して利⽤するのがSnapStart
  3. 9 スナップショットからmicroVMを起動すると… l Lambda実⾏環境の構築 l MicroVMの起動 ※実際には起動済みのMicroVMを利⽤するケースがほとんど l Inner sandboxの構築

    l S3からデプロイパッケージのダウンロード ※⾮コンテナイメージ形式の場合 l Initフェーズ l Extension init l Runtime init l Function init l Restoreフェーズ l Invokeフェーズ この辺の処理が丸々スキップできるはず︕︕ スナップショットからmicroVMを起動
  4. 10 ランタイムフック l beforeCheckpoint l スナップショット作成前に実⾏されるフックポイント l 初期化コードの制限時間にカウントされる l 制限時間=Max(130s,

    設定されたタイムアウト時間) l afterRestore l Restoreフェーズの最後に実⾏されるフックポイント l 2秒以内に完了させる必要がある
  5. 13 制限事項② l Provisioned Concurrency l Arm64アーキテクチャ l EFS統合 l

    アクティブトレース(X-Ray)の有効化 l 512 MB以上のエフェメラルストレージ(/tmp) SnapStartは以下の機能と併⽤不可
  6. 21 SnapShot取得の流れ l vCPUの停⽌と状態のシリアライズ l まずはvCPUを停⽌し、スナップショット取得中にMicroVMの状態が変更されないよ うにする l 状態の保存 l

    KVMと通信するために使⽤している内部データ構造を全てシリアライズして保存 l 仮想デバイスのシリアライズ l MMIOデバイスをシリアライズして保存 l メモリの同期 l ゲストOSのダーティーページをメモリマップファイルにフラッシュ
  7. 22 SnapShotリストアの流れ l スナップショットのチェック l ファイルがFirecrackerのスナップショットとして妥当であるかのチェック l メモリの復元 l メモリマップファイルからゲストOSのメモリを復元

    l vCPUの再作成 l 保存されたMicroVMの状態を読み取り、必要な数のvCPUを再作成 l デバイスの状態を復元 l PIOデバイスは状態を持たないため再作成 l MMIOデバイスは再作成され、保存された状態を復元 l vCPUの再開
  8. 29 EC2モデルはもう使ってない︖︖ 最新の 「Security Overview of AWS Lambda 」 からはEC2モデルに関する記載が消えている

    ということは… 全⾯的にFirecrackerモデルへの移⾏が完了した︖ https://docs.aws.amazon.com/pdfs/whitepapers/latest/security-overview-aws-lambda/security-overview-aws-lambda.pdf
  9. 41