Recently AWS announced to support new MAC instances for AWS EC2. Built on Mac mini computers, EC2 Mac instances enable customers to run on-demand macOS workloads in the AWS cloud for the first time ever, extending the flexibility, scalability, and cost benefits of AWS to all Apple developers.
With EC2 Mac instances, developers creating apps for iPhone, iPad, Mac, Apple Watch, Apple TV, and Safari can now provision and access macOS environments quickly in a few minutes. They are built on Mac mini hardware and powered by 3.2 GHz Intel eighth-generation (Coffee Lake) Core i7 processors. You can connect to your Mac instance using SSH or Virtual Network Computing (VNC) after assigning an elastic IP.
AWS offers customers a choice of both macOS Mojave (10.14) and macOS Catalina (10.15) operating systems, with support for macOS Big Sur (11.0) coming soon.
In this How-to blog, we are describing the steps involved in creating a Mac instance on the AWS EC2 console. You can launch a Mac instance using the AWS Management Console as described in the following procedure. Mac instances require a Dedicated Host. So first we are going to create a dedicated host on AWS and then launch a MacOS instance on the dedicated host.
Creating a Dedicated Host
Login to AWS console with a root user. Open the Amazon EC2 console at https://console.aws.amazon.com/ec2/, in the navigation pane choose Dedicated hosts and Select “Allocate Dedicated Host”
Allocate dedicated Host – Dedicated Hosts allow you to provision EC2 instances on physical servers fully dedicated for your use.
Dedicated Host settings
Name tag – Provide a name for the dedicated host. In our case it is Vembu-Demo-Mac
Instance family – Specifies the instance family to be supported by the Dedicated Host. Here we need to select the Instance family “mac1” from the drop-down list.
Support multiple Instance types – If you enable support for multiple instance types, the host is able to support different instance types in the selected instance family. By default, this option will be grayed out for the Mac instance family.
Instance type – The instance type to be supported by the host. If you do not configure the host to support multiple instance types, you must choose the specific instance type to be supported. Here in the available list supports mac1.metal, and can choose that instance type.
Availability zone – The Availability Zone in which to allocate the host, you can choose any of the availability zones listed, depending on the datacenter you selected.
Instance auto-placement – Enable auto-placement to allow the host to accept untargeted instance launches that match its host configuration. Disable auto-placement to allow the host to accept targeted instance launches only. By default, it will not be enabled.
Host recovery – Host recovery uses host-level health checks to assess the host’s availability and to detect underlying system failures. If failures are detected on the host, host recovery automatically restarts the running instances onto a new replacement host. By default, it will not be enabled and is not supported for Instance type mac1.metal.
Quantity – The number of Dedicated Hosts you’d like to purchase for this configuration.
Note: You will be billed per allocated Dedicated host, not per instance
CLI Commands – You can also perform the same actions described above on this page by using the AWS Command Line Interface (CLI) tools.
Tags (Optional ) – A tag is a label that you assign to an AWS resource. Each tag consists of a key and an optional value. You can use tags to search and filter your resources or track your AWS costs.
Click “Allocate” to proceed further.
Note: In case, any sufficient capacity error comes during allocation, choose some other availability zone, and try again.
Now under the Dedicated hosts, you can see a new dedicated host as shown below.
Launching a Mac OS instance on a Dedicated host
Now a dedicated host is created for launching a MAC instance on the host. Select the particular host, and under Actions choose “Launch Instance(s) on the host as shown in the red box in the image below.
Step 1: Choosing the AMI
On this step, you can choose the list of Mac OS available images MacOS Catalina 10.15.7 and macOS Mojave 10.14.6 as shown in the below image and click select. In our case selected macOS Catalina 10.15.7
In Step 2, you can view the mac1. metal Instance details, click Next to configure the Instance Details
Step 3: Configure Instance Details
In this step, you need to configure the Network, Subnet, Host and Host network group, etc. Also, you must configure the Network Interface (eth0) for the MAC instance to connect from the outside world. Below are the configuration parameters with details
Network – Launch your instance into an Amazon Virtual Private Cloud (VPC). You can create a VPC and select your own IP address range, create subnets, configure route tables, and configure network gateways. You can use an existing VPC or create a new VPC
Subnet – A range of IP addresses in your VPC that can be used to isolate different EC2 resources from each other or from the Internet. Each subnet resides in one Availability Zone. You can choose your existing subnet with its existing availability zone.
Auto-assign public IP – Requests a public IP address from Amazon’s public IP address pool, to make your instance reachable from the Internet. In most cases, the public IP address is associated with the instance until it’s stopped or terminated, after which it’s no longer available for you to use. If you require a persistent public IP address that you can associate and disassociate at will, use an Elastic IP address (EIP) instead. You can allocate your own EIP, and associate it to your instance after launch.
Tenancy – Since the MAC instance is going to be created on a dedicated host created above, you can automatically select the created host id.
Click Next to Add Storage step
Step 4: Add storage
In this step, you can define the size of the root volume device /dev/sda1. By default 30 Gb will be shown, you can increase or decrease the volume size as per your requirement. Additionally, you can attach EBS volumes and instance store volumes to your instance here by clicking the button “Add New Volume “. You can also attach additional EBS volumes after launching an instance, but not instance store volumes. Also, you can select the media type SSD or standard disks for the root volume as shown in the below screenshot.
Click Next to Add Tags
Step 5: Add Tags
Choose the Add tag button or click to add a Nametag. Make sure your IAM policy includes permissions to create tags. Click Next to configure the security group.
Step 6: Configure security group
A security group is a set of firewall rules that control the traffic for your instance. On this page, you can add rules to allow specific traffic to reach your instance. For connecting a Mac instance through SSH you can add a rule for enabling SSH over port 22. Also, you can add multiple rules for connecting your Mac Instance, for example, you can access the mac machine through VNC software from your laptop. For that, you can create a custom rule to allow the incoming VNC connection to your instance. Also, you can use the default security group available.
Click Review and Launch button to launch a new Mac instance on the newly created host machine.
Step 7: Review and Launch
On this final step, you once again confirm the configuration settings for Instance details, storage, and security group. If you are confirmed with the details provided. Click Launch to launch a new Mac instance on the newly created host machine.
Creating a new key pair for accessing the Mac Instance
A key pair consists of a public key that AWS stores, and a private key file that you store. Together, they allow you to connect to your instance securely. Since you are creating a new Mac instance, recommend creating a new key pair and downloading it to a secure place in your laptop before launching your instance. After downloading the key pair click the Launch instances button.
After a few minutes, your Mac instance will be created, and you can view the running status of the Mac instance type mac1.metal under Dedicated Hosts → Running instances.
On clicking the Instance ID under Running instances, you will get all the details for the Mac Instance including the Public IP address assigned, the health status of the instance, etc.
Stop, Reboot, and Terminate the Instance.
After selecting the launched instance ID, you can do various actions on the instance by selecting the Instance state menu as shown below.
Releasing a dedicated host.
You can’t remove a dedicated host when an instance is running on it. First, you need to terminate or stop the instance as shown in the above screenshot, and then you can release the host after some hours. The below screenshot shows this action. Select the empty dedicated host and choose the release host option from the Actions tab as shown in the Redbox below.
Today, millions of Apple developers rely on MacOS and its innovative tools, frameworks, and APIs to develop, build, test, and sign apps for Apple’s industry-leading platforms that serve more than a billion customers globally. With the support of Mac OS on AWS developers are now able to leverage the flexibility, elasticity, and scale of AWS on-demand. Though the support of Mac instances only on some AWS regions, they are expanding the support to all regions slowly.