宣布推出Amazon EC2 M4和M4 Pro Mac实例 | AWS新闻博客
作为自2001年开始使用macOS、并在四年前EC2 Mac实例推出后一直使用的资深用户,我已帮助众多客户在AWS上扩展其持续集成和交付(CI/CD)流水线。今天,我很高兴地分享,Amazon EC2 M4和M4 Pro Mac实例现已全面可用。
为苹果平台构建应用程序的开发团队需要强大的计算资源来处理复杂的构建过程并同时运行多个iOS模拟器。随着开发项目规模扩大和复杂度增加,团队需要更高的性能和内存容量以维持快速开发周期。
基于Apple M4 Mac mini的核心
EC2 M4 Mac实例(在API中称为mac-m4.metal)基于Apple M4 Mac mini计算机构建,并建立在AWS Nitro系统之上。它们采用Apple silicon M4芯片,配备10核CPU(四个性能核心和六个能效核心)、10核GPU、16核神经网络引擎和24 GB统一内存,为iOS和macOS应用程序构建工作负载提供增强性能。在构建和测试应用程序时,与EC2 M2 Mac实例相比,M4 Mac实例的应用程序构建性能提升高达20%。
EC2 M4 Pro Mac(在API中称为mac-m4pro.metal)实例由Apple silicon M4 Pro芯片提供支持,配备14核CPU、20核GPU、16核神经网络引擎和48 GB统一内存。与EC2 M2 Pro Mac实例相比,这些实例的应用程序构建性能提升高达15%。增加的内存和计算能力使得使用多个设备模拟器并行运行更多测试成为可能。
每台M4和M4 Pro Mac实例现在配备2 TB本地存储,为改进的缓存以及构建和测试性能提供低延迟存储。
两种实例类型均支持macOS Sonoma版本15.6及更高版本作为Amazon Machine Images(AMI)。AWS Nitro系统通过高速Thunderbolt连接提供高达10 Gbps的Amazon Virtual Private Cloud(Amazon VPC)网络带宽和8 Gbps的Amazon Elastic Block Store(Amazon EBS)存储带宽。
Amazon EC2 Mac实例与AWS服务无缝集成,这意味着您可以:
- 使用AWS CodeBuild和AWS CodePipeline构建自动化CI/CD流水线
- 在AWS Secrets Manager上存储和管理构建密钥的多个版本,例如Apple开发证书和密钥
- 使用AWS CloudFormation管理您的开发基础设施
- 使用Amazon CloudWatch监控实例性能
让我展示如何开始
您可以通过AWS管理控制台、AWS命令行界面(AWS CLI)或AWS SDK启动EC2 M4或M4 Pro Mac实例。
对于此演示,让我们从控制台启动一个M4 Pro实例。我首先分配一个专用主机来运行我的实例。在AWS管理控制台上,我导航到EC2,然后选择Dedicated Hosts,并选择Allocate Dedicated Host。
然后,我输入一个名称标签,并选择实例系列(mac-m4pro)和实例类型(mac-m4pro.metal)。我选择一个可用区并清除主机维护。
或者,我可以使用命令行界面:
1
2
3
4
5
6
7
|
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"
|
专用主机分配到我的账户后,我选择刚刚分配的主机,然后选择操作菜单并选择Launch instance(s) onto host。
请注意,控制台为您提供此类主机的最新支持的macOS版本等信息。在这种情况下,是macOS 15.6。
在Launch an instance页面上,我输入一个名称。我选择一个macOS Sequoia Amazon Machine Image(AMI)。我确保架构是64位Arm,实例类型是mac-m4pro.metal。
其余参数并非特定于Amazon EC2 Mac:网络和存储配置。启动用于开发的实例时,请确保选择最小200 GB或更大的卷。默认的100 GB卷大小不足以下载和安装Xcode。
准备就绪后,我选择页面底部的Launch instance橙色按钮。实例将在控制台中快速显示为Running。但是,允许您通过SSH连接可能需要最多15分钟。
或者,我可以使用此命令:
1
2
3
4
5
6
7
8
9
|
aws ec2 run-instances \
--image-id "ami-000420887c24e4ac8" \ # AMI ID取决于区域!
--instance-type "mac-m4pro.metal" \
--key-name "my-ssh-key-name" \
--network-interfaces '{"AssociatePublicIpAddress":true,"DeviceIndex":0,"Groups":["sg-0c2f1a3e01b84f3a3"]}' \ # 安全组ID取决于您的配置
--tag-specifications '{"ResourceType":"instance","Tags":[{"Key":"Name","Value":"My Dev Server"}]}' \
--placement '{"HostId":"h-0e984064522b4b60b","Tenancy":"host"}' \ # 主机ID取决于您的配置
--private-dns-name-options '{"HostnameType":"ip-name","EnableResourceNameDnsARecord":true,"EnableResourceNameDnsAAAARecord":false}' \
--count "1"
|
从终端安装Xcode
实例可达后,我可以使用SSH连接到它并安装我的开发工具。我使用xcodeinstall下载并安装Xcode 16.4。
从我的笔记本电脑,我使用我的Apple开发者凭据开启一个会话:
1
2
3
4
5
6
7
|
# 在我的笔记本电脑上,具有访问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:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
» 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
|
注意事项
为开发目的选择最小200 GB的EBS卷。默认的100 GB卷大小不足以安装Xcode。我通常选择500 GB。在实例启动后增加EBS卷大小时,请记住调整APFS文件系统的大小。
或者,您可以选择在Mac mini可用的低延迟本地2 TB SSD驱动器上安装开发工具和框架。请注意,该卷的内容与实例生命周期绑定,而不是与专用主机绑定。这意味着当您停止并重新启动实例时,内部SSD存储中的所有内容都将被删除。
mac-m4.metal和mac-m4pro.metal实例支持macOS Sequoia 15.6及更高版本。
当迁移的实例运行macOS 15(Sequoia)时,您可以迁移现有的EC2 Mac实例。从现有实例创建自定义AMI,并从此AMI启动M4或M4 Pro实例。
最后,我建议查看我编写的教程,以帮助您开始使用Amazon EC2 Mac:
- 启动Amazon EC2 Mac实例
- 连接到Amazon EC2 Mac实例(我向您展示三种不同的连接方法)
- 在Amazon EC2 Mac上使用CI/CD流水线更快地构建应用程序
定价和可用性
EC2 M4和M4 Pro Mac实例目前在美国东部(弗吉尼亚北部)和美国西部(俄勒冈)可用,并计划未来扩展到其他区域。
Amazon EC2 Mac实例可通过按需和Savings Plans定价模式作为专用主机购买。EC2 Mac实例的计费按秒进行,但有24小时的最小分配期,以遵守Apple macOS软件许可协议。在24小时最小分配期结束后,主机可以随时释放,无需进一步承诺。
作为与Apple开发者密切合作的人,我很好奇您将如何使用这些新实例来加速您的开发周期。提高的性能、增强的内存容量以及与AWS服务的集成为构建iOS、macOS、iPadOS、tvOS、watchOS和visionOS平台应用程序的团队开辟了新的可能性。除了应用程序开发之外,Apple silicon的神经网络引擎使这些实例成为运行机器学习(ML)推理工作负载的成本效益候选者。我将在AWS re:Invent 2025上详细讨论这个主题,分享在EC2 Mac实例上优化ML工作负载的基准和最佳实践。
要了解有关EC2 M4和M4 Pro Mac实例的更多信息,请访问Amazon EC2 Mac实例页面或参阅EC2 Mac文档。您今天就可以开始使用这些实例,在AWS上现代化您的Apple开发工作流程。
— seb