
サーバーレスコンピューティングのための、セキュアで高速なマイクロVM。
私たちの使命は、コンテナおよび関数ワークロードの安全でマルチテナントな、最小限のオーバーヘッドでの実行を可能にすることです。
Firecracker 憲章の詳細はこちらをご覧ください。
Firecracker は、サーバーレスの運用モデルを提供する、安全でマルチテナントなコンテナおよび関数ベースのサービスの作成と管理のために専用に設計されたオープンソースの仮想化技術です。Firecracker は、マイクロ VM と呼ばれる軽量な仮想マシンでワークロードを実行します。マイクロ VM は、ハードウェア仮想化技術が提供するセキュリティと分離の特性を、コンテナのスピードと柔軟性と組み合わせたものです。
Firecracker の主要コンポーネントは、Linux Kernel Virtual Machine(KVM)を使用してマイクロ VM を作成および実行する仮想マシンモニタ(VMM)です。Firecracker は、KVM の代わりに AWS Nitro System によって分離されたNitro Sandboxとしてゲストを実行することもできます。Firecracker はミニマリストな設計になっています。各マイクロ VM のメモリフットプリントと攻撃対象領域を削減するため、不要なデバイスやゲスト向けの機能を排除しています。これにより、セキュリティが向上し、起動時間が短縮され、ハードウェアの利用率が高まります。Firecracker は、例えば Kata Containers や Flintlock など、コンテナランタイムにも統合されています。
Firecracker は、AWS Lambda や AWS Fargate のようなサービスのスピードと効率を加速するために Amazon Web Services で開発されました。Firecracker は Apache version 2.0 の下でオープンソース化されています。
Firecracker の詳細については、firecracker-microvm.io をご覧ください。
Firecracker を使い始めるには、最新のリリースバイナリをダウンロードするか、ソースからビルドしてください。
Firecracker は、Docker が実行されており(私たちは開発コンテナを使用しています)、bash がインストールされている任意の Unix/Linux システム上で、次のようにビルドできます:
git clone https://github.com/firecracker-microvm/firecracker
cd firecracker
tools/devtool build
toolchain="$(uname -m)-unknown-linux-musl"
Firecracker バイナリは
build/cargo_target/${toolchain}/debug/firecracker に配置されます。ビルド、テスト、および Firecracker の実行に関する詳細については、
クイックスタートガイドを参照してください。
安全なマルチテナントコンピューティングの基準を満たす能力を含む、Firecracker microVM の全体的なセキュリティは、適切に設定された Linux ホストオペレーティングシステムに依存します。この基準を満たすと私たちが考える構成は、 本番ホストセットアップドキュメントに含まれています。
Firecracker はすでに AWS 内で本番ワークロードを実行していますが、私たちのミッションに導かれた旅はまだ Day 1 です。構築すべきことはまだ多くあり、あらゆるコントリビューションを歓迎します。
Firecracker にコントリビュートするには、 はじめにガイドの開発セットアップセクションを確認し、次に Firecracker の コントリビューションガイドラインを参照してください。
新しい Firecracker バージョンは、GitHub リポジトリの releasesページを通じて、通常 2〜3 か月ごとにリリースされます。変更履歴は私たちの changelogに記録されています。
Firecracker のリリースポリシーはこちらに詳述されています。
Firecracker の全体的なアーキテクチャは 設計ドキュメントに記載されています。
Firecracker は、起動後にホストへ API エンドポイントを公開する単一のマイクロ仮想マシンマネージャプロセスで構成されています。API は OpenAPI 形式で仕様が定義されています。詳細については API ドキュメントを参照してください。
API エンドポイントは以下の用途に使用できます:
[BETA] ゲスト向けメタデータサービスのデータツリーを構成する。このサービスは、このリソースが構成されている場合にのみゲストが利用できます。[Developer Preview] VM の実行中に virtio PCI デバイスをホットプラグおよびホットアンプラグする。組み込みのケイパビリティ:
私たちは以下のすべての組み合わせをテストしています:
| インスタンス | ホスト OS とカーネル | ゲスト rootfs | ゲストカーネル |
|---|---|---|---|
| m5n.metal (Intel Cascade Lake) | al2 linux_5.10 | ubuntu 24.04 | linux_5.10 |
| m6i.metal (Intel Ice Lake) | al2023 linux_6.1 | linux_6.1 | |
| al2023 linux_6.18 | |||
| m7i.metal-24xl (Intel Sapphire Rapids) | |||
| m7i.metal-48xl (Intel Sapphire Rapids) | |||
| m8i.metal-48xl (Intel Granite Rapids)* | |||
| m8i.metal-96xl (Intel Granite Rapids)* | |||
| m6a.metal (AMD Milan) | |||
| m7a.metal-48xl (AMD Genoa) | |||
| m6g.metal (Graviton 2) | |||
| m7g.metal (Graviton 3) | |||
| m8g.metal-24xl (Graviton 4) | |||
| m8g.metal-48xl (Graviton 4) | |||
| m9g.metal-48xl (Graviton 5) |
*: 6.1 または 6.18 のホストカーネルを使用する AWS EC2 第8世代 Intel (*8i) インスタンスのみをサポートしています。これは、5.10 における Granite Rapids CPU のカーネルサポートが不十分であるためです。
pl031 RTC デバイスは割り込みをサポートしていないため、RTC アラームを使用するゲストプログラム (例: hwclock) は動作しません。Firecracker のパフォーマンス特性は 仕様ドキュメントの一部として記載されています。すべての仕様は、 サーバーレスの運用モデルにおいてコンテナおよび関数ワークロードをサポートするという 私たちのコミットメントの一部であり、したがって継続的インテグレーションテストによって 強制されています。