AWS PrivateLink: Private Roads Between Networks
A zero-jargon, ground-up walkthrough of AWS PrivateLink — how two completely separate networks can talk to each other privately, without ever touching the public internet.
Imagine two office buildings on opposite sides of a busy city. Normally, an employee traveling between them has to walk out onto the public street, cross traffic, and risk being seen or delayed by anyone else out there. Now imagine the two buildings instead build a private, enclosed skybridge connecting them directly, floor to floor, with no need to ever step onto the public street at all. AWS PrivateLink is exactly that skybridge, but for network traffic between two AWS Virtual Private Clouds, or between your VPC and an AWS service — private, direct, and never exposed to the public internet.
1What Is AWS PrivateLink?
Normally, when one application needs to reach a service in a different network — a different VPC, a different AWS account, or an AWS service like S3 — that traffic has choices: travel across the public internet, or travel through more complex networking setups like VPC peering or a VPN, both of which can expose broader network ranges than actually necessary and add real configuration overhead.
AWS PrivateLink is a networking technology that lets you privately connect your VPC to supported AWS services, services hosted by other AWS accounts, or third-party SaaS providers — all without that traffic ever crossing the public internet, and without needing to peer entire networks together. From the consuming application’s point of view, the remote service simply appears as a private IP address inside its own VPC.
Think of ordering food through a hotel’s room service instead of walking out to a restaurant. You never leave the building, never interact with the public street, and the food simply arrives at your door — a private, direct path rather than a public one.
PrivateLink does not connect two entire networks together the way VPC peering does. It exposes just one specific service, privately, without granting broader network access — a narrower, more controlled connection.
2Architecture & Core Components
On the consuming side, a VPC creates an interface endpoint — a set of Elastic Network Interfaces (ENIs) with private IP addresses placed directly inside your subnets. Applications connect to these private IPs as if the remote service were local. On the providing side, a service is published as an endpoint service, typically backed by a Network Load Balancer that fronts the actual service instances.
Interface Endpoint
A set of private ENIs placed in your subnets, giving your VPC a private IP address to reach the remote service.
Endpoint Service
The published, consumable representation of a service, backed by a Network Load Balancer.
Network Load Balancer
Distributes incoming private connections across the actual instances or containers providing the service.
Private DNS
Optionally allows consumers to reach the service using its normal public-looking domain name, resolved privately.
Endpoint Policies
Fine-grained IAM-based policies controlling exactly what actions are permitted through a given endpoint.
Connection Acceptance
Service providers can require explicit approval before a consumer’s connection request is granted.
flowchart LR
A[Consumer VPC] --> B[Interface Endpoint - Private ENIs]
B -->|AWS PrivateLink Network| C[Endpoint Service]
C --> D[Network Load Balancer]
D --> E[Service Instance 1]
D --> F[Service Instance 2]
D --> G[Service Instance 3]
Notice that the consumer’s traffic never needs a route to the public internet, an internet gateway, or a NAT device to reach the service. The private ENI sitting inside the consumer’s own subnet is the entire connection point.
3How It Works Internally
When you create an interface endpoint, AWS provisions an ENI with a private IP address in each subnet you select, typically one per Availability Zone for resilience. Internally, PrivateLink traffic travels over Amazon’s own private network backbone, never touching the public internet’s routing infrastructure, which is precisely why it avoids the security exposure and variable latency that public internet paths can introduce.
Think of a pneumatic tube system inside an old department store, carrying cash and receipts directly between departments through sealed tubes in the walls, rather than having an employee walk the item across the public sales floor. The tube network is entirely internal and isolated from outside traffic.
When Private DNS is enabled for an endpoint, AWS automatically resolves the service’s normal domain name to the private ENI’s IP address whenever that resolution happens from inside the VPC — meaning existing application code that already calls the service by its regular hostname often needs no code changes at all to start using PrivateLink.
4Data Flow & Lifecycle
Service Publication
A provider creates an endpoint service backed by a Network Load Balancer in front of their actual service.
Endpoint Creation
A consumer creates an interface endpoint in their own VPC, referencing the provider’s published service.
Connection Approval
If required, the provider explicitly accepts the consumer’s connection request before traffic is allowed to flow.
DNS Resolution
The consumer’s application resolves the service hostname to the private ENI’s IP address inside its own VPC.
Private Data Transfer
Traffic flows entirely over AWS’s private network between the consumer’s ENI and the provider’s load balancer.
This lifecycle also applies symmetrically for both AWS-managed services (like accessing S3 or Kinesis privately from within a VPC) and third-party SaaS offerings that choose to publish their services through an endpoint service — the underlying mechanics are the same in both cases.
5Advantages, Disadvantages & Trade-offs
Advantages
- Traffic never traverses the public internet, reducing exposure
- Exposes only a specific service, not an entire network like peering does
- No need to manage overlapping IP ranges the way VPC peering can require
- Consistent, predictable performance over AWS’s private backbone
- Works across accounts and even across organizations for SaaS integrations
Disadvantages
- Interface endpoints incur hourly and data processing charges
- Only supports specific traffic patterns the endpoint service is designed for
- Requires the provider side to actively support and publish an endpoint service
- Adds a component to design and monitor compared to simple public endpoints
The trade-off is tight scope and strong isolation versus setup effort and per-endpoint cost. PrivateLink deliberately connects one specific service at a time rather than entire networks, which is safer but means each service relationship needs its own endpoint.
6Performance & Scalability
Because PrivateLink traffic runs over AWS’s own private backbone rather than the public internet, latency tends to be low and consistent, avoiding the variability that public internet routes can introduce during congestion. Interface endpoints scale automatically to handle increasing connection volume, and placing an ENI in each Availability Zone you use helps spread load and avoid cross-AZ data transfer where possible.
On the provider side, since traffic passes through a Network Load Balancer, the same NLB scaling characteristics apply — it distributes connections across many targets and scales to handle large volumes of concurrent traffic without manual intervention.
Creating an interface endpoint in only one Availability Zone, then routing all traffic through it, removes the resilience benefit of AWS’s multi-AZ design and creates an avoidable single point of failure.
7High Availability & Reliability
Interface endpoints support placing an ENI in multiple Availability Zones, meaning the loss of one AZ does not sever the private connection — traffic can continue flowing through the ENI in a remaining healthy zone. On the provider side, the underlying Network Load Balancer performs continuous health checks against backend targets, automatically routing traffic away from unhealthy instances.
A building with multiple elevators means one elevator undergoing maintenance does not strand everyone on the ground floor. Multi-AZ interface endpoints work the same way — one path being unavailable does not stop the overall connection from functioning.
Because PrivateLink connections rely on standard, well-understood AWS networking primitives — ENIs, Network Load Balancers, and VPC routing — the same reliability practices that apply broadly across AWS networking, like spreading resources across Availability Zones, apply directly here as well.
8Security
PrivateLink’s core security advantage is architectural: by design, traffic never touches the public internet, eliminating an entire category of exposure. On top of that, security groups attached to the interface endpoint’s ENIs control which resources within the consumer VPC can reach it at all.
No Public Internet Path
Traffic stays entirely on AWS’s private network between consumer and provider.
Endpoint Policies
IAM-based policies scoped to the specific endpoint, restricting exactly which actions are allowed through it.
Security Groups
Control which internal resources are permitted to reach the interface endpoint’s private IP addresses.
Explicit Connection Acceptance
Providers can require manual approval before any consumer’s connection request becomes active.
9Monitoring, Logging & Metrics
Amazon CloudWatch exposes metrics for interface endpoints, including bytes processed and active connection counts, and for the underlying Network Load Balancer on the provider side, including target health and connection counts. VPC Flow Logs can also capture traffic flowing to and from the endpoint’s ENIs for deeper network-level visibility.
Practical Scenario
An application team reports intermittent connection failures to a partner SaaS service accessed through PrivateLink. Checking the Network Load Balancer’s target health metrics on the provider’s side (shared during troubleshooting) reveals a subset of backend targets failing health checks, unrelated to PrivateLink itself — the fix lives on the provider’s backend, not the private connection.
Because PrivateLink is a networking layer rather than an application layer, most meaningful troubleshooting metrics come from the surrounding components — ENIs, security groups, and load balancers — rather than from PrivateLink having a large monitoring surface of its own.
10Deployment & Cloud Options
PrivateLink is used in two main deployment shapes. Interface endpoints connect your VPC privately to supported AWS services (like Amazon S3, Kinesis, or Secrets Manager) or to third-party services, appearing as a private IP in your own subnets. Endpoint services let you become the provider, publishing your own service to be consumed privately by other AWS accounts or customers.
| Component | Role | Typical Use |
|---|---|---|
| Interface Endpoint | Consumer side | Privately reach an AWS or SaaS service |
| Endpoint Service | Provider side | Publish your own service for private consumption |
| Gateway Endpoint | Consumer side (S3 & DynamoDB only) | Route-table based, no ENI, no hourly charge |
Worth noting: Gateway endpoints are a related but distinct mechanism, used specifically for S3 and DynamoDB, implemented through VPC route tables rather than ENIs, and carrying no hourly endpoint charge — a useful, cheaper alternative for those two specific services when interface-endpoint features are not required.
11Design Patterns & Anti-patterns
A widely used pattern is SaaS provider connectivity: a SaaS company publishes an endpoint service, and its enterprise customers connect to it privately from within their own VPCs, avoiding public internet exposure for potentially sensitive data flowing to that SaaS platform. Another pattern is centralized shared services, where a hub VPC publishes internal tools (like a shared logging or secrets service) as endpoint services, consumed privately by many spoke VPCs across an organization.
Pattern
Reaching for full VPC peering or a site-to-site VPN when the actual requirement is simply “let this one application privately call that one specific service.”
Why It Fails
Peering and VPNs expose broader network reachability than necessary, increasing the security surface and often requiring careful management of non-overlapping IP address ranges.
Better Approach
Use PrivateLink to expose exactly the one service needed, keeping the rest of each network completely unreachable from the other side.
12Best Practices & Common Mistakes
Deploy Across Multiple AZs
Place interface endpoint ENIs in every Availability Zone your application actually uses.
Scope Endpoint Policies Tightly
Restrict each endpoint’s policy to only the specific actions genuinely required.
Enable Private DNS Where Supported
Avoids application code changes by letting existing hostnames resolve privately.
Forgetting Security Group Rules
An interface endpoint with no inbound rule allowing your application’s traffic will simply appear unreachable.
Assuming PrivateLink automatically replaces the need for encryption in transit. PrivateLink keeps traffic off the public internet, but applications should still use TLS for end-to-end confidentiality between consumer and provider.
13Real-World Usage Patterns
SaaS Data Platforms
Analytics and monitoring SaaS providers commonly offer PrivateLink connectivity so enterprise customers can send sensitive telemetry data without it ever crossing the public internet.
Financial Services
Regulated financial institutions use PrivateLink to connect to critical AWS services and partner platforms while meeting strict data-in-transit compliance requirements.
Multi-Account Enterprise Architectures
Large organizations use PrivateLink to expose shared internal services — like a central identity or logging platform — to many application-owning accounts without full network peering.
14Frequently Asked Questions
15Summary and Key Takeaways
Key Takeaways
- AWS PrivateLink connects a VPC privately to a specific service, without traffic ever crossing the public internet.
- Consumers use interface endpoints (private ENIs); providers publish endpoint services backed by a Network Load Balancer.
- PrivateLink exposes only one specific service at a time, unlike VPC peering which connects entire networks.
- Multi-AZ ENI placement and NLB health checks together provide resilience against single points of failure.
- Security combines architectural isolation with endpoint policies, security groups, and optional connection approval.
- Gateway endpoints are a related, cheaper mechanism specific to S3 and DynamoDB, distinct from interface endpoints.
- PrivateLink does not replace TLS encryption — the two work together for full end-to-end protection.