已于2020/12/16 6:44AM更新 EBS硬盘成功全部挂载上了
前言
本周,AWS在其弹性计算云EC2平台上发布了新的mac1系列实例,也就是基于云的macOS实例。这一系列的发布为苹果开发人员提供了一种无需自行购买硬件设备、租赁机房托管而就拥有云端macOS开发环境的方案。开发者可以快速部署云端针对iPhone、iPad、Mac、Apple TV等平台的开发环境且通过AWS提供的Nitro系统接入诸如VPC,EBS,S3这样AWS网络内部功能。目前支持新mac1系列EC2的AWS区域为美东北弗吉尼亚(us-east-1)、美东俄亥俄(us-east-2)、美西俄勒冈(us-west-1)、欧洲爱尔兰(eu-west-1)和亚太新加坡(ap-southeast-1)
开通服务
mac1型专用实例是新功能,通过AWS面板启用比较麻烦,需要获得实例配额,专用主机后部署。本文以美西俄勒冈区为例。
申请实例配额
- 开通mac1型EC2实例需要
Running MAC1 Dedicated Hosts
配额,你可以在EC2面板中的Limits页面查看你的帐号配额
- 对于免费帐号而言,大概率是没有自动获取到mac1配额,需要在工单系统中发上限提升工单。但是mac1型尚且没有被加入到自动提升上限的工单系统中,所以你只能选
Account and billing support
类型工单并选择Account
分类中的Other Account Issues
并说明问题来获得配额。选择以在线对话的形式可以快速获得客服支持,大概半小时不到就可以获得该配额了
分配专用主机
- 进入EC2面板中的Dedicated Hosts页面
点击
Allocate Dedicated Host
- 在
Name tag
中输入一个专用主机名 Instance family
选择mac1- 取消选中下一项
Support multiple instance types
- 在
Availability Zone
选择你需要部署EC2的可用区 - 选中
Instance auto-placement
- 在
Quantity
输入专用主机数量,这被专用主机配额限制,有多少就输入多少就行了
- 在
- 选择底部的
Allocate
即可分配mac1专用主机
开通实例
- 进入EC2面板中的Instances页面
- 点击
Launch instances
- 选择需要的macOS系统,目前AWS提供
macOS Catalina 10.15.7
和macOS Mojave 10.14.6
两个选项,点击下一步 - mac1型目前只有mac1.metal一种可选方案,AWS标注该型号为12CPU,32G内存,可优化EBS型储存和25 Gbps网络性能,点击下一步
进入实例细节配置页面
- 将
Host
选为你刚刚创建的专用主机 - 将
Affinity
选为Host
- 将
- 点击下一步,选择EBS类型并设置容量
- 如设置一般EC2实例一样设置Tag,安全组并分配密钥
- 等待数分钟,mac1型EC2主机即可开通
使用macOS
AWS提供的云端macOS默认提供远程SSH,可以通过配置macOS内置的VNC功能来达到远程桌面的目的
连接至服务器
- 在EC2面板中你可以获取到实例的公网IP地址
- 通过你自己的SSH工具和密钥连接到主机即可,默认用户名为
ec2-user
- 输入
uname -a
即可看到当前主机名
启动VNC
- 输入
sudo passwd ec2-user
- 为
ec2-user
分配一个密码
- 启用VNC服务器功能
sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart \
-activate -configure -access -on \
-configure -allowAccessFor -specifiedUsers \
-configure -users ec2-user \
-configure -restart -agent -privs -all
sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart \
-configure -access -on -privs -all -users ec2-user
- 以管理员权限打开Windows PowerShell
- 将远程主机的SSH转发到本地端口上
ssh -L 5900:localhost:5900 -C -N -i <密钥路径> ec2-user@<远程IP地址>
- 假设我的名为
AWS_Key.pem
的密钥放在了桌面,远程主机IP为54.190.128.8
,则命令为
ssh -L 5900:localhost:5900 -C -N -i C:\Users\i\Desktop\AWS_Key.pem ec2-user@54.190.128.8
- 使用你自己的VNC客户端连接到
localhost:5900
- 验证方式为用户名和密码,
ec2-user
为用户名,密码为刚刚在SSH连接中设置的密码
- 点击连接,即可登录进macOS的VNC会话
服务器测试
硬件配置
- 根据系统信息,主机是Mac mini Late 2018型
- CPU显示为3.2GHz 6核12线程i7,Geekbench 5显示CPU型号为i7-8700B
- 内存为32GB 2667 MHz DDR4,由两条16G内存组成双通道
- 显卡为与CPU集成的Intel UHD 630
- 120G内置SSD未初始化,系统被安装在外置储存中
跑分
- Geekbench CPU跑分下单核1148,多核6372分,正常水平
- GPU OpenCL跑分5459分
- Speedtest下网络带宽为1Gbps对等
储存
- EC2使用的Mac mini主机是128G版,内置储存没有被初始化
- macOS被安装以外置储存为形式的AWS EBS硬盘中,硬盘容量为你在开启实例时设置的容量,可自由扩容
- macOS系统盘被分配在了一个32G容量的分区内
扩容系统盘
- 在控制台输入
diskutil list
获取当前硬盘信息 - 可以看到32G的
disk1s2
容器,以及214.7G的空闲硬盘
- 将该空闲容量分配给容器
diskutil apfs resizeContainer disk1s2 210g
- 正常情况下此时等完读条后就可以在系统中看到新的容器可用空间了
- 如果出现
The size (210g) must not be greater than the partition map allocatable size
这样的错误,你可能还需要对该容器进行修复
diskutil repairdisk disk1
diskutil apfs resizeContainer disk1 0
diskutil apfs resizeContainer disk1s2 210g
注意事项
- mac1主机价格为每小时$1.083,至少收费24hr,价格并不便宜
- mac1系列的专用主机不支持启用
Host recovery
,所以每次重启后原有的公网IPv4地址会丢失且不可找回 - 专用主机在关机后回回归到
Pending
状态,需要大约10~20分钟恢复到可用状态。同时,需要将专用主机的auto-placement
开启,以允许EC2实例使用 - EC2实例中的macOS关机大约需要10分钟,且始终需要一个可用的专用主机以开启
转载请标注来源
请问一下 这个mac1主机 有办法安装xcode 做app的提交吗?
应该可以的,本质就是个mac mini