Databases Azure

Aerospike Community Edition on Ubuntu 24.04 on Azure User Guide

| Product: Aerospike Community Edition on Ubuntu 24.04 LTS on Azure

Overview

Aerospike Community Edition is a high-performance, distributed key-value / NoSQL database built for predictable low latency at scale. It stores and serves records over its native client protocol and ships with the aql, asadm and asinfo command-line tools. The cloudimg image installs the stock upstream Aerospike Community Edition 8.1.2.3 server (aerospike/aerospike-server, AGPL-3.0) plus the matching aerospike-tools, runs it as a single-node cluster (cluster of 1) with one test namespace, and persists the keyspace to a dedicated Azure data disk at /opt/aerospike/data. Backed by 24/7 cloudimg support.

What is included:

  • Aerospike Community Edition 8.1.2.3 server (asd) plus aerospike-tools (aql, asadm, asinfo)
  • A single-node cluster with one test namespace, replication-factor 1
  • Persistent storage on a dedicated 16 GiB Azure data disk mounted at /opt/aerospike/data
  • Loopback-only listener on port 3000 (not exposed publicly)
  • 24/7 cloudimg support

This is a datastore product: Aerospike listens on 127.0.0.1:3000 only. Community Edition has no built-in authentication (that is an Enterprise-only feature), so the port is not opened to the internet - connect locally on the VM or over an SSH tunnel.

Prerequisites

An active Azure subscription, an SSH key pair, and a VNet + subnet in the target region. Standard_B2s (2 vCPU / 4 GiB RAM) is a good starting point. NSG inbound: allow 22/tcp from your management network. No inbound application ports are needed because Aerospike is reached over the SSH tunnel.

Step 1 - Deploy from the Azure Marketplace

Sign in to the Azure Portal, choose Create a resource, search the Marketplace for Aerospike Community Edition by cloudimg, and select Create. On Basics pick your subscription, resource group, region and size; under Administrator account choose SSH public key and paste your key; under Inbound port rules allow SSH (22) only. Then Review + create -> Create.

Step 2 - Deploy from the Azure CLI

az vm create \
  --resource-group <your-rg> \
  --name aerospike \
  --image <marketplace-image-urn> \
  --size Standard_B2s \
  --admin-username azureuser \
  --ssh-key-values ~/.ssh/id_ed25519.pub \
  --vnet-name <your-vnet> --subnet <your-subnet> \
  --public-ip-sku Standard

Step 3 - Connect to your VM

ssh azureuser@<vm-public-ip>

Step 4 - Confirm Aerospike is installed and running

asd --version
systemctl is-active aerospike
asinfo -h 127.0.0.1 -v status

You should see the Community Edition build, an active service, and a node that reports ok:

Aerospike Community Edition build 8.1.2.3
active
ok

Aerospike version and node status

Step 5 - Inspect the node, cluster and namespace

asadm is the Aerospike admin console. Print the network view (one node, cluster size 1) and the namespace object counts:

asadm -h 127.0.0.1 -e "info network; info namespace object"
~~~ network ~~~
          Node|         Node ID|            IP|    Build|Migrations|Cluster Size|Principal      |Uptime
localhost:3000|*BB9587F27482200|127.0.0.1:3000|C-8.1.2.3|   0.000  |           1|BB9587F27482200|00:00:48

~~~ namespace object ~~~
Namespace|          Node|Repl Factor|Total Records
test     |localhost:3000|          1|      0.000

The C- build prefix confirms this is Community Edition, Cluster Size 1 confirms a healthy single-node cluster, and test is the ready namespace.

Aerospike node and namespace info via asadm

Step 6 - Store and retrieve data with aql

aql is the Aerospike query tool. List the namespaces, insert a record into test, then read it back:

aql -h 127.0.0.1 -c "SHOW NAMESPACES"
aql -h 127.0.0.1 -c "INSERT INTO test.demo (PK, user, city) VALUES ('u1', 'ada', 'london')"
aql -h 127.0.0.1 -c "SELECT * FROM test.demo WHERE PK='u1'"
+------------+
| namespaces |
+------------+
| "test"     |
+------------+

OK, 1 record affected.

+------+-------+----------+
| PK   | user  | city     |
+------+-------+----------+
| "u1" | "ada" | "london" |
+------+-------+----------+
1 row in set (0.001 secs)

The record you PUT comes back exactly - the database is storing and serving data.

Aerospike aql insert and select round-trip

Step 7 - Connect remotely over an SSH tunnel

Aerospike listens on 127.0.0.1:3000 only and is not exposed publicly - this is the secure default, because Community Edition has no authentication. To reach it from your workstation, open an SSH tunnel and point a local Aerospike client (or the tools) at 127.0.0.1:3000:

# On your workstation:
ssh -L 3000:127.0.0.1:3000 azureuser@<vm-public-ip>

# In another terminal, with local aerospike-tools:
asinfo -h 127.0.0.1 -p 3000 -v namespaces
test

The per-VM connection details are recorded at first boot in a root-only file:

sudo cat /root/aerospike-connection.txt

For production remote access without a tunnel, bind Aerospike to a private NIC on a locked-down subnet, or run the client applications inside the same VNet. Never expose port 3000 to the internet, because Community Edition has no authentication or transport encryption.

Aerospike remote access over an SSH tunnel

Maintenance

  • Persistence: the test namespace persists to /opt/aerospike/data/test.dat on the dedicated data disk, so the keyspace survives reboots and the volume is independently resizable.
  • Configuration: edit /etc/aerospike/aerospike.conf (for example the namespace storage size, additional namespaces, or replication-factor) and run sudo systemctl restart aerospike.
  • Health: asinfo -v status returns ok on a healthy node; asadm -e info shows the cluster and namespace at a glance; logs are in the journal (journalctl -u aerospike).
  • Security patches: unattended-upgrades remains enabled so the OS continues to receive security updates automatically.
  • Upgrading to Enterprise: Community Edition has no authentication, authorization or TLS. For those features, cross-datacenter replication or strong consistency, evaluate Aerospike Enterprise (a separate commercial product from Aerospike).

Source code

Aerospike Community Edition is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0). This image ships the stock, unmodified upstream server; all cloudimg configuration is external, in /etc/aerospike/aerospike.conf. The corresponding source for the server in this image is available at github.com/aerospike/aerospike-server (release 8.1.2.3).

Support

cloudimg provides 24/7 expert support for this image. Contact support@cloudimg.co.uk.

Aerospike is a trademark of Aerospike, Inc. This image ships Aerospike Community Edition and is provided by cloudimg; it is not affiliated with or endorsed by Aerospike, Inc.