Ephemeral macOS VMs on AWS EC2 Mac with Anka

AWS EC2 Mac lets iOS and macOS teams run CI without racking Mac hardware. You get usage-based Mac capacity (with AWS minimum commitment rules), global reach for distributed teams, and EBS flexibility for disk size and IOPS. What EC2 Mac does not solve by itself is clean, identical build environments at job speed. Anka gives you ephemeral macOS VMs on EC2 Mac. Anklet connects those VMs to your CI so developers keep writing normal workflows while infra owns the runner fleet.

Most teams evaluating EC2 Mac ask the same questions:

  1. How do we keep every build and test job on the same macOS image?
  2. How do we provision macOS build servers on demand?
  3. How do those servers register as workers, agents, or runners in CI?
  4. How do we avoid waiting 5-8 minutes for a cold EC2 Mac host boot on every job?
  5. How do we stay elastic when recycling a dedicated Mac host can take a long time?
  6. How do we get more CI capacity per EC2 Mac dollar?

Run ephemeral, immutable macOS VMs on a cluster of EC2 Mac instances with Anka Build on AWS EC2 Mac. Anka is a Type 2 hypervisor on the EC2 Mac host (Intel and Apple Silicon). You pack multiple VMs per instance, start jobs from versioned templates in seconds, and tear them down when the job finishes.

Anka on EC2 Mac cost and capacity diagram

Get started on AWS

Get an Anka Build trial, then follow Anka on AWS EC2 Mac. The Getting Started AWS scripts can also bootstrap a cloud. Both scripts run from a Mac with AWS credentials configured locally.

prepare-build-cloud.bash

  • Creates the AWS pieces for an Anka Build Cloud (security group, elastic IP, and related resources).

prepare-anka-node.bash

  • Brings up a Mac metal instance and installs Anka. Prompts for a license unless ANKA_LICENSE is set.

Identical macOS environments for every job

Build Anka VM templates with Packer or the Anka CLI, store them in Anka Registry inside your VPC, and version dependencies as tags on top of a base image. The Anka Controller starts each CI job from a known template+tag so Xcode stack drift does not show up mid-pipeline.

On-demand provisioning across an EC2 Mac cluster

When CI asks for a macOS job, the Controller (in your VPC) starts concurrent Anka VMs across the EC2 Mac pool from the requested template+tag, then terminates them when the job ends. You can run multiple VMs per EC2 Mac host, including different macOS versions or Xcode stacks side by side on the same metal instance.

Connect CI with Anklet and Anka plugins

Anklet is Veertu’s open-source, CI-agnostic orchestrator for on-demand Anka VMs. A Receiver plugin listens for jobs from your CI system and queues them. A Handler plugin on each Anka host (your EC2 Mac nodes) pulls a job, starts a clean macOS VM, registers it as a runner/agent, and cleans up when the job finishes. Developers do not put Anka Controller URLs or cleanup steps in every workflow file.

For GitHub Actions on EC2 Mac, use Anklet’s GitHub plugins. Full walkthrough: Enterprise macOS GitHub Actions Runners with Anka. Official docs: Using GitHub Actions and Anka Build.

Anka also ships Controller-based plugins and controller-less integrations for other CI systems:

For anything else, use the Anka Controller API to start and stop VMs on the EC2 Mac cluster, or extend Anklet with a custom plugin.

Skip cold-start waits on every job

Keep a warm pool of EC2 Mac instances. Anka starts VMs from templates in about 1-2 seconds and registers them with CI shortly after. You are not paying a full host boot for each pipeline run.

Scale without recycling metal for every job

Dedicated Mac hosts are slow to fully recycle. With Anka you scale CI capacity by starting more VMs across the existing EC2 Mac cluster instead of tearing down and reprovisioning metal for every burst.

Lower cost per concurrent macOS job

Running multiple Anka VMs per EC2 Mac instance increases usable CI slots on the same AWS spend. That is usually the deciding factor for teams comparing one job per EC2 Mac host vs virtualized packing.

Next steps

Share this post

anka-and-kubernetes
On-Demand macOS VMs in Azure DevOps Pipelines with Anka
Run macOS VMs in Azure DevOps Pipelines with Anka. Anklet-style on-demand agents are blocked by Microsoft self-hosted pools today; use a registered agent plus per-job Anka VMs.
Read More
Screenshot 2025-01-08 at 2.16
Enterprise macOS GitHub Actions Runners with Anka
Run self-hosted macOS GitHub Actions at enterprise scale with Anka and Anklet: ephemeral Apple Silicon VMs, more control than hosted runners.
Read More
The Anka product ladder: Develop, Flow, Build, and EC2 Mac as four ascending steps, with Crypt, MCP, Anka Scan, and AMI Scan named below
Which Anka Product Do You Actually Need? A Walkthrough of the Whole Lineup
A situation-first guide to every Veertu product: Anka Develop, Anka Flow, Anka Build, AWS EC2 Mac, Anka Crypt, Anka MCP, Anka Scan, and EC2 Mac AMI Scan, including the moment you move from one to the next.
Read More
anka2024v1-1536x768
A Year of Anka: Highlights from 2024
We’re starting a new annual tradition here at Veertu with our A Year of Anka blog posts. We want our customers to know how the product has grown over the past year and think this is a great avenue to do so. Please enjoy and happy holidays from all...
Read More
anka-or-1
Anka vs Orka in 2024
It has been several years since we made our first side by side comparison between Anka and Orka. A lot has changed, and we believe it’s important to make sure the information out there is accurate. We’ll be specifically addressing a newer...
Read More
networking-performancev1
Unlocking Superior macOS VM Network Performance: Introducing Anka's new networking mode for Apple Silicon
Large and complex enterprises using Anka have many different demands, and we have worked to continue to develop innovative technology to meet these demands. Enterprise infrastructure hardware is often on the cutting edge, and they need advanced capabilities...
Read More
gitlab-with-anka
Anka Cloud Gitlab Executor
Veertu’s Anka and the new Anka Cloud Gitlab Executor Veertu’s Anka is a suite of software tools built on the macOS virtualization platform. It enables the execution of single or multi-use macOS virtual machines (VMs) in a manner similar to Docker....
Read More
mac-scan-v1
Real-Time CVE Scanning of your macOS Build Systems
It’s common that an organization’s macOS build system will download thousands, sometimes tens of thousands of third-party dependencies every hour. When building and testing iOS applications, it typically downloads and installs third-party...
Read More
anka-on-silicon-v1
The ONLY Fully Automated Apple Silicon macOS VM Creation Solution
Starting in Anka 3.1 we announced that Anka is now able to fully automate the macOS installation processes, disabling SIP, and enabling VNC — all previously manual steps users had to perform inside o the VM. At the time of writing this article,...
Read More
anka_click
Scripting macOS UI User Actions With Anka Click
Starting in Anka 3.2, we’ve introduced a solution for scripting macOS UI user actions. You may ask, “Why would I want to do that?”. Well, often macOS configuration and applications do not have a CLI allowing you to perform certain actions...
Read More