Repolode
firecracker-microvm

firecracker-microvm/firecracker

セキュアなマルチテナントのサーバーレスやコンテナワークロード向けに、軽量なmicroVMを実行するミニマルなKVMベースの仮想マシンモニター。

スター
37,592
フォーク
2,703
未解決の Issue
133
最終コミット
22 時間前

これは何?

Firecrackerは、microVMと呼ばれる軽量な仮想マシンでコンテナや関数のワークロードを実行するための仮想化技術です。中核となるのは、Linux KVMを使ってmicroVMを作成・実行する仮想マシンモニターです。不要なデバイスやゲスト向け機能を意図的に省いた設計により、各microVMのメモリ使用量と攻撃対象領域を削減し、起動時間を短縮します。

Firecrackerはプロセスごとに1つのAPIエンドポイントを公開し、OpenAPI形式で定義されています。このAPIを通じて、vCPU、メモリ、CPUテンプレート、ネットワークインターフェース、レートリミッター付きブロックデバイス、vsock、エントロピー、pmem、メモリホットプラグを設定できます。また、Kata ContainersやFlintlockなどのコンテナランタイムのバックエンドとしても使われています。AWSでLambdaやFargateなどのサービス向けに開発され、Apache 2.0ライセンスで公開されています。

安全に実行するには、Linuxホストが適切に設定されている必要があります。プロジェクトでは、本番環境向けホスト設定ガイドに加え、権限を放棄する前にcgroupとnamespaceによる分離を適用するjailerプロセスを提供しています。

主な機能

  • 01Linux KVMを使い、最小限のデバイス構成でmicroVM上にワークロードを実行します。
  • 02API経由でvCPU、メモリ、CPUテンプレート、ブロックデバイスやネットワークデバイスを設定できます。
  • 03プロセスごとのseccompフィルターと、cgroupおよびnamespaceによる分離を行うjailerを備えています。
  • 04virtioデバイスのレートリミッター、vsock、エントロピー、pmem、メモリホットプラグをサポートします。
  • 05Kata ContainersやFlintlockなどのコンテナランタイムと連携します。

ユースケース

  • マルチテナントホスト上で、信頼できない関数やコンテナのワークロードを分離されたmicroVMで実行する。
  • microVMを素早く起動する必要があるサーバーレスプラットフォームのバックエンドを構築する。
  • Kata Containersなどのコンテナランタイムの下層にあるVMレイヤーとしてFirecrackerを利用する。
  • KVMに対応したLinuxホスト上で、VMベースの分離をテストまたは試作する。

クイックスタート

  1. 1

    リポジトリをクローンする

    git clone https://github.com/firecracker-microvm/firecracker
  2. 2

    プロジェクトディレクトリに移動する

    cd firecracker
  3. 3

    開発コンテナでFirecrackerをビルドする(Dockerとbashが必要)

    tools/devtool build

使う前に知っておきたいこと

  • セキュアなマルチテナント利用には、KVMをサポートするLinuxホストと、適切に設定されたホストOSが必要です。
  • aarch64のpl031 RTCデバイスは割り込みをサポートしていないため、hwclockなどのRTCアラームは動作しません。

トピック

よくある質問

firecracker とは?
セキュアなマルチテナントのサーバーレスやコンテナワークロード向けに、軽量なmicroVMを実行するミニマルなKVMベースの仮想マシンモニター。 Firecrackerは、microVMと呼ばれる軽量な仮想マシンでコンテナや関数のワークロードを実行するための仮想化技術です。中核となるのは、Linux KVMを使ってmicroVMを作成・実行する仮想マシンモニターです。不要なデバイスやゲスト向け機能を意図的に省いた設計により、各microVMのメモリ使用量と攻撃対象領域を削減し、起動時間を短縮します。
firecracker は無料で使えますか?ライセンスは?
firecracker は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
firecracker は今もメンテナンスされていますか?
活発にメンテナンス中。firecracker の最終コミットは 2026年10月24日 です。
firecracker は何に使えますか?
マルチテナントホスト上で、信頼できない関数やコンテナのワークロードを分離されたmicroVMで実行する。 microVMを素早く起動する必要があるサーバーレスプラットフォームのバックエンドを構築する。 Kata Containersなどのコンテナランタイムの下層にあるVMレイヤーとしてFirecrackerを利用する。 KVMに対応したLinuxホスト上で、VMベースの分離をテストまたは試作する。
firecracker のインストール方法は?
リポジトリをクローンする: git clone https://github.com/firecracker-microvm/firecracker プロジェクトディレクトリに移動する: cd firecracker 開発コンテナでFirecrackerをビルドする(Dockerとbashが必要): tools/devtool build
firecracker はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/firecracker-microvm/firecracker

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト