Fly.io 아키텍처
Fly.io 플랫폼이 어떻게 구성되어 동작하는지, 즉 컴퓨팅(Firecracker microVM)부터 네트워킹(BGP Anycast, Fly Proxy, Backhaul)까지의 핵심 구조를 설명하는 문서입니다.
출처: 문서
본문
컴퓨팅 (Compute)
애플리케이션 코드는 Firecracker microVM에서 실행됩니다. 이들은 강력한 하드웨어 가상화를 기반으로 한 경량, 보안 가상 머신이에요. 여러분의 워크로드는 인프라의 어디에서 실행되든 안전하게 격리됩니다.
microVM은 강력한 하드웨어 가상화 기반 보안과 워크로드 격리를 제공하므로, 서로 다른 고객의 애플리케이션을 공유 하드웨어에서 안전하게 실행할 수 있습니다.
우리는 하드웨어 리소스를 한 번에 하나의 microVM에만 전용으로 할당하기 위해 최선을 다합니다. 예를 들어 CPU 코어는 항상 하나의 microVM만을 위해 일해야 하므로, 앱이 steal(도용)과 경쟁하지 않아도 됩니다.
가상화된 애플리케이션은 832개의 물리 CPU 코어와 32256GB RAM을 가진 전용 물리 서버에서 실행됩니다.
Fly.io 네트워킹
BGP Anycast
우리는 모든 데이터센터에서 IP 주소 범위(IPv4와 IPv6 모두)의 트래픽을 브로드캐스트하고 수락합니다. 그 IP 중 하나에서 연결을 받으면 활성 고객 애플리케이션에 매칭한 뒤, TCP 연결을 가장 가까운 사용 가능한 microVM으로 프록시합니다.
Fly Proxy
인프라의 모든 서버는 fly-proxy라는 Rust 기반 프록시를 실행합니다. 이 프록시는 클라이언트 연결을 수락하고, 고객 애플리케이션에 매칭하며, 핸들러(예: TLS 종료)와 서버 간 백홀을 적용하는 역할을 담당합니다. 자세한 내용은 Fly Proxy를 참조하세요.
백홀 (Backhaul)
달라스에 사용자가 있고 시카고에 사용 가능한 microVM이 있다면, 우리는 달라스에서 트래픽을 수락하고 TLS를 종료한 다음(해당 핸들러를 비활성화하지 않았다면), 데이터센터 사이의 WireGuard 터널로 microVM에 연결합니다. WireGuard는 거의 모든 종류의 네트워크 연결을 아주 적은 추가 레이턴시로 전달할 수 있게 해 줍니다.