亚马逊AWS官方博客

宣布推出 Amazon EC2 M4 和 M4 Pro Mac 实例



作为一个从 2001 年起就开始使用 macOS 系统并且自 Amazon EC2 Mac 实例 4 年前发布以来一直在使用该实例的人,我帮助众多客户在 AWS 上扩展了其持续集成和持续交付(CI/CD)管道。今天,我很高兴地宣布:Amazon EC2 M4 和 M4 Pro Mac 实例现已正式发布。

为 Apple 平台构建应用程序的开发团队需要强大的计算资源来处理复杂的构建流程并同时运行多台 iOS 模拟器。随着开发项目规模扩大、复杂度提升,团队需要更高的性能和更大的内存容量来维持快速的开发周期。

以 Apple M4 Mac mini 为核心
EC2 M4 Mac 实例(在 API 中称为 mac-m4.metal)基于 Apple M4 Mac mini 计算机构建,并搭载 AWS Nitro System。它们采用具有 10 核 CPU(四个性能内核和六个效率内核)、10 核 GPU、16 核神经引擎和 24 GB 统一内存的 Apple M4 硅芯片,为 iOS 和 macOS 应用程序构建工作负载提供更强的性能。在应用程序构建和测试场景中,相比 EC2 M2 Mac 实例,M4 Mac 实例的应用程序构建性能可提升高达 20%。

EC2 M4 Pro Mac 实例(在 API 中称为 mac-m4pro.metal)搭载 Apple M4 Pro 硅芯片,拥有 14 核 CPU、20 核 GPU、16 核神经网络引擎及 48 GB 统一内存。相较于 EC2 M2 Pro Mac 实例,该实例的应用程序构建性能可提升高达 15%。更高的内存和更强的计算能力使其能够通过多台设备模拟器并行运行更多测试任务。

如今,每台 M4 与 M4 Pro Mac 实例均标配 2 TB 本地存储,可提供低延迟存储,以改善缓存以及构建和测试性能。

这两款实例均支持将 macOS Sonoma 15.6 及更高版本作为亚马逊机器映像(AMI)运行。借助高速 Thunderbolt 接口,AWS Nitro System 可提供高达 10 Gbps 的 Amazon Virtual Private Cloud(Amazon VPC)网络带宽以及高达 8 Gbps 的 Amazon Elastic Block Store(Amazon EBS)存储带宽。

Amazon EC2 Mac 实例与 AWS 服务无缝集成,这意味着您可以:

下面我将演示如何开始使用
您可以通过 AWS 管理控制台AWS 命令行界面(AWS CLI)AWS SDK 启动 EC2 M4 或 M4 Pro Mac 实例。

在本演示中,我们将从控制台启动一个 M4 Pro 实例。首先,我分配一台专属主机来运行实例。在 AWS 管理控制台上,导航至 EC2,进入专属主机,然后选择分配专属主机

然后,输入名称标签,选择实例系列mac-m4pro)和实例类型mac-m4pro.metal)。我选择一个可用区,并取消勾选主机维护

EC2 Mac M$ — 专属主机

或者,我也可以使用命令行界面启动实例:

aws ec2 allocate-hosts                          \
        --availability-zone-id "usw2-az4"       \
        --auto-placement "off"                  \
        --host-recovery "off"                   \
        --host-maintenance "off"                \
        --quantity 1                            \
        --instance-type "mac-m4pro.metal"

专属主机分配到账户后,选择刚刚分配的主机,然后选择操作菜单并选择在主机上启动实例

请注意,控制台会显示此类主机的相关信息,其中包括支持的最新 macOS 版本。本示例中,该版本为 macOS 15.6。

EC2 Mac M4 — 专属主机启动

在“启动实例”页面上,我输入了一个名称。我选择 macOS Sequoia 亚马逊机器映像(AMI)。确保架构为 64 位 Arm、实例类型mac-m4pro.metal

其余参数(如网络和存储配置)并非 EC2 Mac 实例特有的配置。启动实例用于开发时,需确保选择大小至少为 200 Gb 的卷。默认的 100 Gb 卷大小不足以下载并安装 Xcode。

EC2 Mac M4 — 专属主机启动详情准备就绪后,选择页面底部的启动实例橙色按钮。该实例将迅速在控制台中显示为正在运行。但是,通过 SSH 连接实例最长可能需要等待 15 分钟。

或者,也可通过以下命令启动实例:

aws ec2 run-instances \
    --image-id "ami-000420887c24e4ac8"  \ # AMI ID depends on the region !
    --instance-type "mac-m4pro.metal"   \
    --key-name "my-ssh-key-name"        \
    --network-interfaces '{"AssociatePublicIpAddress":true,"DeviceIndex":0,"Groups":["sg-0c2f1a3e01b84f3a3"]}' \ # Security Group ID depends on your config
    --tag-specifications '{"ResourceType":"instance","Tags":[{"Key":"Name","Value":"My Dev Server"}]}' \
    --placement '{"HostId":"h-0e984064522b4b60b","Tenancy":"host"}' \ # Host ID depends on your config 
    --private-dns-name-options '{"HostnameType":"ip-name","EnableResourceNameDnsARecord":true,"EnableResourceNameDnsAAAARecord":false}' \
    --count "1" 

从终端安装 Xcode
当实例可访问后,我可以通过 SSH 连接实例并安装开发工具。我使用 xcodeinstall 工具下载并安装 Xcode 16.4

在笔记本电脑上,我通过 Apple 开发者凭证打开一个会话:

# on my laptop, with permissions to access AWS Secret Manager
» xcodeinstall authenticate -s eu-central-1                                                                                               

Retrieving Apple Developer Portal credentials...
Authenticating...
🔐 Two factors authentication is enabled, enter your 2FA code: 067785
✅ Authenticated with MFA.

我连接到刚刚启动的 EC2 Mac 实例。然后,下载并安装 Xcode:

» ssh ec2-user@44.234.115.119                                                                                                                                                                   

Warning: Permanently added '44.234.115.119' (ED25519) to the list of known hosts.
Last login: Sat Aug 23 13:49:55 2025 from 81.49.207.77

    ┌───┬──┐   __|  __|_  )
    │ ╷╭╯╷ │   _|  (     /
    │  └╮  │  ___|\___|___|
    │ ╰─┼╯ │  Amazon EC2
    └───┴──┘  macOS Sequoia 15.6

ec2-user@ip-172-31-54-74 ~ % brew tap sebsto/macos
==> Tapping sebsto/macos
Cloning into '/opt/homebrew/Library/Taps/sebsto/homebrew-macos'...
remote: Enumerating objects: 227, done.
remote: Counting objects: 100% (71/71), done.
remote: Compressing objects: 100% (57/57), done.
remote: Total 227 (delta 22), reused 63 (delta 14), pack-reused 156 (from 1)
Receiving objects: 100% (227/227), 37.93 KiB | 7.59 MiB/s, done.
Resolving deltas: 100% (72/72), done.
Tapped 1 formula (13 files, 61KB).

ec2-user@ip-172-31-54-74 ~ % brew install xcodeinstall 
==> Fetching downloads for: xcodeinstall
==> Fetching sebsto/macos/xcodeinstall
==> Downloading https://github.com/sebsto/xcodeinstall/releases/download/v0.12.0/xcodeinstall-0.12.0.arm64_sequoia.bottle.tar.gz
Already downloaded: /Users/ec2-user/Library/Caches/Homebrew/downloads/9f68a7a50ccfdc479c33074716fd654b8528be0ec2430c87bc2b2fa0c36abb2d--xcodeinstall-0.12.0.arm64_sequoia.bottle.tar.gz
==> Installing xcodeinstall from sebsto/macos
==> Pouring xcodeinstall-0.12.0.arm64_sequoia.bottle.tar.gz
🍺  /opt/homebrew/Cellar/xcodeinstall/0.12.0: 8 files, 55.2MB
==> Running `brew cleanup xcodeinstall`...
Disable this behaviour by setting `HOMEBREW_NO_INSTALL_CLEANUP=1`.
Hide these hints with `HOMEBREW_NO_ENV_HINTS=1` (see `man brew`).
==> No outdated dependents to upgrade!

ec2-user@ip-172-31-54-74 ~ % xcodeinstall download -s eu-central-1 -f -n "Xcode 16.4.xip"
                        Downloading Xcode 16.4
100% [============================================================] 2895 MB / 180.59 MBs
[ OK ]
✅ Xcode 16.4.xip downloaded

ec2-user@ip-172-31-54-74 ~ % xcodeinstall install -n "Xcode 16.4.xip"
Installing...
[1/6] Expanding Xcode xip (this might take a while)
[2/6] Moving Xcode to /Applications
[3/6] Installing additional packages...XcodeSystemResources.pkg
[4/6] Installing additional packages...CoreTypes.pkg
[5/6] Installing additional packages...MobileDevice.pkg
[6/6] Installing additional packages...MobileDeviceDevelopment.pkg
[ OK ]
✅ file:///Users/ec2-user/.xcodeinstall/download/Xcode%2016.4.xip installed

ec2-user@ip-172-31-54-74 ~ % sudo xcodebuild -license accept

ec2-user@ip-172-31-54-74 ~ % 

EC2 Mac M4 — 安装 xcode

注意事项
若用于开发目的,需选择一个大小至少为 200 Gb 的 EBS 卷。默认的 100 Gb 卷大小不足以安装 Xcode。我通常会选择 500 Gb 的卷。如果在实例启动后增加了 EBS 卷大小,请记得调整 APFS 文件系统的大小

或者,您也可选择将开发工具与框架安装在 Mac mini 中提供的低延迟 2 Tb 本地 SSD 上。请注意,此卷的内容与实例生命周期绑定,而不是与专属主机绑定。这意味着当您停止并重启实例时,内部 SSD 存储中的所有数据都会被删除。

mac-m4.metalmac-m4pro.metal 实例支持 macOS Sequoia 15.6 及更高版本。

如果迁移的实例运行的是 macOS 15(Sequoia),则您可以迁移现有 EC2 Mac 实例。从您的现有实例创建自定义 AMI,然后从此 AMI 启动 M4 或 M4 Pro 实例。

最后,建议您参考我撰写的以下教程来帮助您开始使用 Amazon EC2 Mac:

定价和可用性
EC2 M4 和 M4 Pro Mac 实例目前已在美国东部(弗吉尼亚州北部)和美国西部(俄勒冈州)推出,未来计划在更多区域推出。

Amazon EC2 Mac 实例以“专属主机”的形式提供,支持“按需付费”和节省计划定价模式。为遵守 Apple macOS 软件许可协议,EC2 Mac 实例按秒计费,最小分配期为 24 小时。在 24 小时最小分配期结束后,您可以随时释放主机,无需做出进一步承诺

作为与 Apple 开发人员密切合作的人,我十分期待看到大家利用这些新实例来加快开发周期。更强的性能、更大的内存容量,以及与 AWS 服务的集成,将为开发团队(开发适用于 iOS、macOS、iPadOS、tvOS、watchOS 及 visionOS 平台的应用程序)开辟新的可能性。除应用程序开发外,Apple 硅芯片的神经网络引擎还让这些实例成为运行机器学习(ML)推理工作负载经济实惠的选择。我将在 AWS re:Invent 2025 上深入探讨话题,届时,我将分享在 EC2 Mac 实例上优化机器学习工作负载的基准和最佳实践。

要了解有关 EC2 M4 和 M4 Pro Mac 实例的更多信息,请访问 Amazon EC2 Mac 实例页面或参阅 EC2 Mac 文档。您可以立即开始使用这些实例对 AWS 上的 Apple 开发工作流程进行现代化改造。

— seb

AWS 架构师中心: 云端创新的引领者

探索 AWS 架构师中心,获取经实战验证的最佳实践与架构指南,助您高效构建安全、可靠的云上应用