Scale a Cluster
This article explains how to vertically scale an Exasol cluster on Amazon Web Services (AWS).
Vertical scaling refers to increasing or decreasing the compute power and RAM in a cluster. In an Exasol cluster deployed on AWS, vertical scaling is done by changing the EC2 instance type using the Exasol Administration API. For more information, see Choose EC2 Instance Type.
This procedure is carried out using the Administration API.
Changing the instance type will stop and restart the specified cluster. Changing the instance type for the main cluster will result in a system downtime of at least several minutes.
Prerequisites
If you are scaling the main cluster, all worker clusters must be shut down first. For more information, see Stop a Cluster.
Procedure
The following examples use curl on a Linux terminal. You can also use other interfaces and languages to execute the curl commands.
Placeholder values in the examples are styled as Bash variables, for example: $NODE_IP
. Replace these placeholders with your own values.
The option --insecure
or -k
tells curl to bypass the TLS certificate check. This option allows you to connect to a HTTPS server that does not have a valid certificate. Only use this option if certificate verification is not possible and you trust the server.
-
To get information about the database, send a
GET
request to the/api/v1/databases
endpoint.curl --insecure -X "GET" \
"https://$NODE_IP:4444/api/v1/databases" \
-H "accept: application/json" \
-H "Authorization: Basic $AUTH_TOKEN"The response includes the database ID, name, and version. Additional details are included depending on the configuration and platform.
-
To find cluster information, send a
GET
request to the/api/v1/databases/DATABASE_ID/clusters
endpoint. For example: -
To change the instance type, send a
PUT
request to the/api/v1/databases/DATABASE_ID/clusters/CLUSTER_ID/scale
endpoint. Replace the instance type in the example below with the desired instance type. For example:
Verification
To check which instance type is currently used for the nodes in a cluster, send a GET
request to the /api/v1/databases/DATABASE_ID/clusters/CLUSTER_ID
endpoint.
# REST call:
curl -k -X "GET" \
"https://$NODE_IP:4444/api/v1/databases/$DATABASE_ID/clusters/$CLUSTER_ID" \
-H "accept: application/json" \
-H "Authorization: Basic $AUTH_TOKEN"
In the response the instance type is shown in the instanceModel
parameter: