为了方便Apple系统(iPhone、iPad、Watch、TV或Vision Pro)的应用程序开发和使用,在工作流的某些节点必须要使用macOS机器。由于采购、安装和配置macOS机器需要一定的时间,为了节省成本,本文将主要介绍如何通过Amazon EC2创建macOS实例。
一、Amazon EC2介绍
本系列教程需要对亚马逊免费云服务器Amazon EC2有一定的认识。Amazon EC2是亚马逊云科技推出的云服务器,提供按需、可扩展的计算容量,可帮助构建和运行几乎任何应用程序。现亚马逊云科技针对其1核1G、30GB SSD硬盘和高频Intel Xeon处理器配置推出长达12个月的免费试用,期间每月提供750个小时的Linux/Windows t2.micro或t3.micro使用时间,可应用于众多热门场景。
亚马逊云科技官网:点击访问(注册立享免费12个月Amazon EC2和100+免费云产品)
相关推荐:
二、为什么要用云端的macOS机器Amazon EC2 Mac实例为所有Apple开发人员提供了更高的可扩展性和安全性,提供了构建和测试iOS、macOS、watchOS、tvOS、ipadOS应用程序所需的灵活性,不再需要管理本地机器群。借助Amazon EC2 Mac实例可是现在云中运营一台或多台开发机,同时各自运行不同的macOS或者Xcode版本。
借助亚马逊云科技云API,开发者可以对计算机实施映像、快照、启动、停止,为基于Linux或Windows的开发流程带来与目前相同的灵活性和自动化水平。
运行Amazon EC2 Mac实例不涉及虚拟化,将拥有完整的Mac mini,且macOS在裸机上运行。此设计决策可帮助遵守Apple macOS许可证,它限制共享虚拟化macOS环境(可以在Amazon EC2实例上的虚拟机中运行macOS,这是另一回事)。此设计决策对有两个重要影响。
1、工作流方面开头和结尾各多了一个步骤:必须预留和释放 EC2 专用主机。专用主机是一台Mac mini物理主机,可独享资源,它将分配给亚马逊云科技账户,直到释放它为止。
2、计费取决于专用主机分配,而不是Amazon EC2实例何时运行。换句话来说,你需要为物理主机保留供使用的时间付费,与操作系统实际上是否运行无关。按照惯例,按需计费是按秒计的。根据Apple macOS许可证,分配期最短为24小时,在分配主机之后的最初24小时内不能释放它。在这一初始阶段之后,可以随时释放主机。如果确定每月要在Amazon EC2上花费一定的最低金额,Savings Plans(节省计划)可让节省高达44%的按需付费成本。
在Savings Plans定价和方案选项,点击EC2 Instance Savings Plans(EC2实例 Savings Plans)选项卡,然后选择计划的期限(1年或3年)、付款选项(预付全部费用、预付部分费用或不预付费用)、特定的mac实例系列,以及亚马逊云科技区域。注意此情况下,OS(操作系统)只能选择 linux,Tenancy(租期)只能选择专用主机。
如果想将Amazon EC2 Mac实例应用于开发工作,首先需要预留专用主机。具体方法可以通过亚马逊云科技控制台或者命令行界面。Dedicated Hosts(专用主机)部分位于EC2控制台中。
可以选择基于86的Mac Mini(mac1.metal)或搭载Apple芯片的Mac Mini,后者配备M1 SoC,具有8个CPU内核、8个GPU内核、16 GiB内存和16核Apple神经网络引擎(mac2.metal)
也可以使用 Amazon CLI,如下所示:
aws ec2 allocate-hosts \
–instance-type mac2.metal \
–availability-zone us-east-2b \
–quantity 1# Response
{
“HostIds”: [
“h-0fxxxxxxx90”
]
}
注意别忘记返回的HostIds,后面在启动台主机上的EC2实例需要用到。计费和24小时最短租赁时间从此刻开始。
四、Amazon EC2 Mac实例1、Amazon EC2 Mac实例可以创建卷的EBS快照,并从这些快照创建Amazon机器映像,捕获磁盘的状态,对其进行快照,并创建启动映像以启动其他机器。如果需要一组在所有实例上都可用的通用工具,并且这些工具的安装需要很长时间(例如 Xcode)。
2、Amazon EC2 Mac实例受到VPC安全组的保护,不会受到不必要的网络访问,因此你可以控制授权哪些传入连接、在哪些端口上以及来自哪些IP地址。
3、可以使用在网络级别定义的相同VPC路由机制(NAT网关、PrivateLink、Site-to-Site VPN、Direct Connect等)从macOS访问其他亚马逊云科技服务。
4、还可以使用脚本来进行(并借此来自动化)专用主机的配置、配置移除以及实例的启动和停止。
5、适用于macOS的Amazon Systems Manager Agent已预安装在EC2 Mac实例上,可以远程连接、发送要在主机上执行的命令,而无需管理凭据、SSH密钥或网络访问。
五、启动、停止或终止macOS上面已经预留了Mac Mini供自己使用,因此可以在这台机器上启动和停止macOS。在启动任何EC2实例时分享一些详细信息。最小参数列表为:
1、实例类型
实例类型必须与专用主机的实例类型相同。目前,x86 Mac mini支持mac1.metal,对于搭载Apple芯片的Mac mini支持mac2.metal。
2、(可选)SSH密钥名
要通过SSH连接到实例需要SSH密钥,因此必须在笔记本电脑上创建密钥对,安全保管密钥对的私有部分,并将公有部分上传到EC2。
3、要启动EC2实例的主机的标识符
标识符必须是从之前运行的allocate-hosts得到的HostIds参数。只能在专用主机上启动一个实例。
4、安全组ID
安全组相当于用来保护实例的盾牌,如果打算连接实例,必须创建一个安全组,以向从源IP地址或地址范围传入的TCP连接授权,使其能够连接TCP 22端口。控制台将指导执行此操作。
5、Amazon机器映像
Amazon机器映像是一种磁盘快照,其中包含已安装的操作系统和一些亚马逊云科技特有的工具和代理。如果有自己的AMI,可以指定使用它。亚马逊云科技为提供macOS最新的三个主要版本。
只要满足以上这些参数,那么该过程与启动任何EC2实例类型没有什么不同。因此我们必须确保选择适合我们要求的macOS AMI版本。可以选择mac2.metal实例类型,然后选择主机Tenancy(租期)和我们刚刚创建的Host(主机)。
我们也可以使用命令行:
aws ec2 run-instances \
–instance-type mac2.metal \
–key-name my_key \
–placement HostId=h-0fxxxxxxx90 \
–security-group-ids sg-01000000000000032 \
–image-id AWS_OR_YOUR_AMI_ID# Response
{
“Groups”: [],
“Instances”: [
{
“AmiLaunchIndex”: 0,
“ImageId”: “ami-01xxxxbd”,
“InstanceId”: “i-08xxxxx5c”,
“InstanceType”: “mac2.metal”,
“KeyName”: “my_key”,
“LaunchTime”: “2021-11-08T16:47:39+00:00”,
“Monitoring”: {
“State”: “disabled”
},
… redacted for brevity ….
几分钟后会实例启动,在默认或公有VPC中启动时,会被分配一个公有IP地址。很快就可以用SSH连接它。
同样的,可以停止、重启或终止实例等操作。需要注意的是,终止实例这项操作是永久性的。实例一旦终止,就无法重启。默认情况下,其关联的磁盘(EBS卷)在终止时将被删除。
注意:出于安全原因,在停止或终止实例时,底层主机将被完全清理,擦除本地磁盘、EFI NVRAM和内存安全区域中的所有数据。
使用控制台中的Instance state(实例状态)下拉菜单可以更改实例状态。
也可以使用以下CLI:
六、释放专用主机# to stop the instance
aws ec2 stop-instances –instance-id i-08xxxxx5c# to reboot the instance
aws ec2 reboot-instances –instance-id i-08xxxxx5c# to terminate the instance
aws ec2 terminate-instances –instance-id i-08xxxxx5c
计费单位是分配专用主机的时间,并不是实例运行的时间,因此在使用完Mac mini后,请务必用亚马逊云科技控制台或命令行释放专用主机。
aws ec2 release-hosts –host-ids h-0fxxxxxxx90
注意:不能在分配主机后的最初24小时内释放主机。
相关推荐:
《亚马逊VPS Amazon Lightsail启动Linux虚拟机教程》
(本文由美国主机侦探原创,转载请注明出处“美国主机侦探”和原文地址!)

微信扫码加好友进群
主机优惠码及时掌握

QQ群号:938255063
主机优惠发布与交流