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:
- How do we keep every build and test job on the same macOS image?
- How do we provision macOS build servers on demand?
- How do those servers register as workers, agents, or runners in CI?
- How do we avoid waiting 5-8 minutes for a cold EC2 Mac host boot on every job?
- How do we stay elastic when recycling a dedicated Mac host can take a long time?
- 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.

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_LICENSEis 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:
- Jenkins: Anka Jenkins plugin
- TeamCity: Anka TeamCity plugin
- GitLab CI: Anka GitLab runner
- Buildkite: Anka Buildkite integration
- GitHub Actions: Anklet + docs
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.








