Updated 19 October 2026
About Amoeba
What is Amoeba?
- Amoeba is block storage cost optimization for VMs on Azure and AWS.
- It moves a VM’s data disks onto one pool sized to the data plus 20%, then expands and shrinks that pool online, one disk at a time.
- More on the product page: Block storage cost optimization on Azure and AWS.
Which disks does Amoeba work on?
- The data disks of running VMs: Azure managed disks, and Amazon EBS volumes on EC2 instances.
- On Linux: systemd, kernel 5.14 or later, btrfs, and a VM size with at least 8 data-disk slots. Red Hat family VMs are not moved.
- On AWS, the instance must be managed by AWS Systems Manager and be a Nitro type.
What does onboarding a VM change?
- Amoeba installs its agent through Azure Run Command or AWS Systems Manager, builds the pool beside your disks and copies the data inside the VM.
- At the switch, the systemd services on the data mounts restart, and the pool is mounted at the same paths.
- For 48 hours you can go back to the original disks.
Do my applications need changes?
- No. Each data mount keeps its path, so applications read and write where they did before.
- Every process that keeps a data mount open must run as a systemd service, so the agent can stop and start it at the switch.
How much can Amoeba save?
- We estimate 50–60% off block storage cost. It is an estimated range, not a promise.
- The free block storage cost assessment works out your own figure from your Azure VMs, at list price. For Amazon EBS, book a call.
How do I get Amoeba?
- Amoeba is in early access. Book a demo for early access, or, on Azure, run the free assessment first.
Safety and data
Can a shrink lose data?
- A disk leaves the pool only after its data has moved to the other disks and the filesystem no longer uses it.
- Before it starts, Amoeba checks the other disks have room for the data and can serve the VM’s disk load.
- A pool that reports disk errors is never shrunk.
- The emptied disk holds no data, so it is deleted at once, with no snapshot.
What happens if the switch onto the pool fails?
- The agent tries to put the original mounts back and start your services again. The source disks are never written during the switch.
- To come: what happens to writes made on the pool if a late check fails after the services restarted
- Amoeba then tries the switch again, so your services can restart more than once.
- If the outcome can’t be known, the move pauses instead.
Can I go back to my original disks?
- Yes, during the 48 h soak after the switch. “Go back” returns the VM to its source disks and deletes the pool’s disks.
- After the soak, the source disks are deleted. Each leaves a safety snapshot, kept for 7 days.
- Going back needs the agent connected.
Which resources does Amoeba delete?
- An elastic disk it emptied in a shrink.
- A source disk after the soak, once its snapshot is complete.
- The pool’s disks after you go back, and a disk an expand created and gave up on.
- A safety snapshot when its 7 days end.
Downtime and performance
Is there downtime?
- At the switch onto the pool, and again if you go back: the systemd services that use the VM’s data mounts stop, the mounts move, and the services start again.
- The switch runs by itself as soon as the copy has caught up. You don’t pick its time.
- After that, the pool expands and shrinks online, without unmounting.
Does the copy slow down my VM?
- The copy runs inside the VM, and Amoeba sets its speed from your VM’s own disk load.
- When the disks are busy, the copy slows down or waits. This needs cgroup v2 IO readings on the VM; without them the copy doesn’t back off.
- To come: measured effect of the copy on disk latency
What disk performance does the pool get?
- On Premium SSD v2, each pool disk gets at least 3,000 IOPS and 125 MBps, and more IOPS when the VM’s own load needs it.
- On Premium SSD and Standard SSD, each disk has the performance of its size tier.
- Amoeba doesn’t shrink a pool when the disks that stay couldn’t serve the VM’s disk load.
Expanding when data grows
How fast does Amoeba expand when data grows suddenly?
- The agent reports every 15 seconds, and Amoeba checks each pool every 60 seconds.
- When free space falls below 12% of the pool, or 25 GiB if that is more, it expands at once.
- It also expands when the pool is above its band, or would reach that floor within 6 hours at its fill rate.
- To come: typical time from the trigger to the added capacity
Does “Manual” stop Amoeba from expanding?
- No. “When Zoorik shrinks” governs shrinks only. Expands run on their own, except while a move is paused after the switch.
The agent
What happens if the agent stops reporting?
- After 120 seconds without a report, the agent reads “Disconnected”. Amoeba then reinstalls it through Azure Run Command or AWS Systems Manager, never during a move step or a pool operation.
- Commands wait until it reconnects. The pool stays mounted, but it can’t expand or shrink in the meantime.
- “Reinstall” in Settings installs it again.
What does the agent send to Zoorik?
- Every 15 seconds: each mount’s size and use, the disks behind it, disk activity, and the pool’s error counters.
- Host facts: the kernel version, the OS family, whether btrfs is available, and the encryption state.
- During the move: copy progress, and how busy the disks are.
How is the agent installed and updated?
- Through Azure Run Command or AWS Systems Manager, when you onboard the VM.
- It runs as the systemd service amoeba-agent.service, as root, on Java 17 or later.
- Amoeba updates it to each new release by itself. A version that fails its health check rolls back.
Platforms and disk types
Which Linux distributions does Amoeba support?
- Linux with systemd, kernel 5.14 or later, and btrfs available.
- rsync, btrfs-progs and psmisc installed; the installer doesn’t add them.
- VMs whose OS is in the Red Hat family, as the agent reads it, are not moved onto a pool.
- To come: supported Linux distributions and versions
Does Amoeba work on Windows VMs?
- To come: Windows support: versions, filesystems, and how the pool works on Windows
Does Amoeba work on AWS?
- Yes. Amoeba pools the non-root EBS data volumes of running EC2 instances onto gp3 volumes in the instance’s Availability Zone.
- You connect an account with its 12-digit ID and a script in AWS CloudShell that creates the IAM role ZoorikStorageOperator. The role trusts Zoorik only with your organisation’s external ID.
- The agent installs through AWS Systems Manager. Instances must be Linux, running, managed by Systems Manager, and a Nitro type.
Which disk types does the pool use?
- On Azure: the type your data sits on today: Premium SSD v2, Premium SSD or Standard SSD.
- Where the VM’s region or zone doesn’t offer Premium SSD v2, the pool uses Premium SSD.
- Each VM gets one pool, on one disk type.
- Data on Standard HDD or Ultra Disk moves to Premium SSD v2 or Premium SSD, which costs more. Zone-redundant (ZRS) disks map to a locally redundant pool.
- On AWS, the pool uses gp3 volumes in the instance’s Availability Zone.
Costs and savings
How is the saving worked out?
- Before the pool: what the planned pool would cost, against the disks you have now.
- After the move: what the source disks cost a month, against what the pool costs.
- At Azure’s list price for the region, with a 730-hour month.
- On AWS, at the AWS Price List API’s list price. EBS bills per GB-month.
Do I pay for both sets of disks during the move?
- Yes, from Provision until the source disks are deleted after the 48 h soak.
- Each safety snapshot is kept for 7 days, then deleted.
- The console’s disk spend counts both sets while the move runs.
What does Amoeba cost?
- The assessment is free. If you pay for Amoeba, the price, billing period and payment terms are in your order.
- Your cloud provider bills you directly for the disks and snapshots Amoeba creates or keeps.
Getting started
How do I see what my VMs could save?
- Run the free block storage assessment in your terminal or Cloud Shell, on Azure or AWS. It writes one PDF report with each VM’s estimated saving at list price.
- It sends nothing anywhere, and asks once before it reads inside your VMs.
Can I start with one VM?
- Yes. Amoeba acts only on the VMs you onboard, and leaves every other VM alone.
- Set “When Zoorik shrinks” to “Manual” to start each shrink yourself.
What does Amoeba need in my Azure subscription?
- The custom role “Zoorik Storage Operator”, assigned to Zoorik’s app on each subscription.
- It can read every resource, update VMs, run commands on them, and create and delete disks and snapshots.
- You set it up by running the connect script with your own Azure sign-in.
What does Amoeba need on AWS?
- The IAM role ZoorikStorageOperator, created by a script you run in AWS CloudShell. It trusts Zoorik’s AWS account only with your organisation’s external ID.
- It can read EC2 and Systems Manager; create, modify, attach, detach and delete volumes; create and delete snapshots; and run commands through Systems Manager.
- Instances must be Linux, running, managed by Systems Manager and a Nitro type, with at least one EBS data volume.