
サーバーレスコンピューティングのための、セキュアで高速なマイクロVM。
私たちの使命は、セキュアでマルチテナント、最小オーバーヘッドのコンテナおよび関数ワークロードの実行を可能にすることです。
Firecracker Charter の詳細はこちらをご覧ください。
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を使い始めるには、最新のリリースバイナリをダウンロードするか、ソースからビルドしてください。
Docker(開発コンテナを使用)とbashがインストールされているUnix/Linuxシステムであれば、以下のようにFirecrackerをビルドできます:
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 microVMの全体的なセキュリティ(安全なマルチテナントコンピューティングの基準を満たす能力を含む)は、適切に構成されたLinuxホストオペレーティングシステムに依存します。この基準を満たすと考えられる構成は、本番ホストセットアップドキュメントに含まれています。
FirecrackerはすでにAWS内で本番ワークロードを実行していますが、ミッションに導かれた旅のまだDay 1です。構築すべきことはまだ多く、すべてのコントリビューションを歓迎します。
Firecrackerへのコントリビューションについては、はじめにガイドの開発環境セットアップセクションと、Firecrackerのコントリビューションガイドラインをご確認ください。
新しいFirecrackerバージョンは、GitHubリポジトリのリリースページから、通常2〜3ヶ月ごとにリリースされます。変更履歴はチェンジログに記録されています。
Firecrackerのリリースポリシーはこちらに詳しく記載されています。
Firecrackerの全体的なアーキテクチャは設計ドキュメントに記載されています。
Firecrackerは単一のマイクロ仮想マシンモニタープロセスで構成され、起動するとホストにAPIエンドポイントを公開します。APIはOpenAPI形式で仕様化されています。APIドキュメントで詳細をご覧ください。
APIエンドポイントは以下の用途に使用できます:
[BETA] ゲスト向けメタデータサービスのデータツリーの構成。このリソースが構成されている場合のみ、サービスはゲストに利用可能になります。[Developer Preview] VM実行中のvirtio PCIデバイスのホットプラグおよびホットアンプラグ。組み込み機能:
以下のすべての組み合わせをテストしています:
*: AWS EC2 第8世代 Intel (*8i) インスタンスは、6.1または6.18ホストカーネルを使用する場合にのみサポートしています。これは、5.10でのGranite Rapids CPUのカーネルサポートが不十分なためです。
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) | |||
| m9g.metal-48xl (Graviton 5) |