Firecrackerは、AWS Lambdaを強化するために元はAWSで開発されたものである。これにより、サーバレスコンピューティング用の安全なmicroVMの作成と管理ができる。最近バージョン1.0に至った。
Firecrackerは、microVMと呼ばれる軽量の仮想マシンで処理を実行します。これは、ハードウェア仮想化テクノロジーによって提供されるセキュリティと分離のプロパティ、そしてコンテナーのスピードと柔軟性とを組み合わせたものです。
Firecrackerの中心には、Linuxのカーネルベースの仮想マシン(KVM)を前提とした仮想マシンモニター(VMM)である。FirecrackerをQEMUや他のハイパーバイザーなどの仮想化レイヤーと異なる点は、分離されたVM内の軽量でサーバレスの処理に重点を置いていることである。一方、QEMUは、幅広いユースケースに対応する汎用仮想化レイヤーである。
AWSがFirecrackerの取り組みを開始したとき、顧客ごとのEC2インスタンスを介してAWS Lambda機能をサポートする方法を改善する方法を模索していた。EC2はセキュリティ、柔軟性、分離を実現したが、AWS Lambdaの成長には、メモリオーバーヘッドの削減、起動時間の改善、コンテナーとの統合の向上が必要であった。
現在、Firecracker VMは125ミリ秒未満で完全に起動できる。一方でmicroVMの完全な作成は7ミリ秒未満である。各microVMのメモリフットプリントは5MiB未満である。つまり、microVMの多くを1台のサーバにパックできる。
開発者によると、Firecrackerの他のメリットは、強固なセキュリティである。これは、サポートするデバイスと機能を減らし、各VMの攻撃対象領域を小さくするというミニマリストのアプローチの直接的な結果である。実際、エミュレートされたデバイスは、virtio-net、virtio-block、virtio-vsock、シリアルコンソール、そしてmicroVMの停止にのみ使用される最小限のキーボードコントローラーの5つだけである。
FirecrackerはRustで記述されており、REST制御APIも提供する。このAPIにより、インスタンスの起動、VM構成の取得または設定、スナップショットの管理などができる。さらに、APIには、ホストとゲストの間で構成データを共有できるようにするメタデータサービスが含まれている。
Firecrackerは、appfleet、Fly.io、Koyebなどのいくつかのコンテナホスティングプラットフォームで使用されている。そのmicroVMは多数のコンテナランタイムを使って管理できる。firecracker-containerd、Weave Kubes、Kata Containersによるcontainerdなどである。ゆえに、Kubernetesと統合できる。