
서버리스 컴퓨팅을 위한 안전하고 빠른 마이크로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를 시작하려면 최신 릴리스 바이너리를 다운로드하거나 소스에서 빌드하세요.
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 빌드, 테스트 및 실행에 대한 자세한 내용은 빠른 시작 가이드를 참조하세요.
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 장치를 핫플러그 및 핫언플러그합니다.내장 기능:
다음의 모든 조합을 테스트합니다:
*: 저희는 6.1 또는 6.18 호스트 커널을 사용하는 AWS EC2 8세대 Intel(*8i) 인스턴스만 지원합니다. 5.10에서는 Granite Rapids CPU에 대한 커널 지원이 부족하기 때문입니다.
pl031 RTC 장치는 인터럽트를 지원하지 않으므로 RTC 알람(예: hwclock)을 사용하는 게스트 프로그램은 작동하지 않습니다.Firecracker의 성능 특성은 사양 문서의 일부로 나열되어 있습니다. 모든 사양은 서버리스 운영 모델에서 컨테이너 및 함수 워크로드를 지원하겠다는 우리의 약속의 일부이며, 따라서 지속적 통합 테스트를 통해 시행됩니다.
Firecracker의 보안은 우리의 최우선 과제입니다. 취약점을 발견했다고 의심되면 보안 정책 문서에 설명된 대로 비공개로 연락해 주세요. 귀하의 공개를 즉시 최우선으로 처리하겠습니다.
자주 묻는 질문은 FAQ 문서에 정리되어 있습니다.
다음 방법으로 Firecracker 커뮤니티에 연락할 수 있습니다:
Firecracker 커뮤니티에서 소통할 때는 행동 강령을 준수해 주세요.
| 인스턴스 | 호스트 OS 및 커널 | 게스트 루트 파일 시스템 | 게스트 커널 |
|---|
| 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) |