映像创建和管理 - 部署 Amazon AppStream 2.0 的最佳实践

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

映像创建和管理

在 AppStream 2.0 中启动实例集或映像生成器时,必须选择一个 AppStream 2.0 基础映像。然后,管理员可以在基础映像的基础上进行构建,添加自己的应用程序和配置设置。

在构建映像时,需要考虑一些关键因素,以确保应用程序正常、安全地运行。此外,对于如何维护该映像,还有一些设计方面的考虑。

构建 AppStream 2.0 映像

构建新映像时,您必须要考虑以下各项:

  • 操作系统

  • 应用程序

  • 用户配置文件

  • 安全性

  • 性能

  • 代理版本

  • Image Assistant CLI

构建 AppStream 2.0 映像

2021 年 11 月,AppStream 2.0 开始支持 Amazon Linux 2。继这次发布后,AppStream 2.0 现已支持四种类型的平台:

  • Windows Server 2012 R2

  • Windows Server 2016

  • Windows Server 2019

  • Amazon Linux 2

您可能必须根据应用程序的要求选择特定的平台(例如,如果您的应用程序需要 Windows,则无法选择 Amazon Linux 2)。除了应用程序要求外,还可以参考以下比较表,可帮助您根据使用案例和环境选择最合适的平台类型:

表 1 — 平台类型、何时使用以及定价

平台类型

何时使用

实例集定价*

Windows Server(2012 R2、2016 或 2019)

您的应用程序只能在 Windows 中运行(而且它不支持 Amazon Linux 2)。您希望流式处理实例加入域。您希望在 AppStream 2.0 流式处理实例上使用现有组策略(Linux 不遵循组策略,但您可以使用会话脚本在会话开始时自动进行配置)。您将使用桌面视图,您的用户更喜欢 Windows 桌面体验。您更喜欢使用 Image Assistant 应用程序,它提供分步向导,用于创建应用程序目录和映像。目前,您必须使用终端命令创建 Amazon Linux 2 映像(有关更多信息,请参阅本教程)。您想使用应用程序设置持久性。基于 Linux 的堆栈目前不支持启用应用程序设置持久性。

每位唯一用户每月 4.19 美元的 RDS SAL(Microsoft 远程桌面服务订阅者访问许可证)许可费**,外加以下费用:

  1. Always-On、On-Demand 实例集每小时 0.10 美元

  2. Elastic 实例集每小时 0.15 美元

Amazon Linux 2

您想以尽可能更低的成本流式传输实例并避免 RDS SAL 许可费。您的应用程序与 Amazon Linux 2 兼容

与 Windows 实例相比,Linux 实例的价格更低。使用 Linux,您无需支付 RDS SAL 许可法费,只需按小时支付以下费用:

  1. Always-On、On-Demand 实例集每小时 0.084 美元:

  2. Elastic 实例集每小时 0.112 美元

* 基于弗吉尼亚北部地区的 stream.standard.medium

** 符合条件的客户可以自带许可证,免除 AWS RDS SAL 许可费。如需了解更多详情,请参阅 AppStream 2.0 定价页面。教育领域客户也可能有资格享受特别优惠。学校、大学和某些公共机构可能有资格享受减免的 Microsoft RDS SAL 用户费。

应用程序

在安装应用程序之前,请务必查看应用程序要求,例如应用程序依赖项和硬件要求。在映像生成器实例上成功安装应用程序后,请确保在测试用户环境下切换用户和测试应用程序。

在规划应用程序部署时,请注意服务端点和限额。此外,在创建映像之前,请清理安装程序和帮助文件以优化 C 盘的总空间。提醒一下,AppStream 2.0 实例有一个 200 GB 的固定大小的卷。为确保永远不会超过固定大小的容量,最好是在安装后优化磁盘空间。

如果您想修改用户可以实时访问的应用程序目录,动态应用程序框架提供了 API 操作。动态应用程序提供程序所管理的应用程序可以位于映像中,也可以位于实例外,例如来自 Windows 文件共享或应用程序虚拟化技术。此特征需要已加入 Microsoft Active Directory 域的 AppStream 2.0 实例集。有关更多信息,请参阅将 Active Directory 与 AppStream 2.0 结合使用

应用程序块

应用程序块代表启动用户将要使用的应用程序所需的安装脚本和应用程序文件。虚拟硬盘 (VHD) 可以是从 Amazon S3 下载的任何对象。建议将此对象的容量小于 1.5GB,因为用户必须将其完全下载后才能访问应用程序。

优化应用程序块

对于基于 Windows 的实例集,建议您创建一个 VHDX 文件来包含您的应用程序。对于基于 Linux 的实例集,建议您创建一个映像 (IMG)。这些虚拟磁盘应创建得尽可能小,以便存放应用程序文件。可以对虚拟磁盘进行压缩,进一步减小其大小。在安装脚本中,您需要先解压缩磁盘,然后再进行安装。示例 Windows PowerShell 安装脚本包含解压缩功能。在存档 (zip) 解压速度和下载速度之间需要权衡一下。可能需要进行一些测试,才能找到能够提供最快应用程序启动时间的平衡点。

更新应用程序

应用程序更新可以分为次要和主要更新。要进行次要更新,请在托管应用程序块文件的 Amazon S3 存储桶上使用启用版本控制。此设置允许管理员通过更改相关应用程序 VHD 对象的版本,回滚到特定应用程序的先前版本,而无需更改应用程序块配置。进行主要更新时,请为更新后的 VHD 创建一个新的应用程序块。这可以让管理员在应用程序块级别而非版本控制级别单独进行主要的应用程序更新,这为管理员管理应用程序提供了一种更有条理的方法。

用户配置文件自定义

Amazon AppStream 2.0 是一种非持久性应用程序和桌面解决方案,这是故意设计的。当用户会话终止时,系统和用户更改也会终止。仅在需要时才启用应用程序设置持久性。这可能会增加登录过程的开销,以及所需的 S3 存储的成本。

在需要应用程序设置持久性的情况下,AWS 建议通过自定义策略和 S3 VPC 网关端点保护该连接。衡量应用程序设置的总体大小,并尽量减少应用程序设置持久性中保存的设置,从而优化成本和性能。

可以在 AppStream 2.0 映像生成器实例上进行用户配置文件的自定义配置。这包括添加和修改注册表项、添加文件以及其他特定于用户的配置。在 AppStream 2.0 Image Assistant 中,有一个创建用户配置文件的选项。它可以将模板用户配置文件复制到默认用户配置文件中。将映像部署到实例集后,从实例集流式传输会话的最终用户将根据默认用户配置文件创建其用户配置文件。请务必考虑最大限度减少用户配置文件的大小,尤其是在启用“应用程序设置持久性”的情况下。默认情况下,用户配置文件的最大 VHDx 大小为 1 GB。每次启动流会话时,都需要从 S3 存储桶下载用户配置文件 VHDx 文件。这会延长流会话的准备时间,并带来超限风险,导致使用 VHDx 文件挂载用户配置文件失败。

对于所需用户配置文件大于 1 GB 的使用案例,AWS 建议使用其他方法来存储配置文件。例如,在共享存储上使用漫游配置文件或 FSLogix 配置文件容器,例如适用于 Windows File Server 的 Amazon FSx。有关更多信息,请参阅使用适用于 Windows File Server 的 Amazon FSx 和 FSLogix 来优化 Amazon AppStream 2.0 上的应用程序设置持久性

安全性

开发人员需要考虑不同的安全措施。AppStream 管理员负责安装和维护 Windows 操作系统、应用程序及其依赖项的更新。有关使基础映像保持最新状态的其他指导,请参阅将 AppStream 2.0 映像保持最新,以获取有关使基础映像保持最新状态的更多指导。

默认情况下,AppStream 2.0 让用户或应用程序可以在实例上启动任意程序,超出映像应用程序目录中指定的范围。当您的应用程序在工作流程中需要依赖其他应用程序,但您不希望用户能够直接启动该依赖应用程序时,这很有用。例如,您的应用程序需要启动浏览器以提供来自应用程序供应商网站的帮助说明,但您不希望用户直接启动浏览器。在某些情况下,您可能需要控制可以在流式处理实例上启动哪些应用程序。Microsoft AppLocker 是一种应用程序控制软件,它使用明确的控制策略来启用或禁用用户可以运行的应用程序。

防病毒软件可能会对流会话和映像生成器实例产生不利影响。AWS 建议您不要为防病毒软件启用自动更新。有关 Windows Defender 的更多信息,请参阅防病毒软件

性能

在创建新映像之前,必须以测试用户身份测试应用程序。以测试用户身份进行测试可以确保应用程序可以在非管理员用户环境下运行。此外,还可使用任务管理器和性能监视器等内置工具查看应用程序性能和用户体验。最好可以监控 CPU、内存和 GPU 内存等资源的使用率。如果存在 CPU、内存或 GPU 内存资源限制,请考虑升级实例类型。要提高性能,请执行以下操作:

  • 禁用浏览器弹出窗口

  • 禁用 IE 增强的安全配置

AppStream 2.0 代理版本选择

创建新映像时,您可以选择使用最新的 AppStream 2.0 代理软件,也可以选择不更新。每个版本的 AppStream 2.0 代理软件都包含错误修复和增强特征。请使用最新的软件保留您的映像。请在本文档的映像更新部分中查看相关机制。

您可以选择使用最新代理选项。此选项可确保在启动时始终安装最新的 AppStream 2.0 代理。但是,计划外的更新可能会影响用户体验,代理更新可能会延长启动实例的时间。更新基础映像需要重新创建该映像。同样重要的是,在将更新的映像部署到生产环境之前进行测试,可以最大限度地缩短启动时间。

Image Assistant 命令行界面(CLI)

对于想要自动或以编程方式创建 AppStream 2.0 映像的开发人员,请使用 Image Assistant CLI。2019 年 7 月 26 日或之后发布的 AppStream 2.0 代理软件的映像生成器上提供该功能。以下概述描述了以编程方式创建 AppStream 2.0 映像的过程。

  1. 使用应用程序安装自动化通过映像生成器安装所需的应用程序。此安装可能包括用户将启动的应用程序、所有依赖项和后台应用程序。

  2. 确定要优化的文件和文件夹。

  3. 如果适用,请使用 Image Assistant add-application CLI 操作为 AppStream 2.0 映像指定应用程序元数据和优化清单。

  4. 要为 AppStream 2.0 映像指定其他应用程序,请根据需要为每个应用程序重复步骤 1 到 3。

  5. 如果适用,请使用 Image Assistant update-default-profile CLI 操作覆盖默认 Windows 配置文件,并为用户创建默认应用程序和 Windows 设置。

  6. 使用 Image Assistant create-image CLI 操作来创建映像。

有关更多信息,请参阅使用 Image Assistant CLI 操作以编程方式创建 AppStream 2.0 映像