Help Center/ Distributed Cache Service/ Best Practices/ Using ELB for Public Access to DCS
Updated on 2023-06-09 GMT+08:00

Using ELB for Public Access to DCS

Currently, DCS Redis 4.0, 5.0, and 6.0 instances cannot be bound with elastic IP addresses (EIPs) and cannot be accessed over public networks directly. This section describes how to access a single-node, master/standby, read/write splitting, or Proxy Cluster instance or a node in a Redis Cluster instance through public networks by enabling cross-VPC backend on a load balancer.

  • Due to cluster node address translation, you cannot access a Redis Cluster as a whole. You can only access individual nodes in the cluster.
  • Do not use public network access in the production environment. Client access exceptions caused by poor public network performance will not be included in the SLA.

The following figure shows the process for accessing DCS through ELB.

Figure 1 Process for accessing DCS through ELB

Configurations

  1. Create a VPC or use an existing one.
  2. Buy a DCS Redis instance. Record the IP address and port number of the instance.
  3. Create a dedicated load balancer.

    • A shared load balancer does not support cross-VPC backend servers. Therefore, it cannot be bound to a DCS instance.
    • For Specification, select Network load balancing (TCP/UDP).
    • To access the DCS instance over public networks, enable Cross-VPC Backend when creating a dedicated load balancer.

  4. Add a TCP listener to the dedicated load balancer.

    1. When adding a backend server, click the Cross-VPC Backend Servers tab and then click Add Cross-VPC Backend Server.
    2. In the Add Cross-VPC Backend Server dialog box, enter the IP address and port number of your DCS instance.
    3. A Redis Cluster DCS instance contains multiple master/replica pairs. When configuring a cross-VPC backend server, you can add the IP address and port number of any master or replica node.
    4. If you enable Health Check, you do not need to manually configure the port. By default, the service port of the backend server will be used.

  5. Create a VPC peering connection. For the local VPC, select the VPC where your load balancer is located. For the peer VPC, select the VPC where your DCS instance is located.

    Even if your load balancer and DCS instance are in the same VPC, you still need to create a VPC peering connection. For the local VPC, select the VPC where your load balancer and DCS instance are located. For the peer VPC, select another VPC.

  6. Click the name of the VPC peering connection to go to its details page. Obtain Local VPC CIDR Block and Peer VPC CIDR Block.

  7. Configure local and peer routes for the VPC peering connection.

    1. On the Local Routes and Peer Routes tab pages, click the link to go to the route tables page.

    2. Local route: On the summary page of local routes, click Add Route. In the displayed Add Route dialog box, set Destination to the value of Peer VPC CIDR Block of the VPC peering connection, set Next Hop Type to VPC peering connection, set Next Hop to the VPC peering connection created in 5, and click OK.
    3. Peer route: On the summary page of peer routes, click Add Route. In the displayed Add Route dialog box, set Destination to the value of Local VPC CIDR Block of the VPC peering connection, set Next Hop Type to VPC peering connection, set Next Hop to the VPC peering connection created in 5, and click OK.

      If the load balancer and the DCS instance are in the same VPC, you do not need to add a peer route.

  8. Perform a health check on the IP address of the DCS instance. If the health check result is Healthy, the added cross-VPC backend IP address can be used.

    1. On the Elastic Load Balance page, click the name of the created load balancer. The basic information page of the load balancer is displayed.
    2. On the Backend Server Groups > IP as Backend Servers tab page, view the health check result of the DCS instance IP address.

Connecting to the DCS Instance Through ELB

  • Connecting to a node in a Redis Cluster DCS instance through ELB
    1. View the basic information of the load balancer created in 3.

    2. Buy an ECS, log in to it, and install the Redis client by referring to redis-cli.
    3. On the Redis client, connect to the DCS instance using the IP address and port number configured in 4. If you use the EIP and port number of the load balancer, an error will be reported.

  • Connecting to a single-node, master/standby, read/write splitting, or Proxy Cluster DCS instance through ELB
    1. View the IPv4 EIP and port number of the load balancer created in 3.

    2. Buy an ECS, log in to it, and install the Redis client by referring to redis-cli.
    3. Use redis-cli to access the load balancer using its EIP and port number (which is 80).

    4. Write a key through ELB.

    5. Log in to the DCS console. On the Cache Manager page, choose More > Connect to Redis in the row that contains the DCS instance created in 2. Check whether the key written in 4 exists.