Installation

WeBWorK and High Availability Clusters

Re: WeBWorK and High Availability Clusters

by Allan Metts -
Number of replies: 0

It's been a while since the last post here, and I haven't seen much other discussion on setting up a highly-available WeBWorK configuration in AWS.  I recently established a HA deployment at Georgia Tech, and it seems to be working well so far.  Here's what it looks like:

  • Everything automatically deployed to AWS using Terraform (infrastructure) and Ansible (server configuration)
  • WebWork configured in multiple EC2 instances (in separate AZs) behind an Application Load Balancer.  The ALB handles SSL and the associated certificates.
  • Amazon RDB as the MYSQL instance.  Better to have this managed by AWS instead of me.
  • Shared  EFS filesystem for the EC2 instances.

There is discussion upthread about what to put on the shared file system (i.e., all of /opt/webwork, or selected folders).  I settled on ONLY putting the courses and htdocs directories on the shared filesystem -- this seemed to be a happy compromise that seems to avoid inconsistent states across the various servers.

I didn't set up any symbolic links to the shared filesystem.  Instead, I simply set $webwork_courses_dir and $webwork_htdocs_dir to their respective shared folders in site.conf.

I wanted to keep log files and temporary files on the individual EC2 instances -- both to maximize performance, and to prevent messy diagnostics if something went wrong on an individual server.

We're a week into Summer semester with this configuration, and so far everything seems to be working fine.  Let me know if you spot any potential "gotchas" with this approach.