AWS PrivateLink
AWS PrivateLink enables Vuon to securely connect to your self-hosted databases and services over a private connection within the AWS network. Traffic between Vuon and your infrastructure never traverses the public internet.
Managed services with native PrivateLink
Some managed services have their own PrivateLink integrations with service-specific setup steps:
- Redshift (RA3/Serverless): Uses Redshift-managed VPC endpoints with cross-account access grants. See our Redshift setup guide β
- Redshift (DC2/DS2): DC2 and DS2 node types do not support native Redshift-managed VPC endpoints. Use the self-hosted setup below to create an NLB in front of your cluster.
- Snowflake: Has a dedicated AWS PrivateLink integration with Snowflake-specific service names
- Aurora / RDS: Does not natively expose PrivateLink endpoints. Use the self-hosted setup below (create an NLB in front of your RDS instance)
Each managed service has a different PrivateLink mechanism. For Redshift RA3 or Serverless, follow our dedicated setup guide. For Redshift DC2/DS2 clusters, follow the self-hosted setup below and select "Redshift" as your database type. For other services, contact your Vuon account manager to coordinate the setup.
Self-hosted setup
For self-hosted databases and services, follow the steps below. First, select your integration type:
β οΈ Select your integration type below. This choice applies to all setup steps on this page.
Databases
For self-hosted databases, select your database type below and follow the setup steps.
Protocol: MySQL wire protocol
Many databases use the MySQL wire protocol for client connections, including MySQL, MariaDB, StarRocks, TiDB, and SingleStore. Configure your NLB to route TCP traffic to your database nodes.
| Database | Default Port | Notes |
|---|---|---|
| MySQL / MariaDB | 3306 | Standard MySQL port |
| StarRocks | 9030 | FE query port |
| TiDB | 4000 | TiDB server port |
| SingleStore | 3306 | MySQL-compatible port |
Architecture overview
With PrivateLink, you create a VPC Endpoint Service in your AWS account that exposes your database or service. Vuon then creates a VPC Endpoint in our account that connects to your service.

Key components:
- Your VPC: Contains your database or GitLab instance
- Network Load Balancer (NLB): Routes traffic to your target instances
- VPC Endpoint Service: Exposes the NLB to authorized AWS accounts
- Vuon VPC Endpoint: Connects to your endpoint service over AWS backbone
For more details, see What is AWS PrivateLink?
Prerequisites
Before setting up PrivateLink, ensure you have:
- An AWS account with a VPC containing your deployment
- Permissions to create Network Load Balancers and VPC Endpoint Services
- A Vuon organization (contact us to initiate the setup)
Additionally for databases: database nodes accessible within your VPC on the appropriate port (see port table above), and a database user with read-only permissions (created in Step 4).
Vuon operates in us-west-2 (Oregon). Cross-region PrivateLink is supported if your infrastructure is in a different region, though same-region connections offer lower latency. Contact your Vuon account manager to coordinate the setup.
Setup steps
The setup takes approximately 30-60 minutes and requires coordination between you and your Vuon account manager.
Step 1: Create a Network Load Balancer
Create an NLB that routes traffic to your database or service. This typically takes 2-5 minutes to provision.
- Open the EC2 Console β Load Balancers β Create Load Balancer
- Select Network Load Balancer (not Application Load BalancerβAWS PrivateLink only supports NLBs)
- Configure the load balancer:
- Name:
vuon-privatelink-nlb(or your preferred name) - Scheme: Internal
- IP address type: IPv4
- VPC: Select the VPC containing your database or service
- Subnets: Select subnets in at least two Availability Zones (required for cross-region PrivateLink)
- Name:
- Configure the target group:
- Target type: IP addresses
- Protocol: TCP
- Port:
3306(MySQL/MariaDB),9030(StarRocks), or4000(TiDB) - Health check protocol: TCP
- Health check port: Same as above
- Register your database nodes as targets
- Create the load balancer and wait for it to become Active (typically 2-5 minutes)
Cross-region requires 2+ AZs. If your infrastructure is outside us-west-2, your NLB must span at least two Availability Zones. AWS will reject the endpoint service configuration otherwise. If your service only runs in a single AZ, select a second subnet in a different AZ and enable cross-zone load balancing on the NLB.
Step 2: Create a VPC Endpoint Service
Create an endpoint service backed by your NLB.
AWS Endpoint Service documentation β
- Open the VPC Console β Endpoint Services β Create Endpoint Service
- Configure the service:
- Name:
vuon-endpoint-service(or your preferred name) - Load balancer type: Network
- Available load balancers: Select the NLB created in Step 1
- Name:
- Under Additional settings:
- Acceptance required: Enable to manually approve connection requests (recommended for security)
- Supported Regions (for cross-region): If your infrastructure is not in
us-west-2, click Add supported Region and addus-west-2to allow Vuon to connect. Cross-region PrivateLink documentation β
- Create the endpoint service
- Note the Service name (format:
com.amazonaws.vpce.<region>.vpce-svc-<id>)βyou'll share this with Vuon
Cross-region checklist
- If your service is outside
us-west-2, addus-west-2under Supported Regions. - Your NLB must span at least two Availability Zones.
- A GitLab PrivateLink connection can be separate from any existing Redshift PrivateLink connection. They do not conflict.
- Share both the endpoint service name and the AWS region with Vuon.
Step 3: Allowlist Vuon's AWS account
Grant Vuon permission to create an endpoint connection to your service.
Managing permissions documentation β
- In the VPC Console β Endpoint Services, select your endpoint service
- Go to the Allow principals tab
- Click Allow principals
- Add the following ARN:
arn:aws:iam::880265510198:root
- Save the changes
This ARN allows Vuon's production AWS account to create VPC endpoints that connect to your service. Vuon cannot access any other resources in your account.
Step 4: Create credentials
Create a dedicated user for Vuon with read-only permissions.
-- Create the user
CREATE USER 'vuon_readonly'@'%' IDENTIFIED BY '<secure-password>';
-- Grant read-only access to specific databases
GRANT SELECT ON <database_name>.* TO 'vuon_readonly'@'%';
-- (StarRocks only) Optional: Grant access to statistics tables for enhanced query optimization
-- This allows Vuon to read column cardinality, null counts, and min/max values
GRANT SELECT ON _statistics_.* TO 'vuon_readonly'@'%';
-- Verify the grants
SHOW GRANTS FOR 'vuon_readonly'@'%';
Test connection locally:
mysql -h <nlb-dns-name> -P <port> -u vuon_readonly -p
Step 5: Share endpoint details with Vuon
Provide the following information to your Vuon account manager:
| Information | Example |
|---|---|
| VPC Endpoint Service name | com.amazonaws.vpce.us-east-1.vpce-svc-abc123 |
| AWS Region | us-east-1 |
| Database type | MySQL |
That's all Vuon needs to set up the PrivateLink connection on our side.
Do not share your credentials. You will enter them directly in the Vuon admin panel in Step 7.
Vuon typically creates the VPC endpoint within 1 business day. You'll receive a notification when it's ready for acceptance.
Step 6: Accept the connection request
After Vuon creates the VPC endpoint (you'll receive a notification):
- Go to VPC Console β Endpoint Services β select your service β Endpoint Connections
- Find the pending connection request from Vuon (principal:
arn:aws:iam::880265510198:root) - Select the connection and click Accept endpoint connection request
- Wait for the endpoint status to change to Available (typically 1-2 minutes)
Accept or reject connection requests documentation β
Vuon will provide you with the VPC Endpoint DNS name once the connection is available. This DNS name is required for the next step.
Step 7: Configure the connection in Vuon
Once you receive the VPC Endpoint DNS name from Vuon, configure the connection in the admin panel.
- Navigate to Admin β Databases β Add Database
- Select your database type (MySQL)
- Enter the connection details:
| Field | Value |
|---|---|
| Name | A descriptive name for this connection |
| Connection String | mysql://vuon_readonly:<password>@<vpce-dns-name>:<port>/<database> |
Replace <password> with the password from Step 4, <vpce-dns-name> with the endpoint DNS provided by Vuon, <port> with 3306 (MySQL), 9030 (StarRocks), or 4000 (TiDB), and <database> with your database name.
- Click Test Connection to verify connectivity
- Click Add Connection to save
Security considerations
Network isolation
- Traffic between Vuon and your infrastructure never leaves the AWS network
- Your database or service is not exposed to the public internet
- You control which AWS accounts can connect via the allowlist
- VPC endpoint security groups provide additional access control
Credential management
Use strong, unique passwords for the Vuon database user. Grant only the minimum required permissions (SELECT on specific databases/tables). Rotate credentials periodically and update in the Vuon admin panel. Enable audit logging on your database to monitor query activity.
Monitoring
- Monitor NLB metrics for connection health and throughput (CloudWatch metrics for NLB)
- Review VPC Flow Logs for endpoint traffic patterns (VPC Flow Logs documentation)
- Set up CloudWatch alarms for unusual activity
Troubleshooting
Endpoint stuck in "pending acceptance"
If Vuon reports that the endpoint is pending:
- Check if Acceptance required is enabled on your endpoint service (it should be)
- Go to VPC Console β Endpoint Services β select your service β Endpoint Connections
- Accept the pending connection request from Vuon
Accept or reject connection requests documentation β
Connection timeouts
If connections are timing out:
- Verify the NLB health checks are passing in the EC2 Console β Target Groups
- Check that your target instances are healthy and accepting connections on the configured port
- Review security groups on the NLB and target instances to ensure the port is allowed
- Verify the NLB subnets have routes to the target instances
- For cross-region setups, confirm
us-west-2is in your endpoint service's Supported Regions
Authentication failures
If Vuon reports authentication errors:
- Verify the credentials were entered correctly in the admin panel
- Test the credentials locally:
mysql -h <nlb-dns-name> -P <port> -u vuon_readonly -p - Check that the user has the correct grants:
SHOW GRANTS FOR 'vuon_readonly'@'%'; - Ensure the user is allowed to connect from any host (use
'%'in the user definition)
Next steps
After completing all steps:
- Vuon verifies the PrivateLink connection is active
- Your database connection appears in the Vuon admin panel with a "Connected" status
- Vuon automatically scans your database schema to discover available tables (typically within 5 minutes)
- Navigate to your workspace to start analyzing your data
If schema discovery doesn't complete, check that the user has SELECT permissions on the target tables.
Contact your Vuon account manager if you have questions or need assistance with the setup.
FAQ
Can I use PrivateLink with databases in a different AWS region?
Yes, cross-region PrivateLink is supported. Your NLB must span at least two Availability Zones, and you must add us-west-2 to your endpoint service's supported regions. Contact your Vuon account manager to coordinate the setup.
What's the difference between this and the Redshift setup guide?
The Redshift setup guide is for Redshift RA3 or Serverless clusters using native Redshift-managed VPC endpoints. This guide is for self-hosted databases, DC2/DS2 Redshift clusters, and service providers like GitLab that require manual NLB configuration.
Can I use the same NLB for multiple databases?
No, each database or service should have its own NLB and VPC endpoint service. This provides better isolation and makes it easier to manage permissions and monitor traffic.
How much does PrivateLink cost?
AWS charges for PrivateLink based on the number of VPC endpoints and data transfer. See AWS PrivateLink pricing for details. The NLB also incurs standard load balancer charges.
Can I revoke Vuon's access at any time?
Yes, you can revoke access by removing Vuon's principal from your endpoint service's allowlist or by rejecting the endpoint connection. This will immediately disconnect Vuon from your service.