업데이트로 돌아가기
New releaseSep 12, 2026

firecracker v1.17.0

서버리스 컴퓨팅을 위한 안전하고 빠른 마이크로VM.

공유
Firecracker Logo Title

우리의 사명은 안전하고, 다중 테넌트이며, 최소 오버헤드의 컨테이너 및 함수 워크로드 실행을 가능하게 하는 것입니다.

Firecracker 헌장(Charter)에 대해 자세히 알아보려면 여기를 참조하세요.

Firecracker란 무엇인가?

Firecracker는 서버리스 운영 모델을 제공하는 안전한 다중 테넌트 컨테이너 및 함수 기반 서비스를 생성하고 관리하기 위해 특별히 설계된 오픈 소스 가상화 기술입니다. Firecracker는 microVM이라고 하는 경량 가상 머신에서 워크로드를 실행하며, 이는 하드웨어 가상화 기술이 제공하는 보안 및 격리 속성과 컨테이너의 속도 및 유연성을 결합합니다.

개요

Firecracker의 주요 구성 요소는 Linux 커널 가상 머신(KVM)을 사용하여 microVM을 생성하고 실행하는 가상 머신 모니터(VMM)입니다. Firecracker는 미니멀리스트 설계를 채택합니다. 각 microVM의 메모리 사용량과 공격 표면을 줄이기 위해 불필요한 장치와 게스트 대상 기능을 제외합니다. 이는 보안을 개선하고, 시작 시간을 단축하며, 하드웨어 활용도를 높입니다. Firecracker는 또한 컨테이너 런타임에 통합되었습니다. 예를 들어 Kata ContainersFlintlock이 있습니다.

Firecracker는 AWS LambdaAWS 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 내에서 프로덕션 워크로드를 실행 중이지만, 우리의 사명이 이끄는 여정은 아직 시작 단계입니다. 구축할 것이 훨씬 많으며 모든 기여를 환영합니다.

Firecracker에 기여하려면 시작 가이드의 개발 환경 설정 섹션과 Firecracker 기여 지침을 확인하세요.

릴리스

새로운 Firecracker 버전은 일반적으로 2~3개월마다 GitHub 저장소 릴리스 페이지를 통해 공개됩니다. 변경 기록은 변경 로그에 기록됩니다.

Firecracker 릴리스 정책은 여기에 자세히 설명되어 있습니다.

설계

Firecracker의 전반적인 아키텍처는 설계 문서에 설명되어 있습니다.

기능 및 역량

Firecracker는 시작되면 호스트에 API 엔드포인트를 노출하는 단일 마이크로 가상 머신 관리자 프로세스로 구성됩니다. API는 OpenAPI 형식으로 명시되어 있습니다. API 문서에서 자세히 알아보세요.

API 엔드포인트는 다음 용도로 사용할 수 있습니다:

  • microVM 구성:
    • vCPU 수 설정(기본값은 1).
    • 메모리 크기 설정(기본값은 128 MiB).
    • CPU 템플릿 구성.
  • microVM에 하나 이상의 네트워크 인터페이스 추가.
  • microVM에 하나 이상의 읽기-쓰기 또는 읽기 전용 디스크 추가(각각 파일 백업 블록 장치로 표시).
  • 게스트가 실행 중일 때 블록 장치 재스캔 트리거. 이를 통해 게스트 OS가 블록 장치의 백업 파일 크기 변경을 인식할 수 있습니다.
  • 게스트 부팅 전후에 블록 장치의 백업 파일 변경.
  • 대역폭, 초당 작업 수 또는 둘 다를 제한할 수 있는 virtio 장치용 속도 제한기 구성.
  • 로깅 및 메트릭 시스템 구성.
  • [BETA] 게스트 대상 메타데이터 서비스의 데이터 트리 구성. 이 리소스가 구성된 경우에만 서비스를 게스트에서 사용할 수 있습니다.
  • microVM에 vsock 소켓 추가.
  • microVM에 엔트로피 장치 추가.
  • microVM에 pmem 장치 추가.
  • 메모리 핫플러깅 구성 및 관리.
  • [개발자 미리보기] VM이 실행되는 동안 virtio PCI 장치의 핫플러그 및 핫언플러그.
  • 지정된 커널 이미지, 루트 파일 시스템 및 부팅 인수를 사용하여 microVM 시작.
  • [x86_64 전용] microVM 중지.

내장 기능:

  • 기본적으로 활성화된 수요 결함 페이징 및 CPU 과다 할당.
  • 향상된 보안을 위한 고급 스레드별 seccomp 필터.
  • 프로덕션 시나리오에서 Firecracker를 시작하기 위한 Jailer 프로세스; cgroup/네임스페이스 격리 장벽을 적용한 후 권한을 제거합니다.

테스트된 플랫폼

다음 조합을 모두 테스트합니다:

인스턴스호스트 OS 및 커널게스트 루트 파일 시스템게스트 커널
m5n.metal (Intel Cascade Lake)al2 linux_5.10ubuntu 24.04linux_5.10
m6i.metal (Intel Ice Lake)al2023 linux_6.1linux_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에 대한 커널 지원이 부족하기 때문입니다.

알려진 문제 및 제한 사항

  • aarch64의 pl031 RTC 장치는 인터럽트를 지원하지 않으므로 RTC 알람(예: hwclock)을 사용하는 게스트 프로그램은 작동하지 않습니다.

성능

Firecracker의 성능 특성은 사양 문서의 일부로 나열되어 있습니다. 모든 사양은 서버리스 운영 모델에서 컨테이너 및 함수 워크로드를 지원하겠다는 우리의 약속의 일부이며, 따라서 지속적 통합 테스트를 통해 강제됩니다.

보안 공개 정책

Firecracker의 보안은 우리의 최우선 과제입니다. 취약점을 발견했다고 의심되는 경우 보안 정책 문서에 설명된 대로 비공개로 연락해 주세요. 귀하의 공개를 즉시 우선 처리하겠습니다.

FAQ 및 연락처

자주 묻는 질문은 FAQ 문서에 수집되어 있습니다.

다음 방법으로 Firecracker 커뮤니티에 연락할 수 있습니다:

Firecracker 커뮤니티 내에서 소통할 때는 행동 강령을 준수해 주세요.

카테고리