Hardware Architecture Selections with the SkySQL DBaaS API

Overview

This reference page details how to select hardware selections with the SkySQL DBaaS API for SkySQL.

Select SkySQL topologies are available on both AMD64 and ARM64 hardware architectures.

Prices and available instance sizes differ depending on hardware architectures.

You may find that your workload has better price/performance depending on your choice of hardware architecture.

Hardware architectures used for SkySQL topologies are supported by MariaDB Engineering Policy.

Nodes running in AWS with a ARM64 hardware architecture use AWS Graviton processors.

Available Hardware Architectures

Hardware architecture choices are specific to the topology, region, and instance size.

Architecture

Description

amd64

Instances using the AMD64 hardware architecture, which is also known as x86_64, x86-64, and x64.

arm64

Instances using the ARM64 hardware architecture. In AWS, ARM64 instances use AWS Graviton processors.

REST Client

A REST client can use the SkySQL DBaaS API to query hardware architecture selections and choose a hardware architecture for a new service.

Query Options with REST Client

A REST client can query the SkySQL DBaaS API for the hardware architecture selections for a specific cloud provider and topology.

To see the available hardware architectures for a cloud provider and topology, use curl to call the /provisioning/v1/cpu-architectures API endpoint:

$ curl -sS --location \
   --header "Authorization: Bearer ${SKYSQL_API_KEY}" \
   'https://api.mariadb.com/provisioning/v1/cpu-architectures?provider=gcp&topology=es-single' \
   | jq .
[
  {
    "id": "c6746b68-6f6e-45cf-aaf3-046b267dd956",
    "name": "amd64",
    "display_name": "AMD64"
  }
]

For the hardware architecture that you would like to select, extract the name attribute from the output and provide that value to the /provisioning/v1/services API endpoint as the architecture attribute.

Select Option with REST Client

A hardware architecture is selected during service launch. When using a REST client, select a hardware architecture by calling the /provisioning/v1/services API endpoint with the architecture attribute set.

For example, prepare a request body containing the desired service options in a file called request-service.json:

$ cat > request-service.json <<EOF
{
  "service_type": "transactional",
  "topology": "es-single",
  "provider": "gcp",
  "region": "us-central1",
  "architecture": "amd64",
  "size": "sky-2x8",
  "storage": 100,
  "nodes": 1,
  "version": "10.6.11-6-1",
  "name": "skysql-nr-quickstart",
  "ssl_enabled": true
}
EOF

Then use curl to call the /provisioning/v1/services API endpoint to create (launch) a new database service and save the response to the response-service.json file:

$ curl -sS --location --request POST \
   --header "Authorization: Bearer ${SKYSQL_API_KEY}" \
   --header "Accept: application/json" \
   --header "Content-type: application/json" \
   --data '@request-service.json' \
   https://api.mariadb.com/provisioning/v1/services \
   | tee response-service.json | jq .

Upon success, the command will return JSON with details about the new service.

Terraform

Terraform can use the SkySQL Terraform provider to choose a hardware architecture for a new service. When using Terraform, select a hardware architecture using the architecture attribute for the skysql_service resource:

# Create a service
resource "skysql_service" "default" {
  service_type        = "transactional"
  topology            = "es-single"
  cloud_provider      = "gcp"
  region              = "us-central1"
  architecture        = "amd64"
  size                = "sky-2x8"
  storage             = 100
  nodes               = 1
  version             = "10.6.11-6-1"
  name                = "skysql-nr-quickstart"
  ssl_enabled         = true
  deletion_protection = true
  wait_for_creation   = true
  wait_for_deletion   = true
  wait_for_update     = true
  is_active           = true
}