Do You Need an RDS Load Balancer?
NOTE: this post focuses on resource load balancing, i.e., balancing user sessions across multiple Remote Desktop host servers, rather than IP traffic load balancing.
Microsoft® Remote Desktop Services (RDS) provides a centralized platform for delivering and managing Windows®-based applications and desktops to users via Microsoft’s remote desktop protocol (RDP).
RDS components work together to execute different server roles, including load balancing, to publish Windows apps. Load balancing is a critical function of an application or desktop publishing system for a variety of reasons:
- Performance improvement: Load balancing distributes incoming network traffic across multiple servers, preventing any one server from being overwhelmed with requests.
- Increased availability: Load balancing helps to ensure that the system remains available even if one or more servers fail; by distributing traffic across multiple servers, load balancing ensures there are always servers to handle requests.
- Enhanced scalability: load balancing makes it easier to scale the system by adding or removing servers as needed.
- Reduced downtime: Load balancing can detect failed servers and redirect traffic away from them, minimizing the impact of server failures on the entire system.
- Reduces risk: Load balancing can distribute traffic across multiple firewalls, which helps protect against distributed denial-of-service (DDoS) attacks and other threats.
When Should You Add an RDS Load Balancer?
As organizations using RDS to share applications grow, load balancing becomes increasingly critical to ensure user satisfaction, a fully leveraged infrastructure, and reduced risk. For a small organization with local employees sharing one or two productivity apps, load balancing may not be critical. However, for an organization like an ISV with hundreds or thousands of customers that expect a great user experience, load balancing is enormously important to get right.
The Microsoft RDS platform includes Remote Desktop Connection Broker (RD Connection Broker), which acts as a load balancer for RDS, managing connections between servers in the server farm, load-balancing incoming traffic, and assigning users to a server to access the app published on that server.
Unfortunately, RD Connection Broker’s load balancing capabilities are limited to two methods: distributing connections based on session count and server weight. Session count defines the number of total sessions on a server. Server weights work in a ratio relative to one another; servers that are more heavily weighted will receive more user requests than servers assigned a lower weight.
While these approaches are adequate for lower user counts, as the user number grows, servers are added to accommodate growth, and the infrastructure becomes more complex, many organizations will outgrow the RD Connection Broker’s load balancing limitations and consider replacing the RDS load balancer with a third-party load balancer that provides more configuration options.
This applies especially to Windows ISVs, for whom customer satisfaction and reduced risk are business-critical issues that are directly impacted by load balancing issues.
It is possible to replace RD Connection Broker with a dedicated third-party load balancer to better control load balancing and improve server performance. Every cloud services company offers load balancing as a service option, with a variety of load balancing methods to choose from—check with your provider for more details and costs.
{{CTAEMBED_IDENTIFIER}}
Which Load Balancing Rule Works Best?
Modern load balancers can route connections using a wide variety of rules based on certain conditions. Here are some examples:
- Round-robin: this is the simplest load balancing rule, where traffic is evenly distributed across multiple backend servers in a circular manner as the system passes each new connection request to the next server in line.
- Least connections: this rule directs traffic to the server with the fewest active connections. This ensures that the load is evenly distributed across all servers, even if they have different processing capacities.
- IP-based routing: traffic is directed to specific servers based on the IP address of the incoming request. This can be useful in cases where certain IP addresses need to be directed to specific servers.
- Path-based routing: traffic is routed to different backend servers based on the path of the incoming request. For example, requests to /api can be directed to one set of servers, while requests to /images can be directed to another set of servers.
- Session persistence: this rule ensures that requests from a particular client are always directed to the same backend server. This can be useful for applications that require stateful connections, where client data generated in one session is saved for use in the next session with that client.
- Geolocation routing: traffic is routed to specific servers based on the geographical location of the client. This can be useful for applications that have different content or functionality based on the client’s location. Another example is routing clients located in the EU to servers that are secured in compliance with GDPR regulations.
Has Your Organization Outgrown its RDS Load Balancer?
If your RDS application publishing infrastructure is not providing your users with a great user experience, or is proving to be increasingly difficult and expensive for IT to manage, consider switching to GO-Global.
GO-Global is an application publishing solution providing multi-user access to Windows applications from any location, device, and operating system. GO-Global fully replaces Microsoft functionality including multi-session kernel, Remote Desktop clients, display driver, protocol, internet gateway and management tools. which can save at least 40% over other multi-user remote access solutions.
And, when deployed on cloud services like Amazon Web Services (AWS), Windows Azure, and Oracle Cloud Infrastructure, GO-Global leverages that cloud services’ existing infrastructure and security and scalability features—including load balancing—to deliver high functionality with less complexity and cost.
To learn more about GO-Global, request a demo here or download a free 30-day trial.
Consider GO-Global’s built-in capabilities to support ISVs