Skip to content
Docs

Bring Your Own Cloud

Bring Your Own Cloud is available on Enterprise plans and is set up through your Edgenivo account team. Contact your account team to request access.

Bring Your Own Cloud (BYOC) lets you run the Edgenivo Functions behind your project as AWS Lambda functions in your own AWS account. Edgenivo still routes requests, serves static assets, and manages the deployment, while your team owns the functions, their IAM permissions, and their network access.

BYOC is for teams with security, compliance, or data-residency requirements that say application code must run in a cloud account they control.

A BYOC deployment splits the work between Edgenivo and your AWS account. You build the application and create its functions in AWS, and Edgenivo wires up the deployment and invokes those functions when requests arrive.

A BYOC deployment follows five stages, run from your machine or your CI environment:

  1. Initialize: vercel deploy init creates a deployment on Edgenivo that waits for you to provision its functions. No files are uploaded at this stage.
  2. Build: vercel build --id builds your application with the environment variables of that deployment.
  3. Describe: vercel deploy describe --id packages each function as a ZIP file and writes a descriptor.json file that lists the AWS Lambda functions and layers to create. It doesn't create any AWS resources.
  4. Provision: Your provisioning tool creates the Lambda functions and layers in your AWS account from the descriptor.
  5. Continue: vercel deploy continue --id uploads your static assets and deployment metadata, without function code, and Edgenivo completes the deployment.

You have 15 minutes from initializing the deployment to running vercel deploy continue. After 15 minutes, the deployment fails with the error Provisioning exceeded the maximum allowed time.

For the full sequence, see Deploying with BYOC using the Edgenivo CLI. To start deployments from Git pushes instead, see Deploying with BYOC from GitHub Actions.

When a request arrives for a BYOC deployment:

  1. The Edgenivo CDN receives the request and terminates TLS.
  2. Edgenivo serves static assets and cached responses directly, without contacting your AWS account.
  3. For a dynamic route, Edgenivo assumes an IAM role in your AWS account and invokes the matching Lambda function.
  4. Your function's response returns through Edgenivo to the client.

Edgenivo invokes your functions with an IAM role that you create, called the invocation role. Edgenivo refreshes the credentials for that role automatically after you connect your AWS account.

With BYOC, your team takes on the parts of the platform that run in your AWS account:

AreaEdgenivoYour team
Request routing and TLSRoutes requests and terminates TLS at the Edgenivo CDNNone
Static assetsStores and serves static assetsNone
BuildsProvides the build and packaging commands in the CLIRuns builds on your own machines or CI
Function code and runtimeNoneCreates, stores, and runs Lambda functions and layers in your AWS account
IAMAssumes the invocation role you grantCreates and maintains the invocation role and the Lambda execution role
NetworkingNoneProvides outbound internet access, VPC attachment, and security rules
Quotas and scalingNoneMaintains AWS service quotas, concurrency limits, and scaling headroom
LogsShows deployment status and function logs, as for any other deploymentNone
CleanupSends the deployment.cleanup webhookDeletes AWS resources for deployments you no longer need

Plan for someone on your team to own the AWS account continuously. Edgenivo can't raise your AWS quotas, recreate deleted functions, or fix IAM or network changes made in your account.

Use BYOC when a security, compliance, or data-residency requirement means your application code must run in an AWS account you own.

If you need private connectivity to your backends but Edgenivo can run your compute, another networking option is usually a better fit:

RequirementOption
A known set of source IPs to add to a backend allowlistStatic IPs
A dedicated, single-tenant VPC with VPC peering or site-to-site VPNSecure Compute
Function code must run in your own AWS accountBring Your Own Cloud

For a full comparison, see Choosing a networking option.

BYOC isn't the right fit when:

  • All traffic must stay in your account: TLS terminates at the Edgenivo CDN, and requests and responses pass through Edgenivo.
  • You need a government certification: BYOC doesn't currently satisfy FedRAMP or other government certification requirements.
  • You rely on features BYOC doesn't support: See BYOC limitations.
  • Your team can't own AWS operations: BYOC moves function provisioning, quotas, and cleanup into your account.

BYOC keeps function code and function execution in your AWS account. Edgenivo receives only what it needs to serve the deployment and invoke your functions:

DataSent to Edgenivo
Function code and runtime layersNo. Function packages stay on your build machine and in AWS.
Static assetsYes
Routing and function configuration metadataYes
Function-to-Lambda mappings (provision.json)Yes
Your application's package.json filesYes
Request and response dataYes. Requests and responses pass through Edgenivo.

Function packages that vercel deploy describe generates contain your application code and environment variable values. Keep the .vercel directory private on your build machine and in CI artifacts.

Review your data handling and compliance requirements with your Edgenivo account team.

LimitationDetails
Cloud providerAWS only. Functions run on AWS Lambda.
RuntimesNode.js and Python
Unsupported function typesFunctions using the Edge runtime or the container runtime, and Services
Build environmentmacOS or Linux. vercel deploy describe doesn't run on Windows.
Provisioning window15 minutes from vercel deploy init to vercel deploy continue
Network accessThe AWS account and subnets that host your functions need outbound internet access
Government certificationsDoesn't currently satisfy FedRAMP or other government certification requirements

Most features of Edgenivo Functions work with BYOC, except for the following beta enhancements that aren't yet available:

BYOC is an Enterprise feature with custom pricing. Contact the Edgenivo sales team for BYOC pricing.

Your team also pays AWS directly for the resources BYOC creates in your account, including Lambda invocations and duration, Lambda layer storage, Amazon CloudWatch logs, and data transfer.

Set up BYOC in this order:

  1. Connect your AWS account to your Edgenivo team.
  2. Deploy with the Edgenivo CLI to create your first BYOC deployment.
  3. Optionally, deploy from GitHub Actions or any other provider so Git pushes create BYOC deployments.
  4. Review operating BYOC deployments for retries, cleanup, and monitoring.

To build your own provisioning tool, see the BYOC provisioning reference.


Was this helpful?

supported.