

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

# 架构概述
<a name="architecture"></a>

本节提供了此解决方案所部署组件的参考实施架构图。

## 架构图
<a name="architecture-diagram"></a>

使用默认参数部署此解决方案将在您的 AWS 账户中部署以下组件。

**注意**  
该解决方案包括一个\$1中心账户模板\$1（首先部署），用于管理中心账户 WorkSpaces 并提供集中报告，以及用于您要监控的每个账户的\$1分支 WorkSpace 账户模板\$1（然后部署）。该解决方案为每个目录生成一份报告，并生成一份汇总报告，其中包含 WorkSpaces 来自所有目录的相关信息。

 **适用于 Ama WorkSpaces zon 架构的成本优化器** 

![\[工作空间成本优化器架构\]](http://docs.aws.amazon.com/zh_cn/solutions/latest/cost-optimizer-for-workspaces/images/workspaces-cost-optimizer-architecture.png)


1. 分支模板创建一个[自定义资源，该资源](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-custom-resources.html)调用 [AWS](https://aws.amazon.com/lambda/) Lambda 函数，将该账户注册为中心账户的 Amazon [DynamoDB 表](https://aws.amazon.com/dynamodb)中的分支账户。

1. 中心模板创建了一 EventBridge条 [Amazon](https://aws.amazon.com/eventbridge/) 规则，该规则每 24 小时调用一次 [Amazon ECS](https://aws.amazon.com/ecs/) 任务。

1. Amazon EC [S 任务在每个分支账户中扮演一个 AWS 身份和访问管理 (IAM)](https://aws.amazon.com/iam/) 角色进行管理 WorkSpaces。

1. Amazon ECS 任务会轮询 [AWS Directory Service](https://aws.amazon.com/directoryservice/)，以收集 WorkSpaces 在特定 AWS 区域为亚马逊注册的所有目录的列表。然后，该任务会检查每种 WorkSpace 按小时计费模式的总使用量。如果 a WorkSpace 已达到每月使用量阈值，则该解决方案会将个人账单 WorkSpace 转换为按月计费。
**注意**  
如果 WorkSpace 从按月计费 WorkSpace 开始，或者解决方案将按小时计费转换为按月计费，则如果使用量低于阈值，则该解决方案 WorkSpace 要等到下个月初才会将其转换为按小时计费。但是，您可以随时使用 Amazon WorkSpaces 控制台手动更改账单模式。此外，您可以更改每种账单从按小时计费 WorkSpace 转换为按月计费的阈值。如需了解更多信息，请参阅[自动计费转换](features-and-benefits.md#automatic-billing-conversion) 

该解决方案还具有试运行模式（默认激活），可让您深入了解建议的更改将如何影响您的成本。有关更多信息，请参阅试[运行模式](features-and-benefits.md#dry-run-mode)。

\$1

月底，Amazon ECS 任务会检查采用按月计费模式的每个工作区的总使用量。如果 a WorkSpace 未达到每月使用量阈值，则该解决方案将在下个月初将个人账单 WorkSpace 从按月计费转换为按小时计费。Amazon ECS 任务将执行结果写入 DynamoDB 使用率表、会话表，然后将其上传到亚马逊[简单云存储 (Amazon S3) 存储桶](https://aws.amazon.com/s3/)。

**注意**  
经常检查您的 Amazon S3 存储桶，以跟踪优化器的活动，并查看包含错误消息的日志。

# AWS Well-Architected 设计框架
<a name="aws-well-architected-design"></a>

我们根据来自 AWS Well-Architected Framework 的最佳实践设计了此解决方案，该框架可帮助客户在云中设计和运行可靠、安全、高效且具有成本效益的工作负载。

本节介绍我们在构建此解决方案时如何应用 Well-Architected Framework 的设计原则和最佳实践。

 **卓越运营** 

本节介绍我们在设计此解决方案时如何应用[卓越运营支柱](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/welcome.html)的原则和最佳实践。
+ 该解决方案将指标推送 CloudWatch到[亚马逊](https://aws.amazon.com/cloudwatch/)，以提供基础设施、AWS Lambda 函数、Amazon S3 存储桶和其他解决方案组件的可观察性。
+ 该解决方案会更新每日报告，以表明是否由于应用程序编程接口 (API) 故障而 WorkSpace 被跳过。
+ 该解决方案提供了一种在向分支账户添加新 WorkSpace 工作负载时逐步加入分支账户的方法。

 **安全性** 

本节介绍我们在设计此解决方案时如何应用[安全支柱](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/welcome.html)的原则和最佳实践。
+ 所有服务间通信都使用 IAM 角色。
+ 所有多账户通信都使用 IAM 角色。
+ 该解决方案使用的所有角色都遵循最低权限访问权限。换句话说，它们仅包含服务正常运行所需的最低权限。
+ 所有数据存储，包括 Amazon S3 存储桶和 DynamoDB 表，都处于静态加密状态。

 **可靠性** 

本节介绍我们在设计此解决方案时如何应用[可靠性支柱](https://docs.aws.amazon.com/wellarchitected/latest/reliability-pillar/welcome.html)的原则和最佳实践。
+ 该解决方案尽可能使用无服务器 AWS 服务（例如 Lambda、Amazon S3 和 AWS Fargate）来确保高可用性并从服务故障中恢复。
+ 数据处理使用 Lambda 函数。该解决方案将数据存储在 DynamoDB 和 Amazon S3 中，因此默认情况下它会保留在多个可用区中。

 **性能效率** 

本节介绍我们在设计此解决方案时如何应用[性能效率支柱](https://docs.aws.amazon.com/wellarchitected/latest/performance-efficiency-pillar/welcome.html)的原则和最佳实践。
+ 所有服务间通信都使用 IAM 角色。
+ 该解决方案尽可能使用无服务器 AWS 服务（例如 Lambda、Amazon S3 和 Fargate）。
+ 该解决方案允许在支持本解决方案中使用的 AWS 服务的任何 AWS 区域启动，例如 AWS Lambda 和 Amazon S3。
+ 每天自动测试和部署。该解决方案由解决方案架构师和主题专家审核，确定需要实验和改进的领域。

 **成本优化** 

本节介绍我们在设计此解决方案时如何应用[成本优化支柱](https://docs.aws.amazon.com/wellarchitected/latest/cost-optimization-pillar/welcome.html)的原则和最佳实践。
+ 该解决方案使用无服务器架构，客户只需为其使用量付费。
+ 该解决方案使用适用于 Amazon S3 存储桶的生命周期策略，在一年后删除对象，以帮助降低存储成本。
+ 该解决方案提供了终止未使用的功能 WorkSpaces ，可通过减少运营工作负载来帮助您节省成本。

 **可持续性** 

本节介绍我们在设计此解决方案时如何应用[可持续发展支柱](https://docs.aws.amazon.com/wellarchitected/latest/sustainability-pillar/sustainability-pillar.html)的原则和最佳实践。
+ 该解决方案使用托管和无服务器服务来最大限度地减少后端服务对环境的影响。
+ 与持续运行本地服务器的足迹相比，该解决方案的无服务器设计旨在减少碳足迹。
+ 解决方案提供了终止未使用的功能 WorkSpaces ，以帮助进一步减少碳足迹。

# AWS 组织支持
<a name="aws-organizational-support"></a>

该解决方案通过 hub-and-spoke架构支持 AWS Organizations。要监控组织中的 WorkSpaces 多个账户，请允许组织管理账户中的 [AWS Resource Access Manager (AWS RAM) 可信访问](https://aws.amazon.com/ram/)。有关如何允许 RAM 可信访问的更多信息，请参阅 AWS Res [ource Access Manager 和 AWS Organization](https://docs.aws.amazon.com/organizations/latest/userguide/services-that-can-integrate-ram.html) s。

您可以在中央账户中部署中心模板，然后在管理的每个账户中部署分支模板 WorkSpaces。分支堆栈必须与中心堆栈部署在同一个区域。

对于多账户部署，请为**多账户部署提供组织 ID 的值，为****组织输入参数提供管理账户的账户 ID** 值。对于单账户部署，或者 WorkSpaces 仅在中央账户中进行管理，请仅部署中心模板，并保留输入参数 “**多账户部署的组织 ID**” 和 “**组织管理账户的账户 ID” 的**默认值。

# 此解决方案中的 AWS 服务
<a name="aws-services-in-this-solution"></a>

此解决方案中包含以下 AWS 服务：


| AWS 服务 | 描述 | 
| --- | --- | 
|   [Amazon WorkSpaces](https://aws.amazon.com/workspaces/)   |  该解决方案不会为 Amazon WorkSpaces 服务创建任何资源，但会监控客户账户 WorkSpaces 中的现有资源。  | 
|   [Amazon Simple Storage Service](https://aws.amazon.com/s3/)   |  该解决方案创建了一个 Amazon S3 存储桶，用于存储已处理数据的每日和月度报告 WorkSpaces。  | 
|   [AWS Organizations](https://aws.amazon.com/organizations/)   |  该解决方案监控 WorkSpaces 属于给定组织的账户。  | 
|   [AWS Lambda](https://aws.amazon.com/lambda/)   |  该解决方案创建 Lambda 函数以向中心账户注册分支账户。  | 
|   [Amazon Elastic Container Service](https://aws.amazon.com/ecs/)   |  该解决方案创建了一个 Amazon ECS 任务，用于监控 WorkSpaces 中心账户和分支账户。  | 
|   [AWS Directory Serv](https://aws.amazon.com/directoryservice/)   |  该解决方案不会为 AWS Directory Service 创建任何资源，但会监控现有目录 WorkSpaces 中的资源。  | 
|   [Amazon CloudWatch](https://aws.amazon.com/cloudwatch/)   |  该解决方案创建日志组来存储 Amazon ECS 任务和 Lambda 函数的日志。  | 
|   [AWS Fargate](https://aws.amazon.com/fargate/)   |  该解决方案使用 Fargate 启动类型来运行 Amazon ECS 任务。  | 
|   [AWS EventBridge](https://aws.amazon.com/eventbridge/)   |  该解决方案创建了按计划触发 Amazon ECS 任务的亚马逊 EventBridge 规则。  | 
|   [AWS IAM](https://aws.amazon.com/iam/)   |  该解决方案创建了访问 WorkSpaces 中心账户和分支账户所需的 IAM 角色。  | 
|   [Amazon DynamoDB](https://aws.amazon.com/dynamodb/)   |  该解决方案创建了一个 DyanaModb 表来存储分支账户的详细信息。  | 
|   [AWS Service Catalog](https://aws.amazon.com/servicecatalog/)   |  该解决方案创建了一个服务目录应用程序，并将该 CloudFormation 堆栈与该应用程序关联起来。  | 
|   [AWS CloudFormation](https://aws.amazon.com/cloudformation/)   |  该解决方案使用 CloudFormation 模板来部署监控所需的资源 WorkSpaces。  | 