Firecracker
Firecracker 기반 경량 가상화 ⚡
1️⃣ Firecracker란? 🔥
📌 Firecracker는 AWS에서 개발한 경량 가상화(VMM, Virtual Machine Monitor) 솔루션으로,
서버리스 및 컨테이너 워크로드를 위한 초경량 가상 머신(MicroVM) 실행을 지원합니다.
🔹 Firecracker의 주요 특징
특징 | 설명 |
---|---|
경량화 | 일반적인 VM보다 가벼운 MicroVM을 실행 |
빠른 부팅 | 125ms 이하의 부팅 속도 |
보안 강화 | KVM 기반으로 프로세스 격리 지원 |
리소스 효율성 | 최소한의 메모리와 CPU 리소스 사용 |
📌 Firecracker 개념 아키텍처
(출처: AWS)
Firecracker는 AWS Lambda와 AWS Fargate에서 실제 사용되는 기술입니다!
2️⃣ Docker와 Firecracker 비교 🆚
🔹 Firecracker vs. Docker 차이점
항목 | Firecracker | Docker (containerd 기반) |
---|---|---|
격리 수준 | KVM 기반 경량 VM | 네임스페이스 & cgroups |
부팅 속도 | 125ms 이하 | 즉시 실행 가능 |
리소스 사용량 | 더 적음 (경량 VM) | 더 많음 (컨테이너 런타임) |
보안성 | 하이퍼바이저 격리로 강화됨 | 프로세스 기반 격리 |
유즈 케이스 | 서버리스, 멀티테넌트 환경 | 일반적인 컨테이너 운영 |
📌 Firecracker는 Docker와 유사하지만 더 높은 보안성을 제공하는 경량 VM 기술입니다.
3️⃣ Firecracker 설치 및 사용법 💻
1. Firecracker 바이너리 다운로드
📌 Firecracker 공식 바이너리 다운로드
curl -LOJ https://github.com/firecracker-microvm/firecracker/releases/latest/download/firecracker-x86_64
chmod +x firecracker-x86_64
📌 firecracker 실행 확인
./firecracker-x86_64 --version
2. Firecracker 네트워크 설정
📌 TAP 네트워크 인터페이스 생성
ip tuntap add tap0 mode tap
ip link set tap0 up
📌 브리지 네트워크 설정
brctl addbr br0
brctl addif br0 tap0
ip link set br0 up
4️⃣ Firecracker로 컨테이너 실행하기 🚀
1. MicroVM 부팅을 위한 설정 파일 생성
📌 MicroVM 설정 파일(vm-config.json
) 생성
{
"boot-source": {
"kernel_image_path": "./vmlinux",
"boot_args": "console=ttyS0 reboot=k panic=1 pci=off"
},
"drives": [
{
"drive_id": "rootfs",
"path_on_host": "./rootfs.ext4",
"is_root_device": true,
"is_read_only": false
}
],
"network-interfaces": [
{
"iface_id": "eth0",
"guest_mac": "AA:FC:00:00:01:01",
"host_dev_name": "tap0"
}
],
"machine-config": {
"vcpu_count": 2,
"mem_size_mib": 512
}
}
2. Firecracker MicroVM 실행
📌 Firecracker 실행 및 VM 시작
./firecracker-x86_64 --api-sock /tmp/firecracker.socket
📌 MicroVM 생성 요청 보내기
curl --unix-socket /tmp/firecracker.socket -i \
-X PUT "http://localhost/boot-source" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d "@vm-config.json"
📌 MicroVM 상태 확인
curl --unix-socket /tmp/firecracker.socket -i \
-X GET "http://localhost/machine-config"
결론 🎯
✅ Firecracker는 Docker보다 더 가벼운 경량 VM을 제공
✅ KVM 기반으로 높은 보안성을 유지하면서 빠른 부팅 속도를 가짐
✅ AWS Lambda 및 Fargate에서 사용되는 기술로 서버리스 환경에 최적화
✅ Docker와 비교하여 격리 수준이 더 높아 보안성이 강화됨
📌 추가 학습 리소스