Deployment guide

Apache Ignite

Overview

Apache Ignite is a distributed in-memory database and compute grid. It keeps the hot dataset in RAM for memory-speed reads and writes, and it persists data durably to disk.

This SecureAnyCloud image runs a single Ignite node with native persistence enabled, so your data survives restarts on a dedicated Azure data disk. It installs Apache Ignite 2.16.0 (the official Apache binary release into /opt/ignite) and runs it on OpenJDK 11 as a dedicated ignite system user. Ignite authentication is enabled, and a unique password is rotated into the cluster on first boot. You manage the node with the bundled control.sh and sqlline.sh CLIs and the thin-client SQL port.

What you get:

  • Apache Ignite 2.16.0 from the official Apache binary release, on OpenJDK 11.
  • Native persistence (work directory, persistence store and WAL) on a dedicated 40 GiB Azure data disk at /var/lib/ignite.
  • A unique per-VM password generated on first boot, with no shared default credential.
  • Ignite authentication enabled, with the node bound to 127.0.0.1 only.
  • The thin-client and JDBC SQL port 10800 on loopback, not exposed publicly.
  • 24/7 SecureAnyCloud support.

Ignite listens on 127.0.0.1 only. There is no web console. GridGain Control Center is a separate commercial product and is not shipped. The SQL port is not opened to the internet. Connect locally on the VM or over an SSH tunnel.

Prerequisites

You need:

  • An active Azure subscription, an SSH key pair, and a VNet and subnet in the target region.
  • A VM size of Standard_B4ms (4 vCPU / 16 GiB RAM) as a good starting point, because Ignite is memory-hungry.
  • A network security group (NSG) rule that allows inbound 22/tcp from your management network. No inbound application ports are needed, because you reach Ignite over the SSH tunnel.

Step 1 - Deploy from the Azure Marketplace

Sign in to the Azure Portal and choose Create a resource. Search the Marketplace for Apache Ignite by SecureAnyCloud, and select Create.

On the Basics tab, 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 choose Review + create, then Create.

Step 2 - Deploy from the Azure CLI

# Accept the Marketplace terms once per subscription (required before the first CLI deploy)
az vm image terms accept --urn sac1647283583153:apache-ignite-ubuntu-24-04:default:latest
az vm create \
  --resource-group <your-rg> \
  --name apache-ignite \
  --image sac1647283583153:apache-ignite-ubuntu-24-04:default:latest \
  --size Standard_B4ms \
  --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 Apache Ignite is installed and running

ls /opt/ignite/libs | grep -oE 'ignite-core-[0-9.]+' systemctl is-active ignite

The output shows the Ignite 2.16.0 core jar and active:

ignite-core-2.16.0 active

Step 5 - Confirm the cluster state and persistence directory

The node activates automatically on first boot. Confirm that the SQL and thin-client port is listening on loopback only, and that native persistence lives on the dedicated data disk:

ss -tln | grep 10800 findmnt -no SOURCE,TARGET /var/lib/ignite
sudo ls /var/lib/ignite
LISTEN 0 50 [::ffff:127.0.0.1]:10800 *:* /dev/sda /var/lib/ignite lost+found store wal walarchive work

The work, store and wal directories on /var/lib/ignite are the native persistence store on the dedicated Azure data disk, so the keyspace and cluster metadata survive reboots.

Step 6 - Retrieve your per-VM password

Each VM generates its own Ignite password on first boot and writes it to a root-only credentials file:

sudo cat /root/ignite-credentials.txt

The file contains IGNITE_USERNAME (ignite), IGNITE_PASSWORD, the SQL connection details and the SSH tunnel instructions. Store the password in your secrets manager.

In the steps below, <IGNITE_PASSWORD> stands for the value of IGNITE_PASSWORD.

Step 7 - Run SQL with sqlline

Apache Ignite ships a JDBC SQL CLI, sqlline.sh. Connect as the ignite user with your per-VM password. Run this command in your shell, and substitute the real password for <IGNITE_PASSWORD>:

/opt/ignite/bin/sqlline.sh -u 'jdbc:ignite:thin://127.0.0.1/' -n ignite -p '<IGNITE_PASSWORD>'

At the sqlline prompt, create a table, insert rows and query them:

0: jdbc:ignite:thin://127.0.0.1/> CREATE TABLE city (id INT PRIMARY KEY, name VARCHAR); 0: jdbc:ignite:thin://127.0.0.1/> INSERT INTO city (id, name) VALUES (1, 'London'), (2, 'Paris'); 0: jdbc:ignite:thin://127.0.0.1/> SELECT name FROM city ORDER BY id; +--------+ | NAME | +--------+ | London | | Paris | +--------+ 0: jdbc:ignite:thin://127.0.0.1/> !quit

Step 8 - The authentication wall

Ignite authentication is enabled. The default ignite/ignite credential is rotated to a unique per-VM password on first boot. Neither the default password nor any wrong password authenticates. Only the per-VM password in your credentials file works.

To see the rejection, attempt a connection with a wrong password (substitute any wrong value). Ignite refuses the connection with an authentication error, while the per-VM password from Step 6 connects successfully.

Step 9 - Inspect the cluster with control.sh

The bundled control.sh utility reports cluster state and topology. Authentication is enabled, so pass your per-VM credentials. Substitute the real password for <IGNITE_PASSWORD>:

/opt/ignite/bin/control.sh --state --user ignite --password '<IGNITE_PASSWORD>'

The output shows the cluster ID, the tag and the state, which is ACTIVE.

Step 10 - Connect remotely over an SSH tunnel

Ignite listens on 127.0.0.1 only (ports 10800, 47500, 47100). It is not exposed publicly, which is the secure default. To reach the SQL port from your workstation, open an SSH tunnel and point a local JDBC client (or a local sqlline) at localhost:10800:

# On your workstation:
ssh -L 10800:127.0.0.1:10800 azureuser@<vm-public-ip>
# In another terminal, point a thin-client / JDBC tool at:
# jdbc:ignite:thin://127.0.0.1:10800/ user=ignite password=<IGNITE_PASSWORD>

For remote access without a tunnel, bind Ignite to a private NIC and protect it with TLS. Never expose 10800 to the internet without transport encryption.

Maintenance

  • Persistence. The work directory, persistence store and WAL live on the dedicated data disk at /var/lib/ignite. The cluster state survives reboots, and you can resize the volume independently.
  • Password. Rotate it from a sqlline session with ALTER USER "ignite" WITH PASSWORD '<new-password>';, then update your credentials store.
  • Configuration. Edit /etc/ignite/ignite-config.xml (data region sizes, ports, persistence paths) and the JVM options in /etc/ignite/ignite-env.sh. Then run sudo systemctl restart ignite.
  • Cluster control. Use /opt/ignite/bin/control.sh for state, baseline and topology operations. Pass --user and --password.
  • Security patches. unattended-upgrades stays enabled, so the OS keeps receiving security updates automatically.

Support

SecureAnyCloud provides 24/7 expert support for this image. Contact sales@secureanycloud.com.

Apache Ignite and Apache are trademarks of the Apache Software Foundation. This image is provided by SecureAnyCloud and is not affiliated with or endorsed by the Apache Software Foundation. GridGain Control Center is a commercial product and is not included.

Deploy on Azure

Launch Apache Ignite on Ubuntu 24.04 LTS on Azure with 24/7 support from SecureAnyCloud.

View this image

Need Help?

Our support team is available 24/7.

sales@secureanycloud.com

Deploy on Azure