点击关注我的Telegram群组和微信公众号

MENU

在AWS中部署mac1型EC2实例:测试以Mac mini为主机的macOS独立服务器

2020 年 12 月 06 日 • 阅读: 529 • 技术,分享,教程

已于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.7macOS 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

启动VNC服务

  • 以管理员权限打开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

  • 使用你自己的VNC客户端连接到localhost:5900
  • 验证方式为用户名和密码,ec2-user为用户名,密码为刚刚在SSH连接中设置的密码

VNC登录

  • 点击连接,即可登录进macOS的VNC会话

VNC连接

服务器测试

硬件配置

  • 根据系统信息,主机是Mac mini Late 2018型

系统信息

  • CPU显示为3.2GHz 6核12线程i7,Geekbench 5显示CPU型号为i7-8700B

CPU信息

  • 内存为32GB 2667 MHz DDR4,由两条16G内存组成双通道

内存信息

  • 显卡为与CPU集成的Intel UHD 630
  • 120G内置SSD未初始化,系统被安装在外置储存中

储存信息

跑分

  • Geekbench CPU跑分下单核1148,多核6372分,正常水平

CPU跑分

  • GPU OpenCL跑分5459分

GPU跑分

  • Speedtest下网络带宽为1Gbps对等

网络跑分

储存

  • EC2使用的Mac mini主机是128G版,内置储存没有被初始化
  • macOS被安装以外置储存为形式的AWS EBS硬盘中,硬盘容量为你在开启实例时设置的容量,可自由扩容
  • macOS系统盘被分配在了一个32G容量的分区内

扩容系统盘

  • 在控制台输入diskutil list获取当前硬盘信息
  • 可以看到32G的disk1s2容器,以及214.7G的空闲硬盘

diskinfo

  • 将该空闲容量分配给容器
diskutil apfs resizeContainer disk1s2 210g
  • 正常情况下此时等完读条后就可以在系统中看到新的容器可用空间了

new diskinfo

  • 如果出现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

注意事项

  1. mac1主机价格为每小时$1.083,至少收费24hr,价格并不便宜
  2. mac1系列的专用主机不支持启用Host recovery,所以每次重启后原有的公网IPv4地址会丢失且不可找回
  3. 专用主机在关机后回回归到Pending状态,需要大约10~20分钟恢复到可用状态。同时,需要将专用主机的auto-placement开启,以允许EC2实例使用
  4. EC2实例中的macOS关机大约需要10分钟,且始终需要一个可用的专用主机以开启
最后编辑于: 2020 年 12 月 08 日
返回文章列表 文章二维码 打赏
本页链接的二维码
打赏二维码
添加新评论

已有 2 条评论
  1. FPCHEN FPCHEN

    请问一下 这个mac1主机 有办法安装xcode 做app的提交吗?

    1. @FPCHEN应该可以的,本质就是个mac mini