Egress PrivateLink Endpoints Setup Guide: RDS and Self-Managed Services on AWS for Confluent Cloud¶
This topic presents the steps for setting up Egress PrivateLink Endpoints for Amazon Relational Database Service (RDS) and self-managed services on AWS and Confluent Cloud to enable fully managed connectors in Confluent Cloud using AWS PrivateLink.
Note
The steps for RDS in this documentation are meant for testing purposes. For production, the recommendation is to utilize RDS Proxy as described in this document since RDS supports dynamic IPs and multi-zone type deployments.
Step 1. Obtain instance details¶
Obtain the instance details for RDS.
Go to the instance page and note down the endpoint, the port, and the zone.
The following are example entries for Postgres RDS.
Obtain the private IP address using the following commands from the machine with access to the RDS instance.
- In Windows:
nslookup [rds-endpoint]
- In Linux and MacOS:
dig [rds-endpoint]
- In Windows:
Obtain the instance details for self-managed services.
Go to the instance page and note down the private IP address and the zone of the instance.
The following are example entries for an EC2 instance.
Step 2. Create a target group¶
In the AWS EC2 Dashboard, browse to Load Balancing → Target Groups.
Click Create target group.
Specify the group details:
- Choose a target type: IP addresses
- Target group name: The name of the target group
- Protocol: TCP
- Port: The port number used by the service (for example, 5432 for Postgres)
- VPC: VPC where service is hosted
- Health check protocol: TCP
Click Next.
Register the targets.
- Network: Select the correct network.
- Enter an IPv4 address from a VPC subnet: The private IP address of the instance captured above.
- Ports: check that the port number is correct.
Click Include as pending below.
Review targets.
Ensure that proper private IP address, the correct port number, and the zone are listed for your service.
Click Create target group.
Step 3. Create a load balancer¶
- In the AWS EC2 Dashboard, browse to Load Balancing → Load Balancers.
- Click Create load balancer.
- Click Create to create a Network Load Balancer.
- Specify the Basic configuration settings.
- Load balancer name: The name of your load load balancer.
- Scheme: Internal
- IP address type: IPv4
- Specify the Network mapping settings.
- VPC: Select the VPC where you want to deploy the load balancer.
- Mappings: Select the associated subnets.
- IPv4 address: Leave the Private IPv4 address field unchanged.
- In the Security groups section, ensure that the inbound rule for the port number is applied.
- Specify the Listeners and routing settings.
- Protocol: TCP
- Port: The port number of the service
- Forward to: The target created in the previous Step 2 section.
- Click Create load balancer.
- Wait for the load balancer status to change to “Active”.
Step 4. Create an endpoint service¶
In the AWS VPC Dashboard, browse to Virtual private cloud → Endpoint services.
Click Create endpoint service.
Specify the Endpoint service settings.
- Name: name endpoint service
- Load balancer type: Network
In the Specify Available load balancers section, select the network load balancer created in Step 3.
Specify the Additional settings.
- Require acceptance for endpoint: Acceptance required
- Supported IP address types: IPv4
Click Create.
Note the Service name of the created endpoint service.
Step 5. Allow Confluent principal¶
Obtain Confluent’s ARN in the Confluent Cloud Console.
Browse to your environment and its network, and select the associated PrivateLink network.
Click the Egress PrivateLink Endpoints tab.
In the AWS console, in the Allow principals tab of the created endpoint, click Allow principals.
Specify Confluent’s ARN.
Step 6. Create an Egress PrivateLink Endpoint¶
In the Network Management tab of the desired Confluent Cloud environment, click the Confluent Cloud network you want to add the PrivateLink Endpoint to. The Connection Type of the network needs to be “PrivateLink Access”.
Click Create endpoint in the Egress connections tab.
Click the service you want to connect to. Select Other if you do not see the specific service.
Follow the guided steps to specify the field values, including:
Name: Name of the PrivateLink Endpoint.
PrivateLink service name: The name of the PrivateLink service.
The service name is the one noted above, in the last step of the Step 4 section.
Create an endpoint with high availability: Check the box if you wish to deploy an endpoint with High Availability.
Endpoints deployed with high availability have network interfaces deployed in multiple availability zones.
Click Create to create the PrivateLink Endpoint.
If there are additional steps for the specific target service, follow the prompt to complete the tasks, and then click Finish.
Step 7. Accept the endpoint connection request¶
In the AWS console, when the PrivateLink Endpoint status changes to “Pending accept”,
In the AWS console, in the Endpoint connections tab of the endpoint service, select the associated Endpoint ID.
Click Actions, and Accept. Type in
accept
and click Accept.The status of the PrivateLink Endpoint will transition to “Ready” state.
Step 8. (Optional) Create the DNS record¶
- When the PrivateLink Endpoint status transitions to “Ready”, click Create DNS record in the DNS tab, or click Create Record on the associated PrivateLink Endpoint tile.
- Specify the following:
- PrivateLink Endpoint: The Egress PrivateLink Endpoint you created in the Step 6 section.
- Domain: Associated service endpoint (
<service>.<region>.amazonaws.com
)
- Click Save to create the record.
Step 9. Create the Connector¶
When the DNS Record status transitions to “Ready”, you can create the connector.
For the steps to create the connector, refer to the connector-specific documentation that is listed for your specific connector in Supported connectors.
If no DNS record was created, you will need to use the VPC endpoint DNS name for the connector endpoint configuration (i.e. hostname).
Troubleshooting¶
Issue: Connector is unable to connect to the target system even with the Egress PrivateLink Endpoint in the Ready state¶
Possible cause: There could be a zonal mismatch.
Solution: Enable cross-zone load balancing on your load balancer and try again.
In the EC2 Dashboard, browse to Load Balancing → Load Balancers, and click your load balancer.
Click Actions, and select Edit load balancer attributes.
In Availability Zone routing configuration, select Enable cross-zone balancing.