使用自动创建 Amazon WorkSpaces 应用程序资源 AWS CloudFormation - AWS 规范指引

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

使用自动创建 Amazon WorkSpaces 应用程序资源 AWS CloudFormation

Ram Kandaswamy,Amazon Web Services

Summary

此模式提供了使用AWS CloudFormation模板在中自动创建 Amazon A WorkSpaces pp lication AWS Cloud s 资源的代码示例和步骤。该模式向您展示如何使用 CloudFormation 堆栈自动创建 WorkSpaces 应用程序资源,包括映像生成器、映像、队列实例和堆栈。您可以使用桌面或 WorkSpaces 应用程序交付模式,在 HTML5兼容的浏览器上将应用程序流式传输给最终用户。

先决条件和限制

先决条件

限制

  • 创建 WorkSpaces 应用程序实例后,您无法修改与该实例关联的 AWS Identity and Access Management(IAM) 角色。

  • 创建 WorkSpaces 应用镜像生成器实例后,您无法修改该映像生成器实例的属性(例如子网安全组)。

架构

下图向您展示了如何使用 CloudFormation 模板自动创建 WorkSpaces 应用程序资源。

自动创建 WorkSpaces 应用程序资源的工作流程。

下图显示了如下工作流:

  1. 您可以根据此模式的 “其他信息” 部分中的 YAML 代码创建 CloudFormation 模板。

  2. 该 CloudFormation 模板创建了一个 CloudFormation 测试堆栈。

    1. (可选)您可以使用 WorkSpaces 应用程序创建映像生成器实例。

    2. (可选)您可以使用自定义软件创建 Windows 映像。

  3. CloudFormation 堆栈创建 WorkSpaces 应用程序队列实例和堆栈。

  4. 您可以在 HTML5兼容的浏览器上将 WorkSpaces 应用程序资源部署给最终用户。

工具

  • Amazon A WorkSpaces pplications 是一项完全托管的应用程序流服务,可让您随时随地即时访问您的桌面应用程序。 WorkSpaces 应用程序管理托管和运行应用程序所需的 AWS 资源,自动扩展,并按需向用户提供访问权限。

  • AWS CloudFormation帮助您对资源进行建模和设置,快速一致地配置 AWS 资源,并在资源的整个生命周期中对其进行管理。您可以使用模板来描述资源及其依赖关系,然后将它们作为堆栈一起启动和配置,而不必单独管理资源。您可以跨多个 AWS 账户 和 AWS 区域管理和配置堆栈。

最佳实践

  • 正确配置映像生成器的网络访问权限 — 使用 NAT 网关进行仅限出站互联网访问,在具有适当互联网访问权限的虚拟私有云 (VPC) 子网中启动映像生成器。

    在创建映像之前,测试与所需资源(例如应用程序服务器、数据库和许可服务器)的网络连接。验证 VPC 路由表是否允许连接到所有必需的网络资源。有关更多信息,请参阅 WorkSpaces 应用程序文档中的互联网接入

  • 根据服务配额主动监控队列容量 — WorkSpaces 应用程序实例类型和大小配额按每个 AWS 账户、每个 AWS 区域。如果您在同一区域有多个实例集使用相同的实例类型和大小,则该区域所有实例集中的实例总数必须小于或等于适用的配额。有关更多信息,请参阅 WorkSpaces 应用程序文档中的队列故障排除

  • 部署队列之前,在 Image Builder 测试模式下测试应用程序 — 在创建映像并部署到队列之前,请务必在 Image Builder 测试模式下验证应用程序。测试模式模拟最终用户对舰队实例的有限权限。有关更多信息,请参阅 WorkSpaces 应用程序文档中的映像生成器故障排除

操作说明

Task说明所需技能

安装自定义软件和创建映像。

  1. 启动映像生成器并选择相关的实例类型、子网、安全组等。

  2. 连接实例时使用管理员模式。

  3. 使用图像助手或 PowerShell 脚本为您的自定义软件创建新的 Windows 映像。

注意

考虑使用 Windows AppLocker 功能进一步锁定图像。

AWS DevOps,云架构师
Task说明所需技能

更新 CloudFormation 模板。

  1. 使用此模式的 “其他信息” 部分中的代码作为 YAML 文件。

  2. 使用环境中参数所需值更新 YAML 文件。

AWS 系统管理员、云管理员、云架构师、常规 AWS、AWS 系统管理员

使用模板创建 CloudFormation 堆栈。

  1. 登录 AWS 管理控制台 并打开CloudFormation 控制台

  2. 在导航窗格中,选择堆栈

  3. 选择创建堆栈,然后选择使用新资源(标准)

  4. 先决条件 — 准备模板部分,请选择模板已就绪

  5. 指定模板部分,选择上传模板 文件

  6. 选择 “选择文件”,然后选择更新的 CloudFormation 模板。

  7. 完成向导中的剩余步骤创建您的堆栈。

应用程序所有者、AWS 系统管理员、Windows 工程师

问题排查

问题解决方案

各种问题

有关更多信息,请参阅 WorkSpaces 应用程序文档中的故障排除

相关资源

参考

教程和视频

附加信息

以下代码是一个模板示例,您可以使用该 CloudFormation 模板自动创建 WorkSpaces 应用程序资源。

AWSTemplateFormatVersion: 2010-09-09 Parameters: SubnetIds: Type: 'List<AWS::EC2::Subnet::Id>' testSecurityGroup: Type: 'AWS::EC2::SecurityGroup::Id' ImageName: Type: String Resources: AppStreamFleet: Type: 'AWS::AppStream::Fleet' Properties: ComputeCapacity: DesiredInstances: 5 InstanceType: stream.standard.medium Name: appstream-test-fleet DisconnectTimeoutInSeconds: 1200 FleetType: ON_DEMAND IdleDisconnectTimeoutInSeconds: 1200 ImageName: !Ref ImageName MaxUserDurationInSeconds: 345600 VpcConfig: SecurityGroupIds: - !Ref testSecurityGroup SubnetIds: !Ref SubnetIds AppStreamStack: Type: 'AWS::AppStream::Stack' Properties: Description: AppStream stack for test DisplayName: AppStream test Stack Name: appstream-test-stack StorageConnectors: - ConnectorType: HOMEFOLDERS UserSettings: - Action: CLIPBOARD_COPY_FROM_LOCAL_DEVICE Permission: ENABLED - Action: CLIPBOARD_COPY_TO_LOCAL_DEVICE Permission: ENABLED - Action: FILE_DOWNLOAD Permission: ENABLED - Action: PRINTING_TO_LOCAL_DEVICE Permission: ENABLED AppStreamFleetAssociation: Type: 'AWS::AppStream::StackFleetAssociation' Properties: FleetName: appstream-test-fleet StackName: appstream-test-stack DependsOn: - AppStreamFleet - AppStreamStack