Set up high availability in AWS
Configure high availability for Cloud Management Platform in AWS
5 minute read
Create the required number of Cloud Management Platform (CMP) instances. You can configure high availability on-premises, in AWS, or in Azure.
Review the appliance reference architecture before configuring high availability.
Start small and upgrade if required after monitoring usage.
At a high level, the following tasks are required to configure high availability for CMP.
Steps may vary depending on your cloud service provider.
CMP uses the Apache HTTP Server, which runs as a httpd process on the appliance.
If using multiple web servers, we recommend deploying them behind a load balancer to distribute traffic.
Refer to the reference architecture load balancer requirements for details.
CMP web servers do not need to run the job engine or database service.
To create a web server, clone an existing CMP web server, or run the CMP installer on a new VM.
Ensure each web server has access to the required shared directories, as described in the reference architecture.
Then perform the following steps:
The instance does not require the job engine services.
Open the job engine supervisord configuration file located at /etc/supervisord.d/jobengine.conf for editing.
Set autostart and autorestart to false, and save the file.
Run the following command to reload the configuration files.
Use sudo su - before running supervisorctl to access elevated permissions.
supervisorctl reload
The instance does not require PostgreSQL.
Run the following command to stop PostgreSQL and prevent it from starting during instance reboot. The service is postgresql-18 on nodes installed with CMP 2026.3.97 or later, and postgresql-14 on older nodes.
systemctl stop postgresql-18 && systemctl disable postgresql-18
Update the database settings to point to the external database.
Open settings_local.py and copy the DATABASES section.
Open customer_settings.py for editing, and paste the DATABASES section.
Update the HOST, USER, and PASSWORD values in the DATABASES section to align with your database:
HOST: <database-ip-or-fqdn>
USER: <database-username>
PASSWORD: <database-password>
CMP runs its job engine through supervisor, which can be controlled through supervisorctl commands.
Manage job engine processes by editing the configuration file at /etc/supervisord.d/jobengine.conf.
Ensure there are no jobs running.
Stop all job engine processes.
supervisorctl stop jobengine:*
CMP job engine servers do not need to run the web service or database service.
To create a job engine server, clone an existing CMP job engine server, or run the CMP installer on a new VM.
Ensure each job engine has access to the required shared directories, as described in the reference architecture.
Then perform the following steps:
The instance does not require Apache.
Run the following command to stop the web server process and prevent it from starting during instance reboot.
systemctl stop httpd && systemctl disable httpd
The instance does not require PostgreSQL.
Run the following command to stop PostgreSQL and prevent it from starting during instance reboot. The service is postgresql-18 on nodes installed with CMP 2026.3.97 or later, and postgresql-14 on older nodes.
systemctl stop postgresql-18 && systemctl disable postgresql-18
Update the database settings to point to the external database.
Open settings_local.py and copy the DATABASES section.
Open customer_settings.py for editing, and paste the DATABASES section.
Update the HOST, USER, and PASSWORD values in the DATABASES section to align with your database:
HOST: <database-ip-or-fqdn>
USER: <database-username>
PASSWORD: <database-password>
Do this only if you run more than one job engine server. With several engines, the orphaned job cleanup can cancel jobs that another engine is still running. With the cleanup disabled, a job whose worker has died stays running until someone cancels it.
Disable the feature. The setting is stored in the shared database, so run this once, from any node:
/opt/cloudbolt/manage.py features --disable jobengine::cancel_orphan_jobs
So that an upgrade does not turn the cleanup back on, add the following to customer_settings.py on each job engine server and save the file:
from settings import FEATURE_REGISTRY
FEATURE_REGISTRY["jobengine::cancel_orphan_jobs"] = False
Confirm the change. Job engine workers pick it up within about a minute.
/opt/cloudbolt/manage.py features --list
Refer to the job engine documentation for additional information.
You can set up a PostgreSQL cluster or replication topology as desired to support CMP. For example, PostgreSQL database servers can be configured to support one-way replication or configured as a redundant cluster.
Refer to the PostgreSQL documentation for more information on configuring replication. To upgrade a CMP-managed database from PostgreSQL 14, see Upgrade to PostgreSQL 18.
If you are unfamiliar with PostgreSQL administration, we recommend using a hosted PostgreSQL service.
Configure high availability for Cloud Management Platform in AWS
Configure high availability for Cloud Management Platform in Azure