Private deployment

How to deploy an AI model inside your VPC

Define your private inference boundary, connect one application path, and agree on installation, workload, recovery, and operator acceptance before deployment.

To deploy a model inside your VPC, establish where inference and its dependencies run, install a compatible runtime, connect the application caller, and test the complete path. Downloading the weights is one step. The useful result is an application that can use the model within your approved boundary.

This is a scoping guide, not a tested cloud recipe or a claim of support for every model and cloud. Use a workload-specific implementation plan before changing your environment.

1. Name the requirement

“In our cloud” should identify an account, network, environment owner, and the data that must remain there. Include inputs, retrieved context, model responses, logs, and support exports.

Requirement Scope to examine Unresolved question
Private network access Private connectivity to a hosted service Is processing in another account acceptable?
Model runs in your account Model server and approved application access Which other application services remain elsewhere?
Complete private application path Caller, retrieval, storage, inference, and logging Which components must move or change?
No external runtime dependencies Runtime, identity, model artifacts, and support paths How will installation, updates, and recovery work?

A private network connection is not the same as model execution in your account. For example, AWS PrivateLink connects a VPC to a service endpoint; it does not itself move the provider’s service into your account. AWS PrivateLink concepts.

2. Choose one caller path

Identify the application action that needs inference. Write down the accepted input, expected output, authentication, timeout, and what the caller does when the service is unavailable.

For a synchronous scope, one request receives its response in the same call. A list of inputs in a request is not a durable job system. If your workload needs job IDs, persisted results, cancellation, or resumable retries, define a separate workflow contract.

Be explicit about what will be integrated. “One HTTP example” and “one existing application calling the service” are different deliverables.

3. Inventory the dependencies

Record each dependency’s destination, purpose, data transmitted, access timing, and owner. Include model acquisition, container and package registries, preprocessing, identity, telemetry, and external fallback services.

Separate installation from routine operation. An approved model download during setup is not permission for unrestricted runtime egress. Identify how each dependency fails, including whether failure could send data to an unapproved service.

Model hashes establish artifact identity. They do not prove that model behavior or dependencies are safe.

4. Qualify the installation

Record the exact model revision, license, runtime, operating system, accelerator, driver, memory, storage, and workload. Install from versioned files with secrets referenced through the approved mechanism rather than embedded in the package.

Agree on who provides private ingress, certificates, identity, logs, and network controls. Assign privileges separately for installation and runtime. For Kubernetes environments, review the official guidance on least privilege and escalation risks before approving roles. Kubernetes RBAC good practices.

An isolated network does not decide which user can access a document or invoke a tool. If those application permissions are within your scope, include them in the test plan rather than assuming the infrastructure supplies them.

5. Test the workload through the application

Define pass and fail before installation. At minimum, agree on:

  • A successful request from the actual caller.
  • Rejection of unauthorized, invalid, and oversized requests.
  • Caller behavior when inference times out or fails.
  • Resource and response targets for representative inputs and concurrency.
  • The permitted network and logging behavior during normal use and failures.
  • Restart and a failed-update recovery exercise.
  • An operator following the handover procedure.

Retain actual conditions, raw results, failed checks, and exceptions. A model loading successfully is not a capacity benchmark. A synthetic lab reference is not acceptance of your installation.

Use the deployment acceptance template to record the release, caller, thresholds, evidence, and review decision. It is unfilled; none of its checks is represented as passed.

6. Agree on updates and operation

Name owners for access, capacity, patches, application changes, model updates, monitoring, backups where needed, and incidents. Describe support hours and approvals instead of using “managed” without a service boundary.

Tenantplane’s private workflow implementation connects one synchronous application path and hands over the release. The $7,500 starter provides the inference endpoint and one client example. Infrastructure and ongoing operation are separate costs.

For hardware-based installations, use the on-premises checklist. For cost comparisons, start with the worked deployment budget. Discuss your deployment with the blocker, environment, and timing.

Published by Tenantplane, a U.S.-based private AI deployment consultancy. These are planning considerations; your deployment scope and acceptance checks depend on the actual application and customer environment.

Discuss your requirements →

See it on your cluster

Let your teams share GPUs
without the help desk.

Book a 30-minute walkthrough of your GPUs, teams and workloads.

Book a demo