I’m currently running the latest Open edX Ulmo release using Tutor 21.0.2 on a single AWS EC2 instance. We have also enabled Aspect for analytics reporting.
At the moment, all services (LMS, CMS, and Aspect) are hosted on the same instance. However, we are observing that Aspect is consuming a significant amount of system resources, which is impacting overall performance.
I would like to explore moving Aspect to a separate EC2 instance and had a few questions:
Is it possible to deploy Aspect independently on a different EC2 instance while keeping LMS/CMS on the primary server?
If yes, what would be the recommended approach or architecture for this setup?
What configurations (Tutor, Docker, networking, etc.) need to be updated to support this separation?
How will Aspect capture LMS events in this distributed setup?
Do we need to configure any event pipeline, data sharing, or message broker between instances?
Are there any best practices or reference implementations for scaling Aspect separately?
Any guidance, documentation links, or real-world experiences would be greatly appreciated.
I’m curious if you can see what is taking up resources on the server. My guess would be that it’s ClickHouse database, which is fairly easy to break out. If you see Superset causing issues that may be a bug or misconfiguration that we can fix. If it is the lms-worker containers, that might be a little tricky. Superset would be pretty challenging to break out from a Tutor local instance.
To move ClickHouse you could go to a SaaS provider like ClickHouse Cloud or Altinity, or run your own EC2 server (but you would need to manage the security, backups, etc yourself). Once you had a server running, instructions for updating your Tutor settings are here.
Migrating all of your existing data is a somewhat complicated topic, but boils down to either copying your existing database over (which isn’t documented because there are several possible ways), or rebuilding it from scratch by doing a full backfill as documented here.
I’m happy to go into details if you end up going that route, or follow up if you have more information on which services are causing issues.