High Availability (HA)

High availability in AWS refers to the ability of a system or application to remain operational with minimal downtime by using redundant resources across multiple Availability Zones within a region.

The WorkSpaces Manager appliance is designed as a single EC2 instance that includes both IIS and MS-SQL Express. However, the solution can be configured into 2-tier or 3-tier architectures to enhance High Availability (HA). The available deployment options are as follows:

  1. 2-Tier (Basic HA):

    • Option 1: A single EC2 instance running both IIS and MS-SQL, with a Network Load Balancer (NLB). This setup provides some redundancy but is not full HA.

    • Option 2: A single EC2 instance running IIS, with the database moved to AWS RDS (MS-SQL). This also offers improved availability but does not provide full HA.

  2. 3-Tier (Full HA):

    • Full HA Option: MS-SQL is hosted in AWS RDS, and the web application (IIS) is load-balanced using a Network Load Balancer (NLB) across one or more EC2 instances. This configuration provides full HA by separating the application and database tiers and introducing redundancy at the application level.

Each option allows for different levels of scalability and resilience, with the 3-tier architecture offering the most robust High Availability solution.

Focusing on the second option, which offers full High Availability (HA), the architecture is divided into three distinct layers:

  1. Database in RDS:

    • The database is hosted on AWS RDS using the MS-SQL engine.

    • You must create the appropriate schema for initialization to support the WorkSpaces Manager application.

  2. Network Load Balancer (NLB):

    • The Network Load Balancer manages traffic across multiple EC2 instances.

    • Ensure that you have a proper DNS name configured for the load balancer, along with a valid SSL Certificate to offload TLS/SSL encryption for secure communication.

  3. .NET Application in EC2:

    • The .NET application is hosted on one or more EC2 instances running IIS.

    • Modify the environment variables to retrieve the connection details to the shared database on each EC2 instance, to ensure proper communication with the RDS database and load balancer.

    • Ensure that the EC2 instances use Sysprep to prepare them for deployment, making them reusable for scaling.

    • Configure Ec2LaunchSettings on each EC2 instance for proper initialization during boot-up, including tasks like setting the hostname, configuring networking, and ensuring the instances are ready to join the load balancer pool.

This 3-tier architecture ensures high availability and scalability by separating the application, database, and load balancing layers, providing resilience and efficient resource management.

For any assistance on how to configure a Highly Available (HA) solution for WorkSpaces Manager on your AWS account, please contact support@workspacesmanager.com.

Last updated