Skip to content

BYOC (Bring Your Own Cloud)

There are many applications that needs to be deployed in customers account due to security and cost reasons. Your customers may prefer to not move the data in your account and want you to deploy your app(s) in their account.

From your perspective, you will have to manage hundreds or thousands of these accounts. This is how the setup may look like:

BYOC image

The challenge is that deploying in your customers account requires manual coordination, sharing of credentials and a lot of operational pain. We have automated the entire process and made it simple to operate in a secure way.

Note

There are several variants of BYOC mode in the industry and they are all somewhat related.

  • Bring Your Own VPC - in this mode, your customer brings a specific VPC for you to deploy and manage your application. See here for more details
  • Bring Your Own Cloud (BYOC) - in this mode, your customers bring their account so that you can deploy and manage your application. See here for more details

We support different variants of BYOC for you to NOT worry about the complexity of the underlying infrastructure

How to enable BYOC

Compose Spec Configuration

If you are using compose-based specification, you can add the following to your compose to configure your provider account:

x-omnistrate-service-plan:
  deployment:
    byoaDeployment:
      awsAccountId: "<AWS_ACCOUNT_ID>"
      awsBootstrapRoleAccountArn: arn:aws:iam::<AWS_ACCOUNT_ID>:role/omnistrate-bootstrap-role

Note

Please don't forget to replace with your own AWS Account ID

Videos

  • To configure your customer's account using Cloud Formation, you need to follow this video guide

BYOC architecture

BYOC architecture

We build a trust relationship between your account and your customers account to allow you to automate the setup. Once setup, system uses the industry standard secure techniques to reverse the connection to prevent any inbound connections to your customers' account (except while configuring their account during setup), encrypted channel through TLS and oauth tokens to secure the connectivity between your customers account and your account.

If your customers wants to also disable any outbound data, they can also achieve that by updating the IAM permission set. Please reach out to support@omnistrate.com for details on how to achieve this.

BYOC in action

Omnistrate makes it easy to manage resource instances across the fleet

View for your customers

BYOC Access

Internal view for your teams

BYOC Fleet

Demo video

Here is a demo video on PostgreSQL BYOC DBaaS: Watch the video

Bring Your Own VPC (BYO-VPC)

If you are running in BYOC mode, your customers can bring their own VPC and Omnistrate will deploy your Dataplane in their VPC.

Prerequisites

Your customer must create the VPC and subnets before deploying. The requirements differ depending on whether PrivateLink is enabled.

# Requirement Details
1 DNS settings Enable DNS hostnames and DNS resolution on the VPC. AWS docs
2 NAT Gateway A public NAT gateway is required for pulling container images. All private subnet route tables must have a route to this NAT gateway. AWS docs
3 Public subnet auto-assign IP Public subnets must have auto-assign public IPv4 address enabled. AWS docs
4 Subnet tags Private subnets: tag kubernetes.io/role/internal-elb = 1. Public subnets: tag kubernetes.io/role/elb = 1. AWS docs
# Requirement Details
1 VPC & subnet tags Tag the VPC and workload subnets with omnistrate.com/managed-by = omnistrate. This tag gates IAM permissions and selects subnets for EKS nodegroup placement — tag only the subnets you want workloads in.
2 DNS settings Enable DNS hostnames (enableDnsHostnames) and DNS resolution (enableDnsSupport) on the VPC.
3 Egress Workload subnets need outbound internet via NAT Gateway, Transit Gateway, or VPN. Required for Helm binary downloads and container image pulls during dataplane bootstrap.
4 Management VPC Endpoint Create a single Interface VPC Endpoint targeting the PrivateLink service name Omnistrate provides after account onboarding, with:
• Tag Name = omnistrate-byoc-private-vpce-<provisioner-hc-id>
• Security-group allowing inbound TCP 8443–8506 from the VPC CIDR
5 Cross-region (if applicable) If the customer's VPC and the PrivateLink service are in different AWS regions, pass --service-region <region> when creating the VPC Endpoint (or service_region in Terraform). Do not enable private DNS — AWS does not support it for cross-region interface endpoints.
6 Subnet tags (optional) Private subnets: tag kubernetes.io/role/internal-elb = 1. Public subnets: tag kubernetes.io/role/elb = 1. Not mandatory for PrivateLink deployments, but recommended if you plan to use internal load balancers.

Note

Omnistrate provides the VPCE service name and the provisioner host-cluster ID after the account is onboarded — both are needed to create the management VPC Endpoint.

For full details on the PrivateLink VPC topology options, see Imported VPC requirements for BYOC PrivateLink.

How to get started

When creating an instance, your customer can specify VPC id as value of cloud_provider_native_network_id input parameter, and rest of things will be same as regular BYOC experience.