Skip to content

如何开通Mac实例

  • 难度级别:入门级
  • 预计时间:30分钟
  • 使用环境:AWS网页控制台
  • 演示区域:ap-southeast-1(新加坡)

在AWS上成功启动一台Mac实例,并通过SSH或VNC完成远程连接,用于macOS应用开发或测试。

EC2 Mac 实例非常适合为 Apple 平台(例如 iPhone、iPad、Mac、Vision Pro、Apple Watch、Apple TV 和 Safari)开发、构建、测试和签署应用程序。您可以使用 SSH 或 Apple Remote Desktop (ARD) 连接到 Mac 实例。

  • 拥有有效的AWS账户
  • 账户具备创建EC2实例和专属主机的权限
  • 选择支持Mac实例的区域(建议:us-east-1、us-east-2、us-west-2)
  • 了解Mac实例最小计费周期为24小时
  • EC2 x86 Mac 实例(mac1.metal)基于 2018 Mac mini 硬件构建,并由 3.2 GHz Intel 第- 八代(Coffee Lake)酷睿 i7 处理器、6 个物理内核和 12 个逻辑内核以及 32 GiB 内存提供- 支持。
  • EC2 M1 Mac 实例(mac2.metal)基于 2020 Mac mini 硬件构建,并由 Apple silicon M1 - 处理器、8 个 CPU 内核、8 个 GPU 内核、16 GiB 内存和 16 核 Apple Neural Engine 提- 供支持。
  • EC2 M1 Ultra Mac 实例(mac2-m1ultra.metal)基于 2022 Mac Studio 硬件构建,并由 - Apple silicon M1 Ultra 处理器、20 个 CPU 内核、64 个 GPU 内核、128 GiB 内存和 - 32 核 Apple Neural Engine 提供支持。
  • EC2 M2 Mac 实例(mac2-m2.metal)基于 2023 Mac mini 硬件构建,并由 Apple silicon - M2 处理器、8 个 CPU 内核、10 个 GPU 内核、24 GiB 内存和 16 核 Apple Neural - Engine 提供支持。
  • EC2 M2 Pro Mac 实例(mac2-m2pro.metal)基于 2023 Mac mini 硬件构建,并由 Apple - silicon M2 Pro 处理器、12 个 CPU 内核、19 个 GPU 内核、32 GiB 内存和 16 核 - Apple Neural Engine 提供支持。
  • EC2 M4 Mac 实例(mac-m4.metal)基于 2024 Mac mini 硬件构建,并由 Apple silicon - M4 处理器、10 个 CPU 内核、10 个 GPU 内核、24 GiB 内存和 16 核 Apple Neural - Engine 提供支持。
  • EC2 M4 Pro Mac 实例(mac-m4pro.metal)基于 2024 Mac mini 硬件构建,并由 Apple silicon M4 Pro 处理器、14 个 CPU 内核、20 个 GPU 内核、48 GiB 内存和 16 核 - Apple Neural Engine 提供支持。

Mac实例可用性因区域而异,不同的区域实例类型的支持差异很大。简单来说,美国的区域较好,而部分区域仅支持基础类型。按地区划分的 Amazon EC2 实例类型{target=“_blank”}

区域实例类型
us-east-1
弗吉尼亚北部
mac1、Mac2、mac2-m1Ultra、mac2-m2Pro、mac-m2Pro、mac-M4、mac-m4Pro
us-east-2
俄亥俄州
mac1、Mac2、mac2-m2、mac2-m2、mac2-m2Pro、mac-M4
us-west-2
俄勒冈
mac1、Mac2、mac2-m1Ultra、mac2-m2Pro、mac-m2Pro、mac-M4、mac-m4Pro
ap-south-1
孟买
mac1
ap-northeast-2
首尔
mac1
ap-southeast-1
新加坡
mac1、mac2
ap-southeast-2
悉尼
mac1、mac2-m2、mac2-m2Pro
ap-northeast-1
东京
mac1
ca-central-1
加拿大
mac2-m2
eu-central-1
法兰克福
mac1、mac2-m2、mac-M4
eu-west-1
爱尔兰
mac1、mac2
eu-west-2
伦敦
mac1

重要提醒:Mac实例必须运行在专用主机(Dedicated Host)上,类比为”包租整台物理服务器”而非”共享虚拟空间”,这会影响计费方式和资源释放流程。


Mac实例无法直接启动,必须先分配专属主机作为运行载体。

导航路径:EC2 → 专属主机 → 分配专属主机

进入专属主机页面

关键配置(最佳实践)

配置项推荐值说明
实例系列mac2.metal基于Apple M1芯片
可用区任意可用区建议选择默认或a区
实例类型mac2.metal唯一可用类型,无需选择
数量1一台专属主机只能运行一个Mac实例
  • 如何选择性能更强的CPU:M芯片在编译速度、图形处理方面表现更优,适合Xcode开发场景。如需Intel架构兼容性测试,可选择mac1系列。
  • 主机恢复:是指硬件出现故障时,主机恢复减少了人工干预,其将自动迁移到新主机。

配置Dedicated_Host参数

点击”分配”完成分配,等待状态变为”可用”(通常需要2-5分钟)。

专属主机状态


导航路径:EC2 → 实例 → 启动实例

[启动实例页面]

AMI版本说明:推荐最新版Tahoe。目前AW只提供3个版本的macOS以供选择。

  • macOS Tahoe:版本:26,发布时间:2025
  • macOS Sequoia:版本:15,发布时间:2024/6
  • macOS Sonoma:版本:14,发布时间:2023/9

重要:仅选择AWS官方发布的macOS AMI,验证方式为检查Owner为”Amazon”。

实例类型mac2.metal

  • mac2.metal:标准配置

重要:必须与专属主机的实例系列匹配。

最佳实践配置

  • VPC/子网:选择默认VPC或已有VPC的公有子网
  • 自动分配公网IP:启用(便于远程连接)
  • 安全组:新建或选择已有安全组,必须开放以下端口:
    • SSH:22(TCP)
    • VNC:5900(TCP,用于图形界面)

安全组入站规则示例

类型协议端口来源说明
SSHTCP22你的IP/0.0.0.0/0命令行连接
自定义TCPTCP5900你的IPVNC图形连接(可选)
ICMP-IPv4ICMP全部你的IP/0.0.0.允许ping(可选)
所有流量全部全部本安全组允许同安全组内的全部实例访问

为什么限制来源IP:Mac实例通常用于开发环境,包含敏感代码和凭证,建议仅允许可信IP访问。如需临时开放,可使用你的公网IP/32

配置安全组

关键步骤

在”高级详细信息”部分,找到”租赁”配置:

  • 租赁:选择”专属主机”
  • 目标主机:选择步骤1创建的专属主机ID

指定Dedicated_Host

常见错误:如果选择”默认”或”专用实例”,将无法启动Mac实例。

默认配置

  • 根卷:100 GB(根据macOS版本自动分配)
  • 卷类型:gp3(推荐)

扩展建议:如需大量编译缓存或Xcode项目,可增加至200-500 GB。

最佳实践

  • 选择已有密钥对或新建密钥对
  • 安全保存.pem文件(无法重新下载)
  • Linux/macOS用户需执行:chmod 400 your-key.pem

点击”启动实例”,等待实例状态变为”正在运行”(首次启动需10-15分钟,包括macOS初始化)。


在EC2实例列表中,记录以下信息:

  • 公网IP地址:用于远程连接
  • 实例ID:用于管理操作
  • 用户名:默认为ec2-user

[查看实例详情]

命令格式

ssh -i /path/to/your-key.pem ec2-user@<公网IP>

首次连接:需要接受主机指纹验证,输入”yes”。

成功标志:看到macOS终端提示符。

通过SSH连接到MacOS实例

步骤

  1. 开启MacOS的远程访问:启用屏幕共享,并且只允许ec2-user用户远程访问。
sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart \
-activate \
-configure -access -on \
-configure -allowAccessFor -specifiedUsers \
-configure -users ec2-user -access -on -privs -all \
-restart -agent
  1. 设置ec2-user密码:设置自动登录,避免VNC连接后还要手动输入密码。
sudo defaults write /Library/Preferences/com.apple.loginwindow autoLoginUser ec2-user
sudo passwd ec2-user
# 输出
Changing password for ec2-user.
New password: 输入新密码
Retype new password: 输入新密码
################################### WARNING ###################################
# This tool does not update the login keychain password. #
# To update it, run `security set-keychain-password` as the user in question, #
# or as root providing a path to such user's login keychain. #
###############################################################################

如果不执行keychain密码更新命令,对于VNC访问桌面本身没有影响,但会在以下场景遇到问题:

不良影响:

  1. 无法访问已保存的密码和凭证
    1. Safari保存的网站密码
    2. 钥匙串中存储的Wi-Fi密码
    3. SSH密钥的密码
    4. 应用程序保存的凭证
  2. 某些应用启动时会提示输入钥匙串密码
    1. Xcode(访问开发者证书时)
    2. Git(使用credential helper时)
    3. 任何需要访问钥匙串的应用
  3. 每次重启后可能需要手动解锁钥匙串

什么时候需要执行:

  • 如果你需要使用Xcode进行iOS开发(需要访问开发者证书)
  • 如果需要在实例中保存和使用各种密码/凭证
  • 如果某些应用一直弹出”输入钥匙串密码”的提示

什么时候可以不执行:

  • 只是测试、演示用途
  • 主要通过SSH和命令行操作
  • 不需要使用钥匙串存储的凭证

KeyChian密码是系统在初始化的时候设置了随机密码,因此需要移除重建。

# 备份旧的(以防万一)
mv ~/Library/Keychains/login.keychain-db ~/Library/Keychains/login.keychain-db.old
# 创建新的keychain
security create-keychain -p "你的密码" login.keychain-db
# 设置为默认keychain
security default-keychain -s login.keychain-db
# 解锁keychain
security unlock-keychain -p "你的密码" ~/Library/Keychains/login.keychain-db
# 设置keychain永不锁定(可选,方便开发)
security set-keychain-settings ~/Library/Keychains/login.keychain-db
  1. 使用VNC客户端连接:
    • 地址:vnc://<公网IP>:5900
    • 输入设置的密码

VNC连接界面1

VNC连接界面2

登录MacOS系统

到达桌面


System Settings -> General -> Preferred Languages

设置中文1

设置中文2

设置中文3

选择输入法,然后重启系统。

选择输入法

重启系统

重要计费说明:Mac实例的专属主机必须分配满24小时后才能释放,即使实例已停止。

  1. 停止/终止实例:EC2 → 实例 → 选择实例 → 实例状态 → 终止(删除)实例
  2. 等待24小时:从专属主机分配时间开始计算
  3. 释放专属主机:EC2 → 专属主机 → 选择主机 → 操作 → 释放主机

验证方法:在专属主机详情中查看”分配时间”,确保已满24小时。


Q1:为什么无法启动Mac实例,提示”Unsupported”?

A:检查是否正确选择了专属主机的租赁模式,且实例类型与主机系列匹配。

Q2:实例启动后无法SSH连接?

A:检查安全组是否开放22端口,公网IP是否分配成功,密钥权限是否正确(chmod 400)。

Q3:如何查看专属主机的24小时分配时间?

A:EC2 → 专属主机 → 选择主机 → 详细信息 → 分配时间字段。

Q4:Mac实例支持哪些区域?

A:并非所有区域都支持Mac实例,建议在AWS区域表中确认,或在启动实例时检查可用的实例类型列表。

Q5:是否可以停止Mac实例以节省成本?

A:不可以。专属主机上面运行的实例不管是运行、停止还是销毁都不影响专属主机的费用。因为运行的实例是免费的。