Vercel Services: Vercel에서 풀스택 실행하기
요약
Vercel Services를 통해 Next.js 프론트엔드와 FastAPI 등 다양한 백엔드 프레임워크를 하나의 프로젝트에서 통합 실행할 수 있습니다. 이를 통해 복잡한 라우팅과 CORS 설정 없이 Vercel 네트워크 내에서 서비스 간 내부 통신과 자동 확장이 가능해집니다.
핵심 포인트
- 하나의 Vercel 프로젝트 내에서 여러 프레임워크 통합 실행 가능
- Vercel 네트워크를 통한 서비스 간 내부 통신 및 보안 강화
- Python, Go, Rust 등 다양한 프레임워크에 대한 Zero-config 지원
- 트래픽에 따른 자동 확장(Autoscaling) 및 사용량 기반 비용 모델
사용자에게 Next.js 프론트엔드와 FastAPI 백엔드를 가진 앱은 하나의 제품처럼 느껴지며, 이를 구축하는 엔지니어들에게도 마찬가지여야 합니다. 하지만 실제로는 이 두 부분이 서로 다른 개발 및 배포 워크플로우를 가진 서로 다른 클라우드에 배포되는 경우가 많습니다.
오늘 우리는 하나의 Vercel 프로젝트에서 여러 프레임워크를 실행할 수 있게 해주는 Vercel Services를 소개합니다. 이를 통해 다음을 실현할 수 있습니다:
Vercel이 라우팅 (routing), 빌드 (builds), 배포 (deployments), 그리고 프로덕션 환경에서의 자동 확장 (auto-scaling) 등 나머지 과정을 처리합니다. 여러분이 이미 Vercel에서 경험해 온 개발자 경험 (developer experience)이 이제 애플리케이션 전체를 아우르게 됩니다.
라우팅 설정을 명시적으로 유지하기 위해 vercel.json 파일의 services 키 아래에 서비스를 선언하세요:
services
서비스는 리버스 프록시 (reverse proxy)나 CORS (Cross-Origin Resource Sharing) 없이도 공유 라우팅 테이블에 마운트 (mount)될 수 있습니다.
서비스 설정은 Vercel 플랫폼의 여러 수준에서 인식됩니다:
서비스는 공용 인터넷을 거치지 않고 내부적으로 다른 서비스와 통신할 수 있습니다. 새로운 설정 키가 이를 어떻게 가능하게 하는지에 대한 예시는 다음과 같습니다:
bindings
이제 JavaScript 프론트엔드 코드는 환경 변수(environment variable)에 저장된 BACKEND_INTERNAL_URL URL을 통해 Python 서비스와 내부적으로 통신할 수 있습니다.
서비스 간 트래픽은 공용 인터넷으로 나가는 대신 Vercel 네트워크 내에 머무릅니다. 수많은 독립적인 서비스들이 호스트 간에 서로 꿰매어 붙여야 하는 별개의 배포 단위가 아니라, 동일한 연결망으로 연결된 하나의 애플리케이션이 될 수 있습니다.
대부분의 프레임워크는 설정 없이 (zero configuration) Vercel에서 실행됩니다. 이는 Python부터 Express, TypeScript에 이르기까지 각 서비스의 프레임워크가 자동으로 감지되고 프로비저닝 (auto-provisioned)됨을 의미하며, 서버를 위한 일급 지원 (first-class support)을 제공한다는 뜻입니다. 프레임워크 정의 인프라 (Framework-defined infrastructure) FastAPI Flask Hono Go Rust
서비스는 트래픽에 따라 오토스케일링 (autoscaling)되는 Fluid 컴퓨팅 (Fluid compute)에서 실행되며, 사용자는 활성 CPU 시간만큼만 비용을 지불합니다. 하지만 프레임워크 정의 최적화 (framework-defined optimizations)는 훨씬 더 깊은 수준까지 적용됩니다. 예를 들어, Django의 경우 정적 자산 (static assets)이 어디에 있는지 자동으로 감지하여 CDN을 통해 제공합니다.
Vercel Services는 Vercel이 애플리케이션을 구축하고 실행할 수 있는 구조화된 방법을 제공합니다.
이러한 서비스들은 API, 에이전트 (agents), 또는 백그라운드 워커 (background workers)를 구축하든 상관없이, 백엔드에 필요한 모든 것—컴퓨팅 (compute), 데이터 (data), 네트워킹 (networking), 백그라운드 작업 (background work), 그리고 외부 서비스와의 보안 연결—을 포함하는 플랫폼에서 실행됩니다.
에이전트는 파일을 읽고, 명령을 실행하며, 코드를 작성할 수 있습니다. 하지만 이러한 기능에는 보안이 필요합니다. 각 에이전트에는 자신만의 Linux 컴퓨터, 즉 파일 시스템 (filesystem), 셸 (shell), 그리고 사용자의 배포 환경으로부터 완전히 격리된 자체 커널 (kernel)이 부여됩니다. 에이전트는 코드를 실행하고, 파일을 grep 하며, 종속성으로서 Redis나 Postgres를 실행할 수 있습니다. 샌드박스 (sandbox) 내부의 그 어떤 것도 프로덕션 환경 (production environment)에 접근할 수 없습니다. Vercel Sandbox Docker 지원 (Docker support)
자동 지속성 (automatic persistence)을 통해 상태 (state)가 세션 간에 유지되며, Pro 플랜에서는 샌드박스를 최대 24시간 동안 실행할 수 있습니다.
Vercel Functions는 백엔드가 Node.js, Python 또는 Go로 작성되었는지에 관계없이 모든 Vercel 런타임(runtime)에서 지속적인 WebSocket 연결을 처리합니다. 이들은 Socket.IO와 같은 표준 WebSocket 라이브러리와 함께 작동하며, 연결이 Active CPU 과금 방식이 적용된 Fluid 컴퓨팅(compute)에서 실행되기 때문에 연결이 유휴(idle) 상태로 머무는 시간이 아닌, 메시지를 처리하는 데 소비된 시간에 대해서만 비용을 지불하면 됩니다.
에이전트(Agents)와 백엔드는 프로젝트 외부의 서비스(Slack, GitHub, 관리형 데이터베이스 등)에 접근해야 하며, 이는 보통 환경 변수에 장기 유지되는 비밀 값(long-lived secret)을 저장해야 함을 의미합니다. Vercel Connect는 이를 앱이 런타임에 요청하는 단기 자격 증명(short-lived credential)으로 대체하며, 이는 직면한 작업의 범위(scope)로 제한됩니다. 유출될 위험이 있는 장기 유지되는 비밀 값은 더 이상 남지 않습니다.
Vercel Marketplace에서 몇 번의 클릭만으로 데이터베이스를 프로비저닝할 수 있으며, Neon, Supabase와 같은 제공업체는 물론 AWS의 Aurora PostgreSQL, Aurora DSQL, DynamoDB로부터 자격 증명이 자동으로 주입됩니다. Amazon OpenSearch Serverless는 전체 텍스트(full-text) 및 벡터 검색(vector search) 기능을 추가하고 객체 스토리지(object storage)를 처리합니다. Vercel을 떠나지 않고도 이 모든 것을 query and manage할 수 있으며, Vercel Blob과 AWS 통합 기능 모두 저장된 비밀 값 대신 단기 OIDC 토큰을 사용하여 인증합니다.
Vercel은 요청 경로(request path) 외부에서 백그라운드 작업(background jobs)을 처리합니다. Vercel은 충돌(crash)이나 재배포(redeploys) 상황에서도 유지되는 내구성이 있는 다단계 프로세스(durable multi-step processes)를 처리합니다. 또한 Vercel은 스케줄에 따라 작업을 실행합니다. 이는 요청보다 더 오래 지속되는 백엔드의 일부이며, 다른 모든 것과 동일한 플랫폼에서 실행되므로 백엔드의 롱러닝(long-running) 측면을 위해 별도의 인프라가 필요하지 않습니다. Queues Workflow Cron
백엔드가 공개 서비스 대신 프라이빗 데이터베이스(private database)나 내부 네트워크(internal network)에 접속해야 할 때, Secure Compute, static IPs, VPC peering을 통해 해당 경로를 열 수 있습니다.
Functions는 Pro 및 Enterprise 플랜에서 최대 30분 동안 실행되며, Python 백엔드는 최대 500mb의 종속성(dependencies)과 함께 배포됩니다.
이 모든 것의 기반에는 Fluid compute가 있으며, 새 프로젝트의 기본값인 Active CPU 과금 방식은 코드가 대기하는 시간이 아닌 실제로 실행되는 시간에 대해 비용을 청구하므로, 유휴 상태(idle)가 많은 백엔드 및 AI 작업에 적합한 형태를 갖추고 있습니다.
Vercel Services는 프론트엔드, 백엔드 및 지원 서비스를 하나의 프로젝트로 통합합니다. 이들은 함께 빌드되고, 함께 프리뷰(preview)되며, 함께 배포되고, 기본적으로 내부적으로 통신합니다.
컴퓨팅(compute), 데이터(data), 큐(queues), 워크플로우(workflows), 크론(cron), 보안 네트워킹(secure networking) 및 샌드박스 에이전트 환경(sandboxed agent environments)을 위한 Vercel의 내장 프리미티브(primitives)와 결합하여, 별도의 플랫폼들을 짜 맞출 필요 없이 풀스택(full stack)을 실행할 수 있습니다.
서비스를 구성하기 시작하려면 Vercel Services documentation과 routing and communication guide를 읽어보세요. Vercel에서 백엔드를 실행하는 것이 처음이라면, zero-config backends 포스트가 시작하기에 좋은 곳입니다.
-
프론트엔드, 백엔드 및 기타 서비스가 동기화되어 함께 배포되거나 롤백(roll back)됩니다. 원자적 배포 (Atomic deployments):
-
모든 변경 사항이 모든 서비스에 어떻게 영향을 미치는지 확인하세요. 공유 프리뷰 배포 (Shared preview deployments):
-
서비스들이 공용 인터넷을 거치지 않고 서로 통신할 수 있습니다. 내부 서비스 통신 (Internal service communication):
-
배포(Deployments) 패널에서 서비스 그래프의 시각화 자료를 보여줍니다.
-
로그(Logs) UI를 통해 개별 서비스별로 필터링할 수 있습니다.
-
CLI가 모든 서비스를 자동으로 실행하여 로컬에서 프로덕션과 유사한 환경을 제공합니다.
vercel dev
Vercel Services로 애플리케이션 구성하기
풀스택 플랫폼
당신이 출시하는 모든 것을 위한 단일 플랫폼
서비스 바인딩 (Service bindings)
프레임워크 정의 인프라 (Framework-defined infrastructure)
에이전트 서비스를 위한 격리된 컴퓨팅 (Isolated compute for agent services)
WebSocket 지원을 통한 실시간 백엔드
Vercel Connect로 외부 서비스에 접속하기
서비스를 위한 데이터베이스 및 스토리지
내구성이 있는 워크플로(durable workflows) 및 백그라운드 작업 실행
프라이빗하게 연결하고 적절한 컴퓨팅에서 실행하기
AI 자동 생성 콘텐츠
본 콘텐츠는 Vercel AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기