Scale with the Cloud API
This page demonstrates how to use the Aerospike Cloud API to scale your cluster. You will manually invoke the API to verify it works.
One approach to automate scaling is to connect a Grafana webhook contact point to a serverless function (such as AWS Lambda) that calls this API when alerts fire.
Prerequisites
- An API key (ID and secret) for the Aerospike Cloud API. See Create an API key. Save the secret when created - it’s only shown once.
- Your cluster ID from the Cloud Console.
Generate an API token
The Cloud API uses OAuth2. First, exchange your API key credentials for a bearer token.
-
Set your API key credentials:
Terminal window export AEROSPIKE_API_KEY_ID="YOUR_KEY_ID"export AEROSPIKE_API_KEY_SECRET="YOUR_KEY_SECRET"export AEROSPIKE_CLUSTER_ID="YOUR_CLUSTER_ID"Replace the values with your API key ID, secret, and cluster ID from the Cloud Console.
-
Generate a bearer token:
Terminal window export AEROSPIKE_API_TOKEN=$(curl -s --request POST \'https://auth.control.aerospike.cloud/oauth/token' \--header 'Content-Type: application/json' \--data "{\"client_id\":\"$AEROSPIKE_API_KEY_ID\",\"client_secret\":\"$AEROSPIKE_API_KEY_SECRET\",\"grant_type\":\"client_credentials\"}" | jq -r '.access_token') -
Verify the token was generated:
Terminal window echo $AEROSPIKE_API_TOKENYou should see a long JSON Web Token (JWT) string starting with
eyJ....
Get your cluster details
-
Retrieve your cluster details:
Terminal window curl -s "https://api.aerospike.com/v1/database/clusters/$AEROSPIKE_CLUSTER_ID" \-H "Authorization: Bearer $AEROSPIKE_API_TOKEN" | jq '{clusterSize: .aerospikeCloud.clusterSize,replicationFactor: .aerospikeServer.namespaces[0]["replication-factor"]}'{"clusterSize": 4,"replicationFactor": 2}Expected result
Scale your cluster
Cost consideration
Scaling up increases your Aerospike Cloud costs. For this tutorial, you will scale up briefly and then scale back down to minimize additional charges.
Entitlements required
Scaling requires sufficient node entitlements in your Aerospike Cloud subscription. If you receive an error about entitlements, your account may not have capacity for additional nodes. Contact your Aerospike account team or check your subscription plan.
Cluster size must be a multiple of the number of zones, and must be greater than or equal to the replication factor. For balanced replication, cluster size divided by replication factor must equal a whole number.
-
Note your current cluster size from the previous step. You will need this to scale back down.
-
Send a scale request to add nodes:
Terminal window curl -X PATCH "https://api.aerospike.com/v1/database/clusters/$AEROSPIKE_CLUSTER_ID" \-H "Authorization: Bearer $AEROSPIKE_API_TOKEN" \-H "Content-Type: application/json" \-d '{"aerospikeCloud": {"clusterSize": 6}}'Replace
6with a size larger than your current cluster (must be a multiple of the replication factor). -
Monitor the operation in the Cloud Console. The cluster status shows Updating until complete. Wait for the operation to finish before proceeding.
Scale back down
After verifying that scaling works, scale the cluster back to its original size to minimize costs.
-
Send a scale request to reduce nodes:
Terminal window curl -X PATCH "https://api.aerospike.com/v1/database/clusters/$AEROSPIKE_CLUSTER_ID" \-H "Authorization: Bearer $AEROSPIKE_API_TOKEN" \-H "Content-Type: application/json" \-d '{"aerospikeCloud": {"clusterSize": 4}}'Replace
4with your original cluster size. -
Monitor the operation in the Cloud Console. The cluster status shows Updating until the operation completes.
Wait for each scaling operation to complete before starting another. Scaling typically takes several minutes.