codingstairs
노트에듀라이프연락
⌕검색⌘K
koen

Navigation

  • Intro
  • Blog
  • Life

연락하기

로그인 없이도 보낼 수 있어요. 답변이 필요하면 이메일을 함께 적어 주세요.

  • 익명 폼으로 의견 남기기 →
  • ✉ warragon112@gmail.com
  • 카카오톡 오픈채팅 ↗

© 2026 codingstairs

  • 노트
  • 에듀
  • 검색
  • 라이프
  • 연락
  • 약관
  • RSS
  • GitHub
노트›cloud

Fly.io — Firecracker 위의 글로벌 PaaS

2026-04-28 게시· 2026-05-18 갱신·0회 조회

Fly.io — Firecracker 위의 글로벌 PaaS

Fly.io 는 컨테이너를 글로벌 엣지에 빠르게 띄우는 PaaS 입니다. 내부에서 Firecracker microVM 을 써서 컨테이너 이미지를 가벼운 가상 머신으로 변환해 띄웁니다.

1. Fly.io 에 대한 이야기

Fly.io 는 Kurt Mackey · Thomas Ptacek · Jerome Petazzoni 가 2017 년 설립한 회사·플랫폼입니다.

시기 사건
2017 회사 설립.
2018 ~ 2020 초기 엣지 라우팅 서비스.
2020 ~ Firecracker 기반 컨테이너 호스팅 (현재 모델).
2022 ~ Fly Machines API.

핵심 가치 제안:

  • 사용자 가까운 리전에서 앱이 응답 (anycast + 다중 리전).
  • Dockerfile · fly launch 로 빠른 배포.
  • 빠른 콜드 스타트 (Firecracker microVM).

2. Firecracker

Firecracker 는 AWS 가 2018 년 오픈소스로 공개한 microVM 모니터입니다. AWS Lambda · Fargate 의 기반으로 알려져 있습니다. KVM 위에 매우 작은 가상 머신을 매우 빠르게 (밀리초 단위) 부팅합니다.

Fly.io 는 Docker 이미지를 받아 Firecracker microVM 으로 변환해 실행합니다. 컨테이너의 격리·이식성과 가상 머신의 보안 경계를 결합하는 모델입니다.

항목 컨테이너 Firecracker
격리 커널 공유 별도 커널 (게스트)
부팅 매우 빠름 매우 빠름 (수십 ms)
보안 표면 커널 공유의 표면 더 좁음

장점은 멀티 테넌트 환경에서 강한 격리. 한계는 게스트 커널이 별도이므로 일부 호스트 기능에 직접 접근이 어렵다는 점.

3. fly launch · deploy

brew install flyctl              # Mac/Linux
fly auth signup
fly launch                       # 프로젝트 디렉터리에서

# Windows
iwr https://fly.io/install.ps1 -useb | iex

fly launch 가 인식하는 정보:

  • 빌드 종류 (Dockerfile · 빌드팩 · 자동 추론).
  • 앱 이름 (전역 유일).
  • 첫 리전 (사용자 가까운 곳).
  • Postgres · Redis 등 부속 서비스.

fly deploy — 빌드 + 푸시 + 롤링 배포. 헬스체크 통과 후 트래픽이 옮겨갑니다.

4. fly.toml

app = "myapp"
primary_region = "nrt"

[build]
  dockerfile = "Dockerfile"

[http_service]
  internal_port = 8080
  force_https = true
  auto_stop_machines = true
  auto_start_machines = true
  min_machines_running = 0

[[vm]]
  cpu_kind = "shared"
  cpus = 1
  memory_mb = 512

auto_stop_machines + auto_start_machines 가 결합되면 트래픽이 없을 때 인스턴스가 일시 정지 됐다가 들어오는 요청으로 깨어납니다 (콜드 스타트). 비용 절감 모델.

5. fly machine

fly m list
fly m run image-ref --region nrt --memory 1024
fly m stop <id>
fly m destroy <id>

큐 기반 작업 스케줄링·일시적 GPU 머신 같은 자리에 활용됩니다.

6. 글로벌 anycast

Fly.io 는 30+ 리전을 운영합니다. 한국 가까운 리전: nrt (도쿄) · hkg (홍콩) · sin (싱가포르). primary_region 은 stateful 서비스의 자리, 다중 리전 배포는 같은 앱을 여러 리전에 복제합니다.

같은 IPv4 · IPv6 주소가 여러 리전에서 anycast 로 광고됩니다. 사용자 라우터가 BGP 거리에 따라 가장 가까운 곳으로 보냅니다. 결과는 DNS 변경 없이 글로벌 분산. 같은 조직의 앱들끼리는 Fly 사설 네트워크 (IPv6 매시) 로 직접 통신합니다.

7. 가격 모델

  • 컴퓨트 — VM 크기 · 시간 단위. 정지 (stop) 상태에는 컴퓨트 요금 없음.
  • 스토리지 — 영구 볼륨 SSD. GB · 월 단위. 한 볼륨은 한 머신에 부착.
  • 네트워크 — Egress 트래픽 청구. 일정량 무료 후 GB 단위.

무료 티어는 시기별 변동. 2024 년 이후 모델 변경 (Pay As You Go + 작은 무료 크레딧) 보고. 가격은 공식 페이지로 확인하는 편이 안전합니다.

8. 데이터 통합

Fly Postgres — Fly 가 관리하는 Postgres 모델. Fly 가 모든 인프라를 띄우지만 운영 책임은 사용자가 일정 부분 집니다 (매니지드 RDS 만큼 자동화는 아니라는 보고). 근래에는 외부 매니지드 Postgres (Neon · Supabase · CrunchyBridge) 와의 결합이 자주 권장됩니다.

Upstash · Redis — fly redis create 로 Upstash Redis 인스턴스를 같은 리전에 생성. 매니지드 Redis 의 표면.

6PN 사설 네트워크 — IPv6 기반 사설 망. 같은 조직 앱들이 <app>.internal 호스트네임으로 서로 호출. DB 같은 backend 자원은 공개 IP 없이 6PN 으로만 접근 가능하게 운영.

9. 다른 PaaS 비교

플랫폼 모델 강점 한계
Heroku PaaS 오랜 표준 · add-ons 무료 티어 폐지 (2022)
Railway PaaS · 깃 연동 UI 친화 · 빠른 시작 큰 트래픽 경험 적음
Render PaaS · 매니지드 정적·동적 모두 일부 리전 한정
Vercel 정적·서버리스 Next.js · 글로벌 엣지 longrunning 백엔드 부적합
DO App Platform PaaS DO 통합 글로벌 분산 약함
Fly.io microVM PaaS Firecracker · anycast 매니지드 책임 분담
Hetzner Cloud IaaS 매우 저렴 PaaS 아님
자체 VPS IaaS 비용 통제 · 자유도 운영 부담 전부

10. 자주 쓰는 모양

  • 다중 리전 — fly scale count 3 --region nrt --region fra --region iad.
  • 비공개 백엔드 — http_service 만 공개, DB · 워커는 6PN 으로만.
  • 빌드 캐시 — fly deploy --remote-only 로 Fly 빌드 서버에서.
  • 비밀 관리 — fly secrets set KEY=value. 환경 변수로 주입.

11. 자주 걸리는 자리

콜드 스타트 — auto_stop_machines = true 로 비용을 줄이면 첫 요청은 깨어남 시간 (수백 ms ~ 몇 초).

볼륨의 단일 부착 — 한 볼륨은 한 머신에만 부착. 다중 인스턴스 공유는 외부 객체 저장소 · DB 로.

Fly Postgres 의 운영 책임 — 일부 운영 (점진 업그레이드 · 복제) 은 사용자 책임. 외부 매니지드 권장이 늘었습니다.

글로벌 분산의 일관성 — 데이터가 한 리전에만 있으면 멀리 있는 리전 인스턴스는 DB 호출에 지연. read replica · 캐시 검토.

빌드 환경 차이 — 로컬 도커와 Fly 빌드 서버 결과가 다른 경우 보고. 캐시 · 아키텍처 가정 점검.

하고픈 말

Fly.io 의 매력은 anycast + Firecracker 의 조합으로 글로벌 지연을 손쉽게 줄이는 점입니다. 다만 매니지드 자동화는 Heroku · Render 보다 약하고, 영구 볼륨의 단일 부착이 stateful 분산 운영을 어렵게 만듭니다. 작은 글로벌 앱에 자연스러운 자리이고, 큰 운영은 ECS · 자체 k8s 가 더 적합할 수 있습니다.

Next

  • iam
  • s3

Fly.io 문서 · fly.toml 레퍼런스 · Fly Machines · Firecracker · Fly Postgres · Upstash · Twelve-Factor · Heroku · Render · Railway 를 참고합니다.

cloud 카테고리의 다른 글

카테고리 전체 보기 →
  • title 템플릿 단일 소스 — 자식 페이지가 박지 않게 한다
  • GitHub Pages — 저장소를 정적 사이트로
  • Replit — 브라우저 기반 개발·배포 통합 플랫폼
  • HTTP API Mocking — WireMock · MockServer · Prism · MSW
  • Firebase Local Emulator Suite — Firebase 한 묶음을 노트북에
  • Supabase Self-Hosted — Postgres 한 통에 BaaS 를 담는 방법