TL;DR

  • E2B Embed는 고객 데이터를 자체 환경에 보관해야 하는 기업을 위해 E2B Runtime과 대시보드를 제어 가능한 단일 머신에 패키징해 샌드박스를 실행하는 제품임.
  • 모든 샌드박스는 E2B Cloud와 동일한 격리 방식을 사용하는 Firecracker 마이크로VM이며, 데이터베이스·템플릿·로그는 해당 머신의 디스크에 저장됨.
  • Python 및 JavaScript SDK, 사용자 지정 템플릿 빌드, 샌드박스 터미널·파일 브라우저가 포함된 대시보드, OpenTelemetry 내보내기를 제공함.
  • Docker Compose, GCP용 Terraform, AWS용 Terraform, Kubernetes의 네 가지 설치 옵션이 있으며 모두 단일 머신에서 동일한 스택을 실행함.
  • E2B Embed는 Apache-2.0 오픈소스이며 계정이나 라이선스 키가 필요하지 않지만, 시크릿·볼륨·워크로드 아이덴티티·사용자 지정 프록시는 포함하지 않음.

E2B Embed를 만든 이유

  • 에이전트 기업은 데이터가 고객 환경 밖으로 나가면 안 되는 고객을 지원해야 하며, 이는 정부 기관과 금융·의료 등 규제 산업에서 자주 요구되는 조건임.
  • 고객에게 제공하는 소프트웨어에 E2B를 포함할 수 있도록 E2B Embed를 구축함. 샌드박스 스택은 고객 환경 안의 단일 머신에서 실행되며 운영은 직접 담당함.

제공 기능

  • E2B Embed는 E2B 샌드박스를 구동하는 오픈소스 E2B Runtime을 실행함. 데이터베이스는 해당 머신에서 실행되고, 빌드한 템플릿과 샌드박스 로그도 머신의 디스크에 저장됨.
  • Firecracker 샌드박스: 모든 샌드박스가 E2B Cloud와 동일한 가상 머신 격리 방식을 사용하는 Firecracker 마이크로VM임.
  • 동일한 SDK: 설치 환경의 팀 API 키와 SDK URL을 사용해 Python 또는 JavaScript SDK를 이용함.
  • 사용자 지정 템플릿: Template.build로 템플릿을 만들고 이를 바탕으로 샌드박스를 시작함. 빌드는 머신의 Firecracker VM 안에서 실행됨.
  • 대시보드: 샌드박스와 템플릿을 둘러볼 수 있으며, 각 샌드박스에 터미널과 파일 브라우저가 제공됨. 모든 설치 옵션에 대시보드가 포함됨.
  • OpenTelemetry 내보내기: 설정 하나로 E2B 서비스의 메트릭, 트레이스, 로그를 선택한 수집기로 전송함.
  • 포함되지 않는 기능: 시크릿, 볼륨, 워크로드 아이덴티티, 사용자 지정 프록시.

시작하기

  • E2B Embed는 E2B Runtime 저장소에서 이용할 수 있으며, 인프라에 맞는 설치 방식을 선택하면 됨. 네 가지 옵션 모두 한 머신에서 동일한 스택을 실행함.
  • Docker Compose: KVM이 있는 Linux 호스트가 필요하며, 설치 명령은 docker compose up -d --wait임.
  • GCP용 Terraform: GCP 프로젝트와 인증 정보가 필요하며, 설치 명령은 terraform init && terraform apply임.
  • AWS용 Terraform: AWS 계정과 인증 정보가 필요하며, 설치 명령은 terraform init && terraform apply임.
  • Kubernetes: KVM 노드가 준비된 클러스터가 필요하며, 설치 명령은 kubectl apply -k임.
  • Docker Compose를 사용하려면 KVM과 Docker가 설치된 전용 Linux 호스트가 필요함. 호스트가 요구 사항을 충족하면 디렉터리를 만들고 다음 설정 파일을 내려받은 뒤 Compose를 실행함: https://raw.githubusercontent.com/e2b-dev/runtime/main/embed/compose/{compose.yaml,.env}. 실행 명령은 docker compose up -d --wait임.
  • 첫 실행에서는 호스트를 점검하고 준비하며, Firecracker 아티팩트를 내려받고 고정된 이미지를 가져온 뒤 데이터베이스를 마이그레이션하고 기본 템플릿을 빌드함. 템플릿 준비가 완료되면 명령이 성공함.
  • docker compose logs ready를 실행하면 팀 API 키, SDK URL, 대시보드 URL을 확인할 수 있음.
  • Embed는 네트워크 내부에서 일반 HTTP를 제공함. API와 대시보드 접근을 설정하고 내부 서비스 포트를 비공개로 유지하려면 네트워킹 가이드를 따라야 함.
  • E2B Embed는 E2B Runtime과 마찬가지로 Apache-2.0 라이선스의 오픈소스임. E2B 계정이나 라이선스 키가 필요하지 않으며 기여를 환영함.
  • Embed는 단일 머신 제품임. 여러 머신으로 확장하거나 E2B가 사용자의 클라우드 계정에서 배포를 운영하기를 원한다면 E2B Bring Your Own Cloud를 이용하면 됨.

중요한 이유

  • 코드를 실행하고 파일을 다루는 에이전트에는 접근 가능한 범위를 명확히 제한하는 장치가 필요함. 에이전트가 언제나 올바르게 행동한다는 가정만으로 기업이 사업을 구축할 수는 없음.
  • E2B는 에이전트가 작업할 수 있도록 격리된 VM을 제공함. 격리는 안전한 배포의 한 요소이며, 주변의 네트워크 및 접근 제어도 함께 필요함. Embed를 사용하면 고객이 요구하는 환경 안에 샌드박스를 둘 수 있음.
  • 에이전트가 더 많은 기업의 업무에 투입되기를 바라며, 직접 제어하는 인프라에서 에이전트를 실행해야 하는 기업도 그 대상임.
  • E2B Embed를 설치해 첫 샌드박스를 만들 수 있음.