Notion Workers가 Vercel Sandbox를 활용해 비신뢰 코드를 대규모로 안전하게 실행하는 방법을 소개합니다. VM 수준의 강력한 격리, 자격 증명 주입, 동적 네트워크 정책 등 핵심 기술을 다룹니다.
Notion Workers는 Custom Agent에 새로운 기능을 부여하는 코드를 직접 작성하고 배포할 수 있게 해줍니다. 외부 데이터 동기화, 자동화 트리거, 외부 API 호출 등 다양한 작업이 가능합니다. Workers를 활용하면 CRM 데이터를 주기적으로 동기화하거나, 에러율이 급증할 때 이슈를 자동 생성하거나, Slack 스레드를 정리된 콘텐츠로 변환하는 에이전트를 구축할 수 있습니다.
내부적으로 모든 Worker는 Vercel Sandbox 위에서 실행됩니다.
Notion은 누구나 커스텀 코드로 플랫폼을 확장할 수 있도록 하고 싶었습니다. 이는 까다로운 인프라 문제이면서, 그보다 더 심각한 보안 문제이기도 합니다. 모든 Notion Worker는 서드파티 개발자나 에이전트가 생성한 임의의 코드를, Notion 사용자를 대신해, 경우에 따라서는 기업 워크스페이스 내부에서 실행합니다.
적절한 격리 없이는 Worker가 Custom Agent와 동일한 환경에서 실행되면서, 해당 실행 컨텍스트의 시크릿, 권한, 기타 모든 리소스에 접근할 수 있게 됩니다. 프롬프트 인젝션 한 번이면 자격 증명을 탈취하거나 다른 사용자의 데이터에 접근하는 것이 가능해집니다.
요구사항은 명확했습니다:
강력한 격리: 하나의 Notion Worker가 다른 Worker의 데이터나 상태에 절대 접근할 수 없어야 합니다
자격 증명 보안: Notion Workers는 외부 서비스와 통신하기 위해 API 키가 필요하지만, 해당 시크릿이 코드 자체에 노출되어서는 안 됩니다
네트워크 제어: 기업 고객은 Worker가 접근할 수 있는 외부 서비스에 대한 보장이 필요합니다
확장성: 수백만 사용자의 동시 실행을 성능 저하 없이 처리할 수 있어야 합니다
상태 보존: 빠른 콜드 스타트를 위해 파일시스템 상태를 스냅샷으로 저장하고 복원할 수 있어야 합니다
비용 효율: CPU 활용률이 낮은 에이전트 워크로드에 적합한 과금 모델이 필요합니다
Vercel Sandbox는 각 Notion Worker를 임시(ephemeral) Firecracker microVM에서 실행합니다. 모든 VM이 자체 커널을 부팅하므로, 컨테이너보다 한 단계 강력한 격리를 제공합니다. 각 실행마다 독립된 파일시스템, 독립된 네트워크 스택, 독립된 보안 경계가 부여됩니다. Notion Worker 실행이 끝나면 해당 microVM은 즉시 폐기되거나, 이후 재사용을 위해 스냅샷으로 저장됩니다.
Notion Workers와 같은 대규모 워크로드를 지원하기 위해, Vercel Sandbox는 다음과 같은 핵심 기능을 제공합니다:
자격 증명 주입. Sandbox의 방화벽 프록시는 네트워크 수준에서 아웃바운드 요청을 가로채 API 키를 주입할 수 있어, 자격 증명이 실행 환경 내부에 진입하지 않습니다. 에이전트 기반 워크로드에서는 가장 위험한 프롬프트 인젝션 벡터, 즉 에이전트를 속여 시크릿을 외부로 유출시키는 공격을 원천 차단합니다. (이 아키텍처에 대해서는 에이전틱 아키텍처의 보안 경계에서 자세히 다루었습니다.)
네트워크 정책. Sandbox는 프로세스를 재시작하지 않고도 런타임 중에 업데이트할 수 있는 동적 네트워크 정책을 지원합니다. 의존성 설치 단계에서는 인터넷 접근을 허용하고, 비신뢰 코드를 실행하기 전에 이그레스를 차단하는 방식입니다. 플랫폼 빌더는 이러한 제어 기능을 자체 고객에게 그대로 제공할 수 있습니다.
스냅샷. 의존성을 한 번 설치한 뒤 파일시스템 상태를 스냅샷으로 저장하면, 이후 호출 시 해당 스냅샷에서 바로 재개할 수 있습니다. I/O 대기 시간이 아닌 실제 코드 실행 시간에만 과금되는 active-CPU 과금 모델과 결합하면, 사용량이 늘어나도 비용을 예측 가능한 수준으로 유지할 수 있습니다.
Notion Workers는 단발성 기능이 아닙니다. Notion이 개발자 플랫폼으로 진화하는 출발점입니다.
이러한 전환에는 Notion이 직접 구축할 필요가 없는 인프라가 필요합니다. 보안 코드 실행, 자격 증명 관리, 네트워크 격리, 파일시스템 기반 스냅샷 — 이 모든 것은 플랫폼이 확장될수록 복잡도가 기하급수적으로 증가하는 난제입니다.
Vercel Sandbox가 인프라의 복잡성을 처리함으로써, Notion은 개발자 경험에 온전히 집중할 수 있습니다.
Notion Workers는 세 가지 주요 패턴을 지원합니다: 서드파티 데이터 동기화, 커스텀 자동화, 그리고 AI 에이전트 도구입니다.
개발자들은 Workers를 사용해 CRM 레코드, 분석 데이터, 지원 티켓 등 외부 데이터를 주기적으로 Notion에 동기화합니다. 버튼에 Worker를 연결하면 클릭 한 번으로 원하는 코드를 실행할 수도 있습니다. 또한 Notion의 커스텀 에이전트가 Workers를 도구 호출(tool call)로 활용하면, 기본 제공 연동에만 의존하는 에이전트와는 비교할 수 없는 확장성을 갖추게 됩니다.
Notion Workers에 필요한 역량은 다른 에이전트 플랫폼에서도 동일하게 요구됩니다. 사용자나 에이전트가 커스텀 코드를 실행할 수 있도록 하려는 모든 플랫폼은 격리, 자격 증명 보안, 네트워크 제어, 확장성이라는 동일한 과제에 직면합니다.
Vercel Sandbox는 이러한 기능을 기본으로 제공합니다. AI 에이전트, 개발자 플러그인, 워크플로 자동화 등 비신뢰 코드를 실행해야 하는 플랫폼을 구축하고 있다면, 바로 이것이 해답입니다.