For MySQL
MySQL with GTID replicas on a private network
Free to sign up. No egress fees on any product.
Why MySQL on Edge
InnoDB on local NVMe, tuned by you
NVMe with no IOPS bills
Local NVMe on every VM. No burst credits, no provisioned IOPS and no throttling on the busiest night of the month.Replication, your way
Async, semi-sync or Group Replication between VMs on a private network. Same MySQL features, none of the lock-in.Binlogs and dumps to S3
Ship binary logs and nightly dumps to Edge Storage for point-in-time recovery, priced like storage rather than snapshots.MariaDB or Percona if you prefer
Same install pattern, different package. Run MySQL, MariaDB or Percona Server; it's your VM and your call.Tune it yourself
Size innodb_buffer_pool_size to the RAM you have, pick your engines and plugins, and benchmark with sysbench on real hardware.Private by default
Bind to the private interface and open 3306 only to your network range. The database never faces the internet.
Reference architecture
A GTID primary with one async replica
app VMs
Laravel, WordPress, Django
proxysql :6033
optional read/write split
mysqld :3306
mysql-1, the MySQL 8.0 primary
mysql-2 replica
async, for reads and a warm standby
mysql-backups
nightly dumps + binlog archive
- Compute
Runs MySQL or MariaDB on a VM with its data directory on local NVMe.
- Compute
An optional async replica on a second VM, fed over the private network.
- Storage
Holds nightly dumps and the binary log archive for point-in-time recovery.
- DNS
A db. record for the primary's private address, so failover is one record change.
Deploy
Primary and replica from one bootstrap script
- 01
Save a MySQL bootstrap
${server_id} is a script parameter, filled in per VM when it's created. Ubuntu 24.04 ships MySQL 8.0; swap the package for mariadb-server if you prefer.
mysql.sh#!/bin/bash set -e export DEBIAN_FRONTEND=noninteractive apt-get update && apt-get install -y mysql-server cat > /etc/mysql/mysql.conf.d/edge.cnf <<'EOF' [mysqld] bind-address = 0.0.0.0 server_id = ${server_id} log_bin = mysql-bin gtid_mode = ON enforce_gtid_consistency = ON binlog_expire_logs_seconds = 604800 innodb_buffer_pool_size = 5G EOF systemctl restart mysql - 02
Create the primary and a replica
Attach both VMs to one private network, and add a security group that allows 3306 from 10.185.0.0/24 only.
shell$ edge compute scripts create --name mysql-8 --file mysql.sh $ edge compute create --name mysql-1 --size s-4vcpu-8gb \ --image ubuntu-24 --region london \ --script mysql-8 --script-param server_id=1 $ edge compute create --name mysql-2 --size s-4vcpu-8gb \ --image ubuntu-24 --region london \ --script mysql-8 --script-param server_id=2 - 03
Start GTID replication
Create a repl user on mysql-1 with REPLICATION SLAVE, then point mysql-2 at it. Seed the replica from a backup first if you already have data.
mysql-2CHANGE REPLICATION SOURCE TO SOURCE_HOST = '10.185.0.3', SOURCE_USER = 'repl', SOURCE_PASSWORD = '<pw>', SOURCE_AUTO_POSITION = 1, SOURCE_SSL = 1; START REPLICA; SHOW REPLICA STATUS\G - 04
Ship dumps and binlogs to Edge Storage
Run both from cron on the replica or the primary. Any S3 tool works; this uses the AWS CLI with the Edge endpoint.
shell$ mysqldump --all-databases --single-transaction \ --source-data=2 --routines --triggers | gzip | \ aws s3 cp - s3://mysql-backups/dumps/$(date +%F).sql.gz \ --endpoint-url https://storage.edge.network $ aws s3 sync /var/lib/mysql/ s3://mysql-backups/binlogs/ \ --exclude "*" --include "mysql-bin.*" \ --endpoint-url https://storage.edge.network
Prefer to hand it off? Give the job to your AI agent or have our engineers do it.
What it costs
A replicated MySQL pair, itemised
- No per-IOPS or per-snapshot lines
- Replication traffic on the private network is free
- MySQL, MariaDB or Percona at the same price
- Billed hourly from a prepaid balance
Estimated monthly bill on Edge
Primary and async replica, ~100 GB of data, 7 days of dumps and binlogs
- Primary VM$38.47Performance: 4 vCPU, 8 GiB, 160 GB NVMe
- Replica VM$38.47Performance: 4 vCPU, 8 GiB, 160 GB NVMe
- Storage$3.00205 GB of dumps and binlogs: first 5 GB free, then 200 GB × $0.015
- DNS$0.00Private record for the primary
- Egress$0.00
FAQ
MySQL on Edge, answered
How does this compare to RDS MySQL or Aurora?
MySQL or MariaDB?
How do I do high availability?
What about backups?
How do my apps connect?
Drop-in services
Add these without touching the stack
- Edge ShieldBot protection
POST /siteverify → score: 94Invisible bot protection for the signups and logins that write to your database: a 1–100 humanity score instead of a puzzle.
Free for most sites. No puzzles, no widget to style.Explore - Edge AssistAI answers
<script src="…/assist.js">An AI answer box for your app's help pages, grounded in your own content. One script tag on any page.
Free tier: 250 answered questions a monthExplore
Run your next MySQL primary on NVMe
Start free. Migrate from RDS or stand up a fresh primary; Expert Services can plan the cutover.
Free tiers hard-cap. Nothing bills until you add a card.