Amazon EC2 Mac 实例 - Amazon Elastic Compute Cloud

Amazon EC2 Mac 实例

Amazon EC2 Mac 实例本身支持 macOS 操作系统。

  • EC2 x86 Mac 实例(mac1.metal)基于 2018 Mac mini 硬件构建,并由 3.2 GHz Intel 第八代(Coffee Lake)酷睿 i7 处理器提供支持。

  • EC2 M1 Mac 实例(mac2.metal)基于 2020 Mac mini 硬件构建,并由 Apple silicon M1 处理器提供支持。

  • EC2 M2 Mac 实例(mac2-m2.metal)基于 2023 Mac mini 硬件构建,并由 Apple silicon M2 处理器提供支持。

  • EC2 M2 Pro Mac 实例(mac2-m2pro.metal)基于 2023 Mac mini 硬件构建,并由 Apple silicon M2 Pro 处理器提供支持。

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

注意

计费单位专属主机。在该主机上运行的实例不产生额外费用。

注意事项

以下注意事项适用于 Mac 实例:

  • Mac 实例只能作为转速主机的裸机实例,最短分配期为 24 小时,然后才能释放专属主机。您可以每次启动一个 Mac 实例 专用主机。您可以与AWS组织内的AWS账户或组织部门,或与整个AWS组织分享专用主机。

  • Mac 实例仅适用于按需型实例。它们不能作为竞价型实例或预留实例提供。您可以通过购买 Savings Plan 节省 Mac 实例的开支。

  • Mac 实例可运行以下操作系统之一:

    • macOS Mojave(版本 10.14)(仅限 x86 Mac 实例)

    • macOS Catalina(版本 10.15)(仅限 x86 Mac 实例)

    • macOS Big Sur(版本 11)(x86 和 M1 Mac 实例)

    • macOS Monterey(版本 12)(x86 和 M1 Mac 实例)

    • macOS Ventura(版本 13)(所有 Mac 实例、M2 和 M2 Pro Mac 实例均支持 macOS Ventura 版本 13.2 或更高版本)

    • macOS Sonoma(版本 14)(所有 Mac 实例)

  • 支持 EBS hotplug。

  • AWS 不管理或支持 Apple 硬件上的内部 SSD。强烈建议您改用 Amazon EBS 卷。EBS 卷在 Mac 实例上提供的弹性、可用性和持久性优势与在任何其他 EC2 实例上相同。

  • 建议将通用型 SSD(gp2gp3)和预调配 IOPS SSD(io1io2)与 Mac 实例结合使用,以获得最佳 EBS 性能。

  • Mac 实例支持 Amazon EC2 Auto Scaling。

  • x86 Mac 实例禁用自动软件更新。我们建议您在将实例投入生产之前应用更新并在实例上进行测试。有关更多信息,请参阅更新操作系统和软件

  • 当您停止或终止 Mac 实例时,将在 专用主机 上执行清理工作流程。有关更多信息,请参阅停止并终止 Mac 实例

警告

请勿使用 FileVault。启用 FileVault 将导致由于分区被锁定而使主机无法启动。如果需要数据加密,请使用 Amazon EBS 加密,以避免启动问题和性能影响。使用 Amazon EBS 加密,加密操作会在托管实例的服务器上进行,可确保静态数据安全性以及在实例和其附加的 EBS 存储之间的传输中数据的安全性。有关更多信息,请参阅《Amazon EBS 用户指南》中的 Amazon EBS 加密

实例就绪情况

启动 Mac 实例后,您需要等到实例准备就绪后才能连接到该实例。对于 AWS 所售带 x86 Mac 实例或 Apple silicon Mac 实例的 AMI,启动时间可能在大约 6 分钟到 20 分钟不等。根据所选 Amazon EBS 卷的大小、在用户数据中包含的额外脚本或在自定义 macOS AMI 上额外加载的软件,启动时间可能会延长。

您可以使用小型 Shell 脚本(如下所示)轮询 describe-instance-status API,以了解实例何时可以连接。在以下命令中,将示例实例 ID 替换为您自己的 ID。

for i in $(seq 1 200); do aws ec2 describe-instance-status --instance-ids=i-0123456789example \ --query='InstanceStatuses[0].InstanceStatus.Status'; sleep 5; done;

启动 Mac 实例

EC2 Mac 实例需要一个专属主机。您首先需要为您的账户分配一台主机,然后在该主机上启动实例。

您可以使用 AWS Management Console 或 AWS CLI 启动 Mac 实例。

使用控制台启动 Mac 实例

将 Mac 实例启动到 专用主机
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 分配专属主机,如下所示:

    1. 在导航窗格中,选择专用主机

    2. 选择 Allocate (分配) 专用主机,然后执行以下操作:

      1. 对于实例系列,选择 mac1mac2mac2-m2mac2-m2pro。如果相应实例系列未出现在列表中,则表示当前选定的区域不支持该系列。

      2. 对于实例类型,请基于所选的实例系列选择 mac1.metalmac2.metalmac2-m2.metalmac2-m2pro.metal

      3. 对于 Availability Zone (可用区),为 专用主机 选择可用区。

      4. 对于 Quantity(数量),请保留 1

      5. 选择 Allocate

  3. 在主机上启动实例,如下所示:

    1. 选择您创建的 专用主机,然后执行以下操作:

      1. 依次选择 Actions(操作)、Launch instances onto host(在主机上启动实例)。

      2. Application and OS Images (Amazon Machine Image) [应用程序和操作系统映像(Amazon 系统映像)] 下,选择 macOS AMI。

      3. 实例类型下,选择相应的实例类型(mac1.metalmac2.metalmac2-m2.metalmac2-m2pro.metal)。

      4. Advanced details(高级详细信息)下,验证 Tenancy(租赁)、Tenancy host by(租赁主机类型)和 Tenancy host ID(租赁主机 ID)是否已根据您创建的专属主机进行预配置。根据需要更新 Tenancy affinity(租赁关联)。

      5. 完成向导,根据需要指定 EBS 卷、安全组和密钥对。

      6. Summary(摘要)面板中,选择 Launch instance(启动实例)。

    2. 确认页面会让您知道自己的实例已启动。选择 View all instances(查看所有实例)以关闭确认页面并返回控制台。实例的初始状态为 pending。当实例的状态更改为 running 并通过状态检查时,该实例即可准备就绪。

使用启动 Mac 实例 AWS CLI

分配专属主机

使用以下 allocate-hosts 命令为 Mac 实例分配专属主机,将 instance-type 替换为 mac1.metalmac2.metalmac2-m2.metalmac2-m2pro.metal,并将 regionavailability-zone 替换为符合您环境的内容。

aws ec2 allocate-hosts --region us-east-1 --instance-type mac1.metal --availability-zone us-east-1b --auto-placement "on" --quantity 1

在主机上启动实例

使用以下 run-instances 命令启动 Mac 实例,再次将 instance-type 替换为 mac1.metalmac2.metalmac2-m2.metalmac2-m2pro.metal,将 regionavailability-zone 替换为之前使用的内容。

aws ec2 run-instances --region us-east-1 --instance-type mac1.metal --placement Tenancy=host --image-id ami_id --key-name my-key-pair

实例的初始状态为 pending。当实例的状态更改为 running 并通过状态检查时,该实例即可准备就绪。使用以下 describe-instance-status 命令显示实例的状态信息。

aws ec2 describe-instance-status --instance-ids i-017f8354e2dc69c4f

以下是正在运行且已通过状态检查的实例的示例输出。

{ "InstanceStatuses": [ { "AvailabilityZone": "us-east-1b", "InstanceId": "i-017f8354e2dc69c4f", "InstanceState": { "Code": 16, "Name": "running" }, "InstanceStatus": { "Details": [ { "Name": "reachability", "Status": "passed" } ], "Status": "ok" }, "SystemStatus": { "Details": [ { "Name": "reachability", "Status": "passed" } ], "Status": "ok" } } ] }

连接到 Mac 实例

可以使用 SSH 或图形用户界面连接到您的 Mac 实例。

使用 SSH 连接到您的实例

重要

多个用户可以同时访问操作系统。由于端口 5900 上有内置的屏幕共享服务,通常会出现 1:1 的 user:GUI 会话。在 macOS 中使用 SSH 支持多个会话,上限为 sshd_config 文件中规定的“最大会话数”限制。

默认情况下,Amazon EC2 Mac 实例不允许远程根 SSH。密码验证已禁用,以防止强力 (brute-force) 密码攻击。ec2-user 账户已配置为使用 SSH 远程登录。ec2-user 账户也具有 sudo 权限。连接到实例后,您可以添加其他用户。

要支持使用 SSH 连接到您的实例,请使用密钥对和允许 SSH 访问的安全组启动实例,并确保实例具有互联网连接。连接到实例时,您可以提供密钥对的 .pem 文件。

通过以下过程使用 SSH 客户端连接到您的 Mac 实例。如果您在尝试连接到实例时收到错误,请参阅 排查实例的连接问题。

使用 SSH 连接到您的实例
  1. 通过在命令行输入 ssh,验证您的本地计算机是否安装了 SSH 客户端。如果您的计算机无法识别该命令,请为操作系统搜索 SSH 客户端并进行安装。

  2. 获得实例的公有 DNS 名称。使用 Amazon EC2 控制台,您可以在 Details (详细信息)Networking (联网) 选项卡上找到公有 DNS 名称。通过使用 cribe-instances 命令 AWS CLI,您可以找到公有 DNS 名称。

  3. 找到您在启动实例时指定的密钥对的 .pem 文件。

  4. 使用以下 ssh 命令连接到您的实例,请指定实例和 .pem 文件的公有 DNS 名称。

    ssh -i /path/key-pair-name.pem ec2-user@instance-public-dns-name

连接到您实例的图形用户界面(GUI)

按照以下程序,使用 VNC、Apple Remote Desktop(ARD)或 Apple Screen Sharing 应用程序(macOS 中附带)连接到您实例的 GUI。

注意

macOS 10.14 及更高版本仅允许控制是否通过系统首选项启用屏幕共享。

使用 ARD 客户端或 VNC 客户端连接到实例
  1. 验证本地计算机是否安装了 ARD 客户端或支持 ARD 的 VNC 客户端。在 macOS 上,您可以利用内置的屏幕共享应用程序。否则,请搜索适用于您的操作系统的 ARD,然后进行安装。

  2. 从本地计算机上,使用 SSH 连接到实例

  3. 使用 passwd 命令为 ec2-user 账户设置密码,如下所示。

    [ec2-user ~]$ sudo passwd ec2-user
  4. 使用以下命令安装并启动 macOS 屏幕共享。

    [ec2-user ~]$ sudo launchctl enable system/com.apple.screensharing sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.screensharing.plist
  5. 键入 exit,然后按下回车键,从而将实例断开连接。

  6. 在计算机上,使用以下 ssh 命令连接到您的实例。除了上一部分中显示的选项外,还可以使用 -L 选项启用端口转发并将本地端口 5900 上的所有流量转发到实例上的 ARD 服务器。

    ssh -L 5900:localhost:5900 -i /path/key-pair-name.pem ec2-user@instance-public-dns-name
  7. 从本地计算机上,使用 ARD 客户端或支持 ARD 的 VNC 客户端连接到 localhost:5900。例如,在 macOS 上使用屏幕共享应用程序,如下所示:

    1. 打开查找器并选择前往

    2. 选择连接到服务器

    3. 服务器地址字段中,输入 vnc://localhost:5900

    4. 根据提示登录,将 ec2-user 用作为 ec2-user 账户创建的用户名和密码。

在 Mac 实例上修改 macOS 屏幕分辨率

使用 ARD 或支持此 ARD 的 VNC 客户端连接到 EC2 Mac 实例后,您可以使用任何公开提供的 macOS 工具或实用程序(例如 displayplacer)修改 macOS 环境的屏幕分辨率。

使用 displayplacer 修改屏幕分辨率
  1. 安装 displayplacer。

    [ec2-user ~]$ brew tap jakehilborn/jakehilborn && brew install displayplacer
  2. 显示当前屏幕信息和可能的屏幕分辨率。

    [ec2-user ~]$ displayplacer list
  3. 应用所需的屏幕分辨率。

    [ec2-user ~]$ displayplacer "id:<screenID> res:<width>x<height> origin:(0,0) degree:0"

    例如:

    RES="2560x1600" displayplacer "id:69784AF1-CD7D-B79B-E5D4-60D937407F68 res:${RES} scaling:off origin:(0,0) degree:0"

EC2 macOS AMI

Amazon EC2 macOS 旨在为 Amazon EC2 Mac 实例上运行的开发人员工作负载提供稳定、安全和高性能的环境。EC2 macOS AMI 包含让您能够与 AWS 轻松集成的软件包,包括启动配置工具和许多常见的 AWS 库及工具。

有关 EC2 macOS AMI 的更多信息,请参阅 Amazon EC2 macOS AMI 发布说明

AWS 会定期提供更新的 EC2 macOS AMI,其中包括对 AWS 自有软件包的更新和经过全面测试的最新 macOS 版本。此外,只要最新的次要版本更新或主要版本更新能够完全测试和审查,AWS 就会向更新的 AMI 提供这些更新。如果您不需要为 Mac 实例保留数据或自定义内容,则可以通过使用当前 AMI 启动新实例,然后终止以前的实例来获取最新更新。否则,您可以选择要应用于 Mac 实例的更新。

有关如何订阅 macOS AMI 通知的信息,请参阅 订阅 macOS AMI 通知

更新操作系统和软件

警告

测试版或预览版 macOS 只能在 Amazon EC2 M1 Mac 实例上安装。Amazon EC2 不限定 macOS 的测试版或预览版,也不保证实例在更新到预生产版本 macOS 后仍能正常运行。

在停止或终止实例后,试图在 Amazon EC2 x86 Mac 实例上安装测试版或预览版 macOS 将导致 Amazon EC2 Mac 专属主机性能下降,并且会阻止您开启该主机或在该主机上启动新实例。

在 x86 Mac 实例和 Apple silicon Mac 实例上进行软件更新的步骤。

在 x86 Mac 实例上更新软件

在 x86 Mac 实例上,您可以使用 softwareupdate 命令从 Apple 安装操作系统更新。

要在 x86 Mac 实例上从 Apple 安装操作系统更新
  1. 使用以下命令列出包含可用更新的软件包。

    [ec2-user ~]$ softwareupdate --list
  2. 安装所有更新或仅安装特定更新。要安装特定更新,请使用以下命令。

    [ec2-user ~]$ sudo softwareupdate --install label

    要改为安装所有更新,请使用以下命令。

    [ec2-user ~]$ sudo softwareupdate --install --all --restart

系统管理员可以使用 AWS Systems Manager 在 x86 Mac 实例上推出预先批准的操作系统更新。有关更多信息,请参阅《AWS Systems Manager 用户指南》

您可以使用 Homebrew 在 EC2 macOS AMI 中安装软件包的更新,以便在实例上拥有这些软件包的最新版本。您还可以使用 Homebrew 在 Amazon EC2 macOS 上安装和运行常见 macOS 应用程序。有关详细信息,请参阅 Homebrew 文档

使用 Homebrew 安装更新
  1. 使用以下命令更新 Homebrew。

    [ec2-user ~]$ brew update
  2. 使用以下命令列出包含可用更新的软件包。

    [ec2-user ~]$ brew outdated
  3. 安装所有更新或仅安装特定更新。要安装特定更新,请使用以下命令。

    [ec2-user ~]$ brew upgrade package name

    要改为安装所有更新,请使用以下命令。

    [ec2-user ~]$ brew upgrade

在 Apple silicon Mac 实例上更新软件

注意事项

弹性网络适配器(ENA)驱动程序

由于网络驱动程序配置更新的原因,ENA 驱动程序版本 1.0.2 与 macOS 13.3 或更高版本不兼容。如果要安装任何测试版、预览版或正式版 macOS 13.3 或更高版本,并且尚未安装最新的 ENA 驱动程序,请按照以下步骤安装新版本的驱动程序。

安装新版本的 ENA 驱动程序
  1. 在终端窗口中,使用 SSH 连接到 Apple silicon Mac 实例。

  2. 使用下面的命令将 ENA 应用程序下载到 Applications 文件中。

    [ec2-user ~]$ brew install amazon-ena-ethernet-dext
    故障排除技巧

    如果您收到 No available formula with the name amazon-ena-ethernet-dext 警告,请运行以下命令。

    [ec2-user ~]$ brew update
  3. 键入 exit,然后按下回车键,从而将实例断开连接。

  4. 使用 VNC 客户端激活 ENA 应用程序。

    1. 使用 连接到您实例的图形用户界面(GUI) 设置 VNC 客户端。

    2. 使用屏幕共享应用程序连接到实例后,转到 Applications 文件夹并打开 ENA 应用程序。

    3. 选择激活

    4. 要确认已正确激活驱动程序,请在终端窗口中运行以下命令。命令的输出将显示旧驱动程序处于正在终止状态,而新驱动程序处于已激活状态。

      systemextensionsctl list;
    5. 重启实例后,将仅出现新驱动程序。

Apple silicon Mac 实例上的软件更新

在 Apple silicon Mac 实例上,您必须完成几个步骤才能执行就地操作系统更新。首先,使用具备 VNC(虚拟网络计算)客户端的 GUI 访问实例的内部磁盘。此过程使用内置 VNC 客户端中的 macOS 屏幕共享。然后以 aws-managed-user 身份登录 Amazon EBS 卷,以将所有权委派给管理用户 (ec2-user)。

完成此过程后,您将创建两个密码。一个密码适用于管理用户 (ec2-user),另一个密码适用于特殊管理用户 (aws-managed-user)。请记住这些密码,因为您将在完成该过程后使用它们。

注意

在 macOS Big Sur 上执行该过程后,只能进行次要更新,例如从 macOS Big Sur 11.7.3 更新到 macOS Big Sur 11.7.4。对于 macOS Monterey 或更高版本,可以执行主要软件更新。

访问内部磁盘
  1. 在本地计算机上的终端中,使用以下命令通过 SSH 连接到 Apple silicon Mac 实例。有关更多信息,请参阅 使用 SSH 连接到您的实例

    ssh -i /path/key-pair-name.pem ec2-user@instance-public-dns-name
  2. 使用以下命令安装并启动 macOS 屏幕共享。

    [ec2-user ~]$ sudo launchctl enable system/com.apple.screensharing sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.screensharing.plist
  3. 使用以下命令设置 ec2-user 的密码。请记住该密码,因为您稍后会用到它。

    [ec2-user ~]$ sudo /usr/bin/dscl . -passwd /Users/ec2-user
  4. 键入 exit 并按 return,与实例断开连接。

  5. 在本地计算机上的终端中,使用以下命令,通过通往 VNC 端口的 SSH 隧道重新连接到实例。

    ssh -i /path/key-pair-name.pem -L 5900:localhost:5900 ec2-user@instance-public-dns-name
    注意

    在完成以下 VNC 连接和 GUI 步骤之前,请勿退出该 SSH 会话。实例重启后,连接会自动关闭。

  6. 在本地计算机上,使用以下步骤连接到 localhost:5900

    1. 打开查找器并选择前往

    2. 选择连接到服务器

    3. 服务器地址字段中,输入 vnc://localhost:5900

  7. 在 macOS 窗口中,使用您在步骤 3 中创建的密码,以 ec2-user 身份连接到 Apple silicon Mac 实例的远程会话。

  8. 使用以下选项之一访问名为 InternalDisk 的内部磁盘。

    1. 对于 macOS Ventura 或更高版本:打开系统设置,在左侧窗格中选择常规,然后选择窗格右下角的启动磁盘

    2. 对于 macOS Monterey 或更低版本:打开系统偏好设置,选择启动磁盘,然后选择窗口左下角的锁定图标以解锁窗格。

    故障排除技巧

    如需安装内部磁盘,请在终端中运行以下命令。

    APFSVolumeName="InternalDisk" ; SSDContainer=$(diskutil list | grep "Physical Store disk0" -B 3 | grep "/dev/disk" | awk {'print $1'} ) ; diskutil apfs addVolume $SSDContainer APFS $APFSVolumeName
  9. 选择名为 InternalDisk 的内部磁盘,然后选择重新启动。出现系统提示时,再次选择重新启动

    重要

    如果内部磁盘名为 Macintosh HD 而不是 InternalDisk,则需要停止实例然后重新启动,才能更新专属主机。有关更多信息,请参阅 停止并终止 Mac 实例

按照以下步骤操作可将所有权委派给管理用户。通过 SSH 重新连接到实例后,可使用特殊管理用户 (aws-managed-user) 从内部磁盘启动实例。aws-managed-user 的初始密码为空,因此您需要在首次连接时将其覆盖。然后,由于启动卷已更改,您需要重复安装和启动 macOS 屏幕共享的步骤。

将 Amazon EBS 卷的所有权委派给管理员
  1. 在本地计算机上的终端中,使用以下命令连接到 Apple silicon Mac 实例。

    ssh -i /path/key-pair-name.pem aws-managed-user@instance-public-dns-name
  2. 收到警告 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! 后,使用以下命令之一解决该问题。

    1. 使用以下命令清除已知主机。然后重复上一步。

      rm ~/.ssh/known_hosts
    2. 将以下内容添加到上一个步中的 SSH 命令。

      -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no
  3. 使用以下命令设置 aws-managed-user 的密码。aws-managed-user 的初始密码为空,因此您需要在首次连接时将其覆盖。

    1. [aws-managed-user ~]$ sudo /usr/bin/dscl . -passwd /Users/aws-managed-user password
    2. 收到提示 Permission denied. Please enter user's old password: 时,请按 Enter。

      故障排除技巧

      如您遇到 passwd: DS error: eDSAuthFailed 错误,请使用以下命令。

      [aws-managed-user ~]$ sudo passwd aws-managed-user
  4. 使用以下命令安装并启动 macOS 屏幕共享。

    [aws-managed-user ~]$ sudo launchctl enable system/com.apple.screensharing sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.screensharing.plist
  5. 键入 exit 并按 return,与实例断开连接。

  6. 在本地计算机上的终端中,使用以下命令,通过通往 VNC 端口的 SSH 隧道重新连接到实例。

    ssh -i /path/key-pair-name.pem -L 5900:localhost:5900 aws-managed-user@instance-public-dns-name
  7. 在本地计算机上,使用以下步骤连接到 localhost:5900

    1. 打开查找器并选择前往

    2. 选择连接到服务器

    3. 服务器地址字段中,输入 vnc://localhost:5900

  8. 在 macOS 窗口中,使用您在步骤 3 中创建的密码,以 aws-managed-user 身份连接到 Apple silicon Mac 实例的远程会话。

    注意

    当提示使用 Apple ID 登录时,选择稍后设置

  9. 使用以下选项之一访问 Amazon EBS 卷。

    1. 对于 macOS Ventura 或更高版本:打开系统设置,在左侧窗格中选择常规,然后选择窗格右下角的启动磁盘

    2. 对于 macOS Monterey 或更低版本:打开系统偏好设置,选择启动磁盘,然后选择窗口左下角的锁定图标以解锁窗格。

    注意

    重启之前,当系统提示输入管理员密码时,请使用上述为 aws-managed-user 设置的密码。此密码可能不同于您为 ec2-user 或实例上的默认管理员账户设置的密码。以下说明指定了何时使用实例的管理员密码。

  10. 选择 Amazon EBS 卷(启动磁盘窗口中未命名为 internalDisk 的卷),然后选择重新启动

    注意

    如果您的 Apple silicon Mac 实例上附加了多个可启动的 Amazon EBS 卷,则必须为每个卷使用唯一的名称。

  11. 确认重新启动,然后在出现系统提示时选择授权用户

  12. 在该卷上授权用户窗格中,确认是否已选择管理用户(默认为 ec2-user),然后选择授权

  13. 输入您在上一过程步骤 3 中创建的 ec2-user 密码,然后选择继续

  14. 出现系统提示时,输入特殊管理用户 (aws-managed-user) 的密码。

  15. 在本地计算机上的终端中,通过 SSH 和用户名 ec2-user 重新连接到实例。

    故障排除技巧

    如果收到警告 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!,请运行以下命令并通过 SSH 重新连接到实例。

    rm ~/.ssh/known_hosts
  16. 要执行软件更新,请使用 在 x86 Mac 实例上更新软件 下方的命令。

EC2 macOS Init

EC2 macOS Init 用于在启动时初始化 EC2 Mac 实例。它使用优先级组同时运行逻辑任务组。

已启动的 plist 文件是 /Library/LaunchDaemons/com.amazon.ec2.macos-init.plist。EC2 macOS Init 的文件位于 /usr/local/aws/ec2-macos-init

有关更多信息,请参阅 https://github.com/aws/ec2-macos-init

Amazon EC2 System Monitor for macOS

Amazon EC2 System Monitor for macOS 为 Amazon CloudWatch 提供 CPU 利用率指标。它在 1 分钟内将这些指标通过自定义串行设备发送到 CloudWatch。您可以按如下方式启用或禁用此代理。该功能默认已启用。

sudo setup-ec2monitoring [enable | disable]
注意

Apple silicon Mac 实例目前不支持 Amazon EC2 System Monitor for macOS。

在 Mac 实例上增加 EBS 卷的大小

您可以在 Mac 实例上增加 Amazon EBS 卷的大小。有关更多信息,请参阅《Amazon EBS 用户指南》中的 Amazon EBS 弹性卷

增加卷的大小后,您必须按以下方式增加 APFS 容器的大小。

使增加的磁盘空间可供使用
  1. 确定是否需要重新启动。如果您调整了正在运行的 Mac 实例上的现有 EBS 卷的大小,则必须重新启动实例才能使新大小可用。如果在启动期间完成了磁盘空间的修改,则无需重新启动。

    查看磁盘大小的当前状态:

    [ec2-user ~]$ diskutil list external physical /dev/disk0 (external, physical): #: TYPE NAME SIZE IDENTIFIER 0: GUID_partition_scheme *322.1 GB disk0 1: EFI EFI 209.7 MB disk0s1 2: Apple_APFS Container disk2 321.9 GB disk0s2
  2. 复制并粘贴以下命令。

    [ec2-user ~]$ PDISK=$(diskutil list physical external | head -n1 | cut -d" " -f1) APFSCONT=$(diskutil list physical external | grep "Apple_APFS" | tr -s " " | cut -d" " -f8) yes | sudo diskutil repairDisk $PDISK
  3. 复制并粘贴以下命令。

    [ec2-user ~]$ sudo diskutil apfs resizeContainer $APFSCONT 0

停止并终止 Mac 实例

当您停止 Mac 实例时,它会保持 stopping 状态约 15 分钟,然后进入 stopped 状态。

当您停止或终止 Mac 实例时,Amazon EC2 将在底层 专属主机 上执行清理工作流程以擦除内部 SSD、清除持久 NVRAM 变量,并更新到最新的设备固件。这可确保 Mac 实例提供与其他 EC2 Nitro 实例相同的安全性和数据隐私。您还可以借助它运行最新的 macOS AMI。在清理工作流程中,专属主机临时进入待处理状态。在 x86 Mac 实例上,清理工作流程最多可能需要 50 分钟才能完成。在 Apple silicon Mac 实例上,清理工作流程最多可能需要 110 分钟才能完成。此外,在 x86 Mac 实例上,如果设备固件需要更新,则清理工作流程最多可能需要 3 个小时才能完成。

在清理工作流程完成之前,您无法启动已停止的 Mac 实例或启动新的 Mac 实例,在该工作流程完成之后,专用主机 将进入 available 状态。

专用主机进入 pending 状态时,计量和计费将暂停。清理工作流程执行期间不会向您计费。

专属主机支持的 macOS 版本

您可以查看 Amazon EC2 Mac 专属主机支持的最新 macOS 版本。您可以使用此功能来验证专属主机是否支持通过首选的 macOS 版本启动实例。

每个 macOS 版本都需要在底层 Apple Mac 上安装最低固件版本才能成功启动。如果分配的 Mac 专属主机长时间处于空闲状态,或者存在长时间运行的实例,则 Apple Mac 固件版本可能会过时。

为确保支持最新 macOS 版本,可在分配的 Mac 专属主机上停止或终止实例。这将触发主机清理工作流程并更新底层 Apple Mac 上的固件,从而支持最新 macOS 版本。停止或终止正在运行的实例时,存在长时间运行实例的专属主机将自动更新。

有关清理工作流程的更多信息,请参阅 停止并终止 Mac 实例

有关启动 Mac 实例的更多信息,请参阅 启动 Mac 实例

您可以使用 Amazon EC2 控制台或 AWS CLI 来查看有关分配的专属主机支持的最新 macOS 版本的信息。

Console
使用控制台查看专属主机固件信息
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择专用主机

  3. 您可以在专属主机详细信息页面上的支持的最新 macOS 版本下,查看该主机支持的最新 macOS 版本。

AWS CLI
使用 AWS CLI 查看专属主机固件信息

使用 describe-mac-hosts 命令,将 region 替换为相应的 AWS 区域。

$ aws ec2 describe-mac-hosts --region us-east-1 { "MacHosts": [ { "HostId": "h-07879acf49EXAMPLE", "MacOSLatestSupportedVersions": [ "14.3", "13.6.4", "12.7.3" ] } ] }

订阅 macOS AMI 通知

要在新 AMI 发布时或 bridgeOS 更新时收到通知,请使用 Amazon SNS 来订阅通知。

订阅 macOS AMI 通知
  1. 通过以下网址打开 Amazon SNS 控制台:https://console.aws.amazon.com/sns/v3/home

  2. 如果需要,可在导航栏中将区域更改为美国东部(弗吉尼亚北部)。您必须使用此区域,因为您订阅的 SNS 通知是在此区域中创建的。

  3. 在导航窗格中,选择 Subscriptions

  4. 选择 Create subscription

  5. 对于 Create subscription 对话框,执行以下操作:

    1. 对于 Topic ARN,复制并粘贴以下任意一个 Amazon Resource Name (ARN):

      • arn:aws:sns:us-east-1:898855652048:amazon-ec2-macos-ami-updates

      • arn:aws:sns:us-east-1:898855652048:amazon-ec2-bridgeos-updates

      对于 Protocol (协议)

    2. 电子邮件:

      对于 Endpoint,键入可用于接收通知的电子邮件地址。在您创建订阅之后,您将收到一条确认消息,其中包含主题行AWS Notification - Subscription Confirmation。打开电子邮件,然后选择 Confirm subscription (确认订阅) 以完成订阅。

    3. SMS:

      对于 Endpoint (端点),键入可用于接收通知的电话号码。

    4. AWS Lambda、Amazon SQS、Amazon Data Firehose通知将以 JSON 格式提供):

      对于 Endpoint (端点),输入 Lambda 函数、SQS 队列或者可用于接收通知的 Firehose 流。

    5. 选择 Create subscription

每当发布 macOS AMI 时,我们都会向 amazon-ec2-macos-ami-updates 主题的订阅者发送通知。只要 bridgeOS 更新,我们就会向 amazon-ec2-bridgeos-updates 主题的订阅者发送通知。如果您不希望再收到这些通知,请通过以下步骤取消订阅。

取消订阅 macOS AMI 通知
  1. 通过以下网址打开 Amazon SNS 控制台:https://console.aws.amazon.com/sns/v3/home

  2. 如果需要,可在导航栏中将区域更改为美国东部(弗吉尼亚北部)。您必须使用此区域,因为 SNS 通知是在此区域中创建的。

  3. 在导航窗格中,选择 Subscriptions

  4. 选择订阅,然后选择 ActionsDelete subscriptions,在提示确认时,选择 Delete

释放 Mac 实例的 专用主机

完成 Mac 实例后,您可以释放专用主机。在释放 专用主机 之前,必须停止或终止 Mac 实例。在分配期超过 24 小时最低限度之前,您无法释放主机。

释放 专用主机
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择实例

  3. 选择实例并选择 Instance state (实例状态),然后选择 Stop instance (停止实例)Terminate instance (终止实例)

  4. 在导航窗格中,选择专用主机

  5. 选择 专用主机,然后选择 Action (操作) Release host (释放主机)

  6. 当系统提示进行确认时,选择 Release (释放)

有关定价的信息,请参阅 定价

有关 Mac 实例的更多信息,请参阅 Amazon EC2 Mac 实例

有关 Mac 实例硬件规格和网络性能的更多信息,请参阅通用实例