Cloudflare / serverless

4 개의 포스트

cloudflare

How we rebuilt Next.js with AI in one week (새 탭에서 열림)

Cloudflare의 한 엔지니어가 AI 모델을 활용해 단 일주일 만에 Next.js를 Vite 기반으로 재구현한 'vinext'를 공개했습니다. vinext는 Next.js의 복잡한 빌드 아키텍처와 타 플랫폼 배포 시 발생하는 파편화 문제를 해결하기 위해 등장했으며, 기존 Next.js 코드를 그대로 유지하면서도 최대 4배 빠른 빌드 속도와 57%의 번들 크기 감소를 달성했습니다. 이는 AI를 활용해 기존 프레임워크의 API 표면을 완전히 새롭게 구현함으로써 서버리스 환경에서의 배포 효율성을 극대화한 사례입니다. ### 기존 Next.js 배포 및 개발 환경의 문제점 * Next.js는 Turbopack이라는 독자적인 툴체인을 사용하기 때문에, Cloudflare나 AWS Lambda 같은 서버리스 환경에 배포하려면 빌드 결과물을 해당 플랫폼에 맞게 재가공하는 복잡한 과정이 필요합니다. * 기존의 해결책인 OpenNext는 Next.js의 빌드 결과물을 역공학(Reverse-engineering)하여 대응해왔으나, 프레임워크 버전 업데이트 시 구조가 변경되면 대응이 늦어지거나 기능이 깨지는 등 취약한 구조를 가집니다. * 로컬 개발 환경은 Node.js에서 실행되는 반면 실제 배포는 에지 런타임에서 이루어지는 불일치 문제로 인해, Durable Objects나 AI 바인딩 같은 플랫폼 전용 API를 개발 단계에서 테스트하기가 매우 어렵습니다. ### Vite 기반의 완전한 재구현, vinext * vinext는 Next.js의 출력물을 수정하는 방식이 아니라, Vite 위에서 Next.js의 API 표면(라우팅, SSR, RSC, Server Actions, 미들웨어 등)을 처음부터 다시 구현한 클린 구현체입니다. * 사용자는 기존의 `app/`, `pages/` 디렉토리와 `next.config.js`를 그대로 사용할 수 있으며, 스크립트에서 `next`를 `vinext`로 바꾸는 것만으로 즉시 교체가 가능한 'Drop-in replacement' 형태를 지향합니다. * Vite의 환경 API(Environment API)를 활용하여 특정 플랫폼에 종속되지 않는 빌드 결과물을 생성하며, 향후 Rust 기반 번들러인 Rolldown이 도입되면 더 높은 성능 향상이 기대됩니다. ### 성능 지표 및 Cloudflare 최적화 기능 * 33개의 라우트를 포함한 앱 기준 벤치마크 결과, Next.js 16 대비 빌드 시간은 약 4배 단축되었고 클라이언트 번들 크기(Gzip 기준)는 57% 감소하는 성과를 보였습니다. * `vinext deploy` 명령어를 통해 소스 코드에서 Cloudflare Workers로 즉시 배포가 가능하며, Cloudflare KV를 활용한 캐시 핸들러를 통해 ISR(Incremental Static Regeneration) 기능을 기본적으로 제공합니다. * 개발 단계부터 실제 배포 환경과 동일한 `workerd` 런타임에서 앱이 구동되므로, 플랫폼 전용 기능을 별도의 워크아라운드 없이 로컬에서 완벽하게 테스트할 수 있습니다. ### 생태계 협력 및 향후 전망 * vinext 코드의 약 95%는 순수 Vite 기반으로 작성되어 있어 특정 호스팅 업체에 종속되지 않으며, Vercel을 포함한 타 플랫폼으로의 이식도 매우 용이한 구조입니다. * 현재 이 프로젝트는 실험적인 단계(Experimental)로 대규모 트래픽에서의 검증이 더 필요하지만, 이미 1,700개 이상의 테스트를 통과하며 안정성을 확보해 나가고 있습니다. * Cloudflare는 타 호스팅 제공업체들과 협력하여 이 툴체인을 확장할 계획이며, 오픈 소스 커뮤니티의 참여를 통해 다양한 배포 타겟을 확보하고자 합니다. **결론:** vinext는 현대적인 빌드 도구와 AI의 결합이 프레임워크의 구조적 한계를 얼마나 빠르게 극복할 수 있는지 보여주는 사례입니다. 성능 최적화와 서버리스 배포 편의성을 동시에 잡고자 하는 개발자들에게 유망한 대안이 될 것으로 보입니다.

cloudflare

Introducing Moltworker: a self-hosted personal AI agent, minus the minis (새 탭에서 열림)

Cloudflare는 개인용 AI 에이전트인 Moltbot(현 OpenClaw)을 별도의 전용 하드웨어 없이 클라우드에서 구동할 수 있게 해주는 ‘Moltworker’를 공개했습니다. 이는 Cloudflare Workers의 향상된 Node.js 호환성과 샌드박스(Sandbox) 기술을 활용하여, 사용자가 Mac mini와 같은 물리적 장비를 직접 구매하고 관리해야 하는 번거로움을 해결합니다. 결과적으로 개발자는 Cloudflare의 글로벌 네트워크 위에서 안전하고 확장성 있는 개인 비서 시스템을 구축할 수 있습니다. **Cloudflare Workers의 진화와 Node.js 호환성** * 과거에는 외부 패키지를 실행하기 위해 API를 모킹(Mocking)하거나 memfs 같은 복잡한 라이브러리를 사용해야 했으나, 현재 Workers 런타임은 `node:fs` 등 주요 API를 네이티브로 지원합니다. * 내부 실험 결과, 가장 인기 있는 상위 1,000개 NPM 패키지 중 98.5%가 Workers 환경에서 수정 없이 작동할 정도로 호환성이 개선되었습니다. * 이러한 발전 덕분에 Playwright와 같은 복잡한 브라우저 자동화 프레임워크를 복잡한 설정 없이도 효율적으로 실행하고 유지보수할 수 있게 되었습니다. **Moltworker를 지탱하는 핵심 빌딩 블록** * **Sandboxes**: Cloudflare Containers 기술을 기반으로 하며, 격리된 환경에서 신뢰할 수 없는 코드를 안전하게 실행할 수 있는 SDK를 제공합니다. * **Browser Rendering**: 헤드리스 브라우저 인스턴스를 프로그래밍 방식으로 제어하여 AI 에이전트가 웹 사이트와 상호작용할 수 있도록 돕습니다. * **R2 Storage**: 에이전트의 영속적인 데이터 저장을 위해 객체 스토리지인 R2를 연동하여 상태를 유지합니다. * **AI Gateway**: Anthropic 등 다양한 AI 공급자와의 통신을 중계하며, 통합 빌링(Unified Billing)을 통해 개별 API 키 관리 없이도 서비스를 이용할 수 있게 합니다. **Moltworker의 아키텍처 및 보안 운영** * Moltworker는 진입점 역할을 하는 Worker가 API 라우터 및 프록시로 동작하며, 모든 접근은 Cloudflare Access를 통해 보안 인증을 거칩니다. * AI Gateway를 사용하면 환경 변수(`ANTHROPIC_BASE_URL`) 수정만으로 AI 모델을 연결할 수 있어 코드 변경이 불필요하며, 상세한 비용 분석과 로그 확인이 가능합니다. * 모델 오류가 발생할 경우를 대비한 폴백(Fallback) 설정이 가능하여, 특정 서비스 장애 시에도 에이전트의 안정성을 보장할 수 있습니다. 개인용 AI 에이전트를 운영하고 싶지만 로컬 서버의 소음, 전력 소비, 관리 부담이 걱정되는 사용자에게 Moltworker는 훌륭한 대안입니다. Cloudflare의 개발자 플랫폼을 활용하면 전용 하드웨어 없이도 강력한 성능과 높은 보안 수준을 갖춘 개인 맞춤형 AI 환경을 즉시 구축할 수 있습니다.

cloudflare

Building a serverless, post-quantum Matrix homeserver (새 탭에서 열림)

전통적인 Matrix 홈서버는 데이터베이스, 캐싱, 리버스 프록시 등 복잡한 인프라 관리 부담이 크지만, 이를 Cloudflare Workers 기반의 서버리스 아키텍처로 전환함으로써 운영 부담을 획기적으로 줄일 수 있습니다. 이 방식은 사용량에 비례해 비용이 발생하여 유휴 상태에서는 비용이 거의 들지 않으며, 전 세계 엣지 노드에서 실행되어 낮은 지연 시간을 보장합니다. 특히 양자 내성 암호(PQC)를 기본 TLS 계층에 적용하여 미래의 보안 위협에 선제적으로 대응할 수 있는 고도의 보안성을 갖춘 것이 특징입니다. **서버리스 아키텍처로의 전환** - 기존 Python 기반의 Synapse 홈서버 구성을 TypeScript와 Hono 프레임워크를 사용하는 Cloudflare Workers 환경으로 재설계했습니다. - 데이터 저장소의 경우, PostgreSQL은 D1으로, Redis 캐싱은 KV로, 파일 시스템은 R2(Object Storage)로 각각 대체하여 서버리스 환경에 최적화했습니다. - 강력한 일관성과 원자성이 필요한 Matrix 상태 결정(State Resolution) 및 실시간 조율 로직은 Cloudflare Durable Objects를 활용해 해결했습니다. **운영 및 비용의 효율성** - 서버 프로비저닝, TLS 인증서 갱신, 로드 밸런싱 등의 복잡한 작업이 `wrangler deploy`라는 단일 명령어로 단순화되었습니다. - 고정 비용이 발생하는 VPS 방식과 달리, 실제 요청이 있을 때만 비용을 지불하는 구조를 통해 개인용 서버 운영 비용을 0에 가깝게 낮출 수 있습니다. - 전 세계 300개 이상의 지역에 분포된 엣지에서 코드가 실행되므로, 사용자의 위치와 상관없이 지연 시간이 최소화됩니다. **양자 내성 암호(PQC) 기반의 이중 보안** - Cloudflare의 하이브리드 양자 내성 키 합의 알고리즘(X25519MLKEM768)을 TLS 1.3 연결에 적용하여, 미래의 양자 컴퓨터 공격으로부터 데이터를 보호합니다. - 보안은 전송 계층(TLS)의 양자 내성 암호와 애플리케이션 계층(Megolm)의 종단간 암호화(E2EE)라는 이중 레이어로 구성됩니다. - 서버 운영자나 인프라 제공자는 메시지 메타데이터는 확인할 수 있지만, 메시지 본문은 발신자와 수신자의 기기에서만 복호화가 가능하므로 내용의 기밀성이 완벽하게 보장됩니다. **데이터 모델 및 저장소 설계** - **D1(SQL):** 사용자, 방, 이벤트, 장치 키 등 구조화된 데이터 모델링을 위해 25개 이상의 테이블을 운영하며 데이터의 영속성을 보장합니다. - **KV(Key-Value):** 세션 관리 및 캐싱 등 빠른 읽기 속도가 필요한 데이터를 처리합니다. - **R2:** 암호화된 미디어 파일 및 대용량 바이너리 데이터를 저장하는 오브젝트 스토리지 역할을 수행합니다. 이 프로젝트는 개인 개발자나 보안이 중요한 조직이 관리 부담 없이 안전하고 확장 가능한 통신 인프라를 구축할 수 있는 실무적인 대안을 제시합니다. 특히 복잡한 암호화 라이브러리를 직접 관리하지 않고도 최신 보안 표준을 누릴 수 있다는 점이 큰 장점입니다.

cloudflare

How Workers powers our internal maintenance scheduling pipeline (새 탭에서 열림)

Cloudflare가 전 세계 330개 이상의 도시로 인프라를 확장함에 따라, 수동으로 수행하던 데이터 센터 점검 및 네트워크 유지보수 작업의 복잡도가 임계점을 넘었습니다. 이를 해결하기 위해 Cloudflare는 Workers를 기반으로 네트워크 전체 상태를 실시간으로 파악하고 안전 제약 조건을 프로그래밍 방식으로 강제하는 중앙 집중식 자동화 스케줄러를 구축했습니다. 이 시스템은 유지보수 중 발생할 수 있는 잠재적 충돌을 사전에 차단하여 고객 서비스의 가용성과 안정성을 보장합니다. ### 유지보수 자동화의 필요성과 위험 관리 * **중복성 보장:** 특정 지역의 메트로 네트워크에서 게이트웨이 역할을 하는 에지 라우터들이 동시에 오프라인이 되어 데이터 센터 연결이 끊기는 상황을 방지해야 합니다. * **고객 맞춤형 서비스 보호:** 'Aegis(Dedicated CDN Egress IPs)'와 같이 고객이 특정 데이터 센터를 지정해 트래픽을 송출하는 경우, 해당 데이터 센터들이 동시에 점검에 들어가면 지연 시간이 급증하거나 5xx 에러가 발생할 위험이 있습니다. * **수동 조정의 한계:** 인프라 규모가 커지면서 사람이 실시간으로 모든 중첩된 점검 요청이나 고객별 라우팅 규칙을 추적하는 것이 불가능해졌으며, 이를 자동화된 "두뇌" 시스템으로 대체했습니다. ### 데이터 처리의 한계와 지역화 전략 * **메모리 제약 문제:** 초기에는 모든 서버 관계, 제품 구성, 메트릭 데이터를 단일 Worker에 로드하려 했으나, 플랫폼의 메모리 제한으로 인해 'Out of Memory' 오류가 발생했습니다. * **데이터 선별 로드:** 모든 데이터를 불러오는 대신, 특정 지역(예: 독일 프랑크푸르트)의 점검이 계획되면 해당 지역과 연관된 인접 데이터 센터 및 제품 데이터만 로드하도록 최적화했습니다. * **상관관계 분석:** 특정 데이터 센터의 가동 중단이 어떤 고객의 워크로드에 영향을 주는지 제품 API를 통해 관계성을 파악하고, 최소 하나 이상의 경로가 활성화 상태를 유지하도록 설계했습니다. ### Graph 기반의 관계 처리 (TAO 모델 도입) * **객체와 연관성 모델링:** Facebook의 TAO 연구 논문에서 영감을 얻어, 인프라 데이터를 '객체(Vertices)'와 '연관성(Edges)'으로 구성된 그래프 구조로 모델링했습니다. * **타입화된 API 설계:** 라우터를 객체로, 해당 라우터를 사용하는 고객 서비스(Aegis 풀 등)를 연관성으로 정의하여 프로그래밍 방식으로 빠르게 조회할 수 있는 인터페이스를 구축했습니다. * **제약 조건 검증:** 유지보수 제안이 들어오면 그래프 인터페이스를 통해 영향을 받는 모든 하위 구성 요소를 탐색하고, 점검 일정이 안전 제약 조건을 위반하는지 즉각적으로 분석합니다. Cloudflare의 사례는 대규모 분산 시스템의 운영 효율성을 높이기 위해 인프라 관리 프로세스를 어떻게 코드화하고 자동화할 수 있는지 보여줍니다. 특히 서버리스 플랫폼인 Workers의 제약을 그래프 기반의 효율적인 데이터 모델링으로 극복함으로써, 네트워크 안정성을 해치지 않으면서도 신속한 유지보수 일정을 수립할 수 있게 되었습니다.