
サーバーレスコンピューティングのための、セキュアで高速なマイクロVM。
私たちのミッションは、コンテナおよび関数ワークロードの、セキュアでマルチテナントかつ最小限のオーバーヘッドでの実行を可能にすることです。
Firecracker 憲章の詳細はこちらをご覧ください。
Firecracker は、サーバーレスの運用モデルを提供する、セキュアでマルチテナントなコンテナおよび関数ベースのサービスを作成・管理するために特化して作られたオープンソースの仮想化技術です。Firecracker は、microVM と呼ばれる軽量な仮想マシン内でワークロードを実行します。microVM は、ハードウェア仮想化技術が提供するセキュリティと分離の特性と、コンテナの速度と柔軟性を兼ね備えています。
Firecracker の主要コンポーネントは、Linux Kernel Virtual Machine (KVM) を使用して microVM を作成および実行する仮想マシンモニター (VMM) です。Firecracker はミニマリストな設計を採用しており、各 microVM のメモリフットプリントと攻撃面を削減するために、不要なデバイスやゲスト向け機能を排除しています。これにより、セキュリティが向上し、起動時間が短縮され、ハードウェア利用率が向上します。Firecracker はコンテナランタイムにも統合されています。例えば、Kata Containers や Flintlock などです。
Firecracker は、AWS Lambda や AWS Fargate のようなサービスの速度と効率を向上させるために、Amazon Web Services で開発されました。Firecracker は Apache バージョン 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 バージョンは、通常 2〜3 ヶ月ごとに GitHub リポジトリのリリースページからリリースされます。変更履歴はチェンジログに記録されています。
Firecracker のリリースポリシーの詳細はこちらに記載されています。
Firecracker の全体的なアーキテクチャは設計ドキュメントに記載されています。
Firecracker は、起動するとホストに API エンドポイントを公開する単一のマイクロ仮想マシンマネージャプロセスで構成されています。API は OpenAPI 形式で仕様化されています。詳細は API ドキュメント をご覧ください。
API エンドポイントは以下に使用できます:
[BETA] ゲスト向けメタデータサービスのデータツリーを構成する。このサービスは、このリソースが構成されている場合にのみゲストが利用できます。[Developer Preview] VM の実行中に virtio PCI デバイスをホットプラグおよびホットアンプラグする。組み込み機能:
以下のすべての組み合わせをテストしています:
*: AWS EC2 第 8 世代 Intel (*8i) インスタンスは、6.1 または 6.18 ホストカーネルを使用する場合にのみサポートしています。これは、Granite Rapids CPU の 5.10 におけるカーネルサポートが不十分なためです。
pl031 RTC デバイスは割り込みをサポートしていないため、RTC アラームを使用するゲストプログラム (例: hwclock) は動作しません。Firecracker のパフォーマンス特性は、仕様ドキュメント の一部として記載されています。すべての仕様は、サーバーレス運用モデルにおけるコンテナおよび関数ワークロードのサポートに対するコミットメントの一部であり、継続的インテグレーションテストを通じて検証されています。
Firecracker のセキュリティは最優先事項です。脆弱性を発見したと思われる場合は、セキュリティポリシードキュメント に記載されているように、プライベートにご連絡ください。開示内容を直ちに優先して対応します。
よくある質問は FAQ ドキュメント にまとめられています。
Firecracker コミュニティには次の方法で連絡できます:
Firecracker コミュニティ内でコミュニケーションする際は、行動規範 にご注意ください。
| インスタンス | ホスト 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) |