TL;DR
- E2B Embed는 선택한 환경의 단일 머신에서 전체 E2B 스택과 모든 기능을 실행하며, 데이터가 외부로 나가면 안 되는 정부 및 금융·의료 등 규제 산업의 고객에게 E2B 샌드박스를 제공함.
- E2B Cloud와 동일한 SDK와 API를 제공하며, 애플리케이션을 옮길 때 필요한 변경은 구성 변경뿐임.
- Docker Compose, GCP·AWS용 Terraform, Kubernetes로 설치할 수 있고, 각 가이드는 시작 후 몇 분 안에 첫 샌드박스를 실행함.
- 템플릿·샌드박스 로그·데이터가 한 머신의 디스크에 머물며 외부로 나가지 않고, 대시보드에서 샌드박스와 템플릿 및 로그를 관리할 수 있음.
- Apache-2.0 라이선스로 공개된 오픈 소스이며, E2B 계정이나 라이선스 키가 필요하지 않음.
E2B Embed
- 전체 E2B 스택과 모든 기능을 원하는 환경의 단일 머신에서 실행함.
- 제품 안에 포함하거나 고객 자체 환경에서 실행할 수 있어, 데이터가 해당 환경에 머물러야 하는 정부 및 금융·의료 등 규제 산업의 고객에게 E2B 샌드박스를 제공함.
- E2B Cloud와 동일한 SDK와 API를 사용함.
- Apache-2.0 라이선스로 제공되는 오픈 소스임.
- 제공되는 설치 및 안내 항목은 Docker Compose, GCP용 Terraform, AWS용 Terraform, Kubernetes, 참조 문서임.
실행 방법
- 이미 보유한 환경에 맞는 설정을 선택함.
- Docker Compose는 직접 관리하는 Linux 호스트와
docker compose up -d --wait명령을 사용함. - GCP용 Terraform은 Google Cloud 프로젝트와
terraform apply명령을 사용함. - AWS용 Terraform은 AWS 계정과
terraform apply명령을 사용함. - Kubernetes는 클러스터의 노드 하나와
kubectl apply -k명령을 사용함. - 각 가이드는 실행을 시작한 뒤 몇 분 안에 첫 샌드박스를 실행하도록 안내함.
- 프로덕션 규모로 확장하려면 E2B에 문의해야 함.
노드에서 실행되는 구성 요소
- 노드 하나에 전체 E2B 런타임이 실행됨. 애플리케이션은 SDK를 통해, 팀은 대시보드를 통해 런타임과 통신함.
- 컨트롤 플레인은 E2B Cloud와 동일한 API이며, 데이터 플레인은 동일한 E2B 샌드박스를 실행함.
- 스토리지는 템플릿과 스냅샷을 보관하고, 텔레메트리는 로그와 메트릭을 보관함.
- 모든 데이터가 노드 안에 머물며 외부로 나가지 않음.
- 동일한 노드를 직접 관리하는 Linux 호스트에서 Docker Compose로, Google Cloud의 VM 하나 또는 AWS의 인스턴스 하나에서 Terraform으로, 기존 Kubernetes 클러스터의 노드 하나에서 실행함.
제공 기능
- E2B Cloud와 동일한 격리 샌드박스를 제공하며, 필요에 따라 일시 중지하고 다시 시작함.
- E2B Cloud와 동일한 SDK와 API를 제공하며, 애플리케이션을 옮길 때 구성만 변경함.
- 모든 구성 요소가 단일 머신에서 실행됨. 템플릿, 샌드박스 로그와 데이터는 해당 머신의 디스크에 저장되며 다른 곳으로 이동하지 않음.
- 기본적으로 비공개로 설계됨. 애플리케이션과 대시보드 사용자만 노드에 접근해야 하며, Terraform 설치는 지정한 주소만 허용함. 개방해야 할 항목은 참조 문서에 안내됨.
- 동일한 API로 사용자 지정 샌드박스 템플릿을 만들고, 이를 기반으로 샌드박스를 바로 시작함.
- 대시보드에서 브라우저로 샌드박스, 템플릿과 로그를 확인하며, 각 샌드박스마다 터미널과 파일 브라우저를 제공함.
- 공개 E2B 런타임 저장소에서 Apache-2.0 라이선스로 제공되는 오픈 소스임. E2B 계정이나 라이선스 키가 필요하지 않음.
Docker Compose
- 이미 보유한 Linux 머신에서 실행하며, 전체 안내는 Docker Compose 가이드에서 제공됨.
- 다음 명령은 작업 디렉터리를 만들고 구성 파일을 내려받은 뒤 서비스를 시작함.
mkdir e2b && cd e2bcurl -fsSL --remote-name-all "https://raw.githubusercontent.com/e2b-dev/runtime/main/embed/compose/{compose.yaml,.env}"docker compose up -d --wait
GCP용 Terraform
- Google Cloud 프로젝트에 머신을 생성하며, 전체 안내는 GCP용 Terraform 가이드에서 제공됨.
- Terraform 모듈은
https://github.com/e2b-dev/runtime//embed/terraform/gcp?ref=main을 사용함. project_id에는 프로젝트 ID를 지정하고,client_cidrs에는 SDK 클라이언트가 연결되는 주소 범위를 지정함. 예시 주소 범위는203.0.113.0/24임.terraform init && terraform apply명령으로 초기화하고 적용함.
AWS용 Terraform
- AWS 계정에 머신을 생성하며, 전체 안내는 AWS용 Terraform 가이드에서 제공됨.
- Terraform 모듈은
https://github.com/e2b-dev/runtime//embed/terraform/aws?ref=main을 사용함. client_cidrs에는 SDK 클라이언트가 연결되는 주소 범위를 지정함. 예시 주소 범위는203.0.113.0/24임.terraform init && terraform apply명령으로 초기화하고 적용함.
Kubernetes
- 기존 클러스터의 노드에서 실행하며, 전체 안내는 Kubernetes 가이드에서 제공됨.
e2b네임스페이스를 만들고,ADMIN_TOKEN과SANDBOX_ACCESS_TOKEN_HASH_SEED값으로 시크릿을 생성함. 두 값은 각각openssl rand -hex 32로 무작위 생성함.- 다음 Kustomize 경로를 적용해 런타임을 배포함:
https://github.com/e2b-dev/runtime//embed/kubernetes?ref=main.
노드 하나로 충분하지 않을 때
- Embed는 설계상 단일 머신으로 실행됨. 더 많은 용량이 필요하면 동일한 SDK와 API를 사용하는 세 가지 방식을 선택할 수 있으며, 전환은 구성 변경으로 이뤄짐.
- 프라이빗 클라우드는 개발 중이며, 외부로 어떤 것도 나가면 안 되는 네트워크를 위해 경계 안에서 전체 플랫폼을 실행하도록 설계됨. 디자인 파트너를 모집 중임.
- Bring Your Own Cloud는 고객의 클라우드 계정을 E2B가 운영하는 방식임.
- E2B Cloud는 E2B가 관리하므로 고객이 호스팅할 필요가 없음.
- 프라이빗 클라우드와 Bring Your Own Cloud에 관한 내용은 기업용 E2B 안내에서 확인할 수 있음.
제한 사항
- Linux에서 실행됨. Embed에는 하드웨어 가상화를 지원하는 Linux 머신이 필요하며, Terraform 설치 방식은 머신을 대신 생성함.
- Mac에서는 Linux 가상 머신 안에서 실행되며, Apple silicon M3 이상과 macOS 15 이상이 필요함.
- 일반 HTTP로 응답함. Embed 자체 주소에서 HTTP로 응답하고 자체 TLS는 제공하지 않으므로 네트워크 내부에서 실행해야 함.
- 샌드박스 내부 포트는 동일한 머신 주소를 통해 접근함. 자세한 방법은 참조 문서에 안내됨.
참조
- 머신 운영자를 위한 네트워킹, 로그와 메트릭, 시크릿, 릴리스, 템플릿 빌드 및 개발자 도구 상세 내용은
docs/REFERENCE.md에 있음.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요