

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

# 规划您的部署
<a name="plan-your-deployment"></a>

本节介绍部署解决方案之前的区域、[成本](cost.md)、[安全性](aws-well-architected-design-considerations.md#security)和其他注意事项。

## 支持的 AWS 区域
<a name="supported-aws-regions"></a>

该解决方案使用 Amazon Cognito 服务，但该服务目前并非在所有 AWS 区域都可用。要了解按地区划分的 AWS 服务的最新可用性，请参阅 [AWS 区域服务列表](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/)。

AWS 上的工作负载发现功能可在以下 AWS 区域中使用：


| 区域名称 |  | 
| --- | --- | 
|  美国东部（弗吉尼亚州北部）  |  加拿大（中部）  | 
|  美国东部（俄亥俄州）  |  欧洲地区（伦敦）  | 
|  美国西部（俄勒冈州）  |  欧洲地区（法兰克福）  | 
|  亚太地区（孟买）  |  欧洲地区（爱尔兰）  | 
|  亚太地区（首尔）  |  欧洲地区（巴黎）  | 
|  亚太地区（新加坡）  |  欧洲地区（斯德哥尔摩）  | 
|  亚太地区（悉尼）  |  南美洲（圣保罗）  | 
|  亚太地区（东京）  |  | 

AWS 上的工作负载发现功能不适用于以下 AWS 区域：


| 区域名称 | 服务不可用 | 
| --- | --- | 
|  AWS GovCloud （美国东部）  |  AWS AppSync  | 
|  AWS GovCloud （美国西部）  |  AWS AppSync  | 
|  中国（北京）  |  Amazon Cognito  | 
|  中国（宁夏）  |  Amazon Cognito  | 

# 成本
<a name="cost"></a>

运行此解决方案时预配置 AWS 服务的费用由您承担。从本次修订开始，在美国东部（弗吉尼亚北部）地区使用单实例部署选项运行此解决方案的成本约为**每小时 0.58 美元或每**月 **425.19 美元**。

**注意**  
在 AWS 云中在 AWS 上运行工作负载发现的成本取决于您选择的部署配置。以下示例提供了美国东部（弗吉尼亚北部）地区单实例和多实例部署配置的成本明细。下表示例中列出的 AWS 服务按月计费。

我们建议通过 [AWS Cost Explorer](https://aws.amazon.com/aws-cost-management/aws-cost-explorer/) 创建[预算](https://docs.aws.amazon.com/cost-management/latest/userguide/budgets-create.html)，以帮助管理成本。价格可能会发生变化。有关完整详情，请参阅本解决方案中使用的每项 AWS 服务的定价网页。

## 成本表示例
<a name="example-cost-tables"></a>

### 选项 1：单实例部署（默认）
<a name="option-1-single-instance-deployment-default"></a>

使用 AWS CloudFormation 模板部署此解决方案时，修改**OpensearchMultiAz**参数以`No`部署 OpenSearch 服务域的单个实例，然后将**CreateNeptuneReplica**参数修改为为 Neptune 数据存储`No`部署单个实例。单实例部署选项的成本较低，但在可用区出现故障时，它会降低 AWS 上工作负载发现的可用性。


| AWS 服务 | 实例类型 | 每小时成本 [美元] | 每月费用 [美元] | 
| --- | --- | --- | --- | 
|  Amazon Neptune  |   `db.r5.large`   |  0.348 美元  |  254.04 美元  | 
|  亚马逊 OpenSearch 服务  |   `m6g.large.search`   |  0.128 美元  |  93.44 美元  | 
|  亚马逊 VPC（NAT 网关）  |  不适用  |  0.090 USD  |  65.7 美元  | 
|  AWS Config  |  不适用  |  每项资源 0.003 美元  |  每项资源 0.003 美元  | 
|  亚马逊 ECS（AWS Fargate 任务）  |  不适用  |  0.02 美元  |  12.01 美元  | 
|  Total  |  |   **0.586 美元**   |   **425.19 美元**   | 

### 选项 2：多实例部署
<a name="option-2-multiple-instances-deployment"></a>

使用 AWS CloudFormation 模板部署此解决方案时，修改**OpensearchMultiAz**参数以在 OpenSearch 服务域的两个可用区中`Yes`部署两个实例，并将**CreateNeptuneReplica**参数修改为在 Neptune 数据存储的两个可用区中`Yes`部署两个实例。多实例部署选项的运行成本会更高，但在可用区出现故障时，它可以提高 AWS 上工作负载发现的可用性。


| AWS 服务 | 实例类型 | 每小时成本 | 每月费用 [美元] | 
| --- | --- | --- | --- | 
|  Amazon Neptune  |   `db.r5.large`   |  0.696 美元  |  508.08 美元  | 
|  亚马逊 OpenSearch 服务  |   `m6g.large.search`   |  0.256 美元  |  186.88 美元  | 
|  亚马逊 VPC（NAT 网关）  |  不适用  |  0.090 USD  |  65.7 美元  | 
|  AWS Config  |  不适用  |  每项资源 0.003 美元  |  每项资源 0.003 美元  | 
|  亚马逊 ECS（AWS Fargate 任务）  |  不适用  |  0.02 美元  |  12.01 美元  | 
|  Total  |  |   **1.062**   |   **772.67 美元**   | 
+ 您的最终费用取决于 AWS Config 检测到的资源数量。除了表中提供的金额外，还会为每个记录的资源项目支出 0.003 美元。

**重要**  
Amazon Neptune 和亚马逊 OpenSearch 服务的费用会有所不同，具体取决于您选择的实例类型。

# 安全性
<a name="security-1"></a>

当您在 AWS 基础设施上构建系统时，安全责任由您和 AWS 共同承担。这种[分担责任模式](https://aws.amazon.com/compliance/shared-responsibility-model/)减轻了您的运营负担，因为 AWS 运营、管理和控制包括主机操作系统、虚拟化层和服务运行设施的物理安全在内的组件。有关 AWS 安全的更多信息，请访问 [AWS 安全中心](https://aws.amazon.com/security/)。

## 资源访问权限
<a name="resource-access"></a>

### IAM 角色
<a name="iam-roles"></a>

IAM 角色允许客户向 AWS 云上的服务和用户分配精细的访问策略和权限。需要多个角色才能在 AWS 上运行工作负载发现和发现 AWS 账户中的资源。

### Amazon Cognito
<a name="amazon-cognito"></a>

Amazon Cognito 用于使用短期的强凭证对访问进行身份验证，该证书允许访问 AWS 上工作负载发现所需的组件。

## 网络访问
<a name="network-access"></a>

### Amazon VPC
<a name="amazon-vpc"></a>

AWS 上的工作负载发现部署在 Amazon VPC 中，并根据最佳实践进行配置，以提供安全性和高可用性。有关更多详细信息，请参阅[您的 VPC 安全最佳实践](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-security-best-practices.html)。VPC 终端节点允许在服务之间进行非互联网传输，并在可用时进行配置。

安全组用于控制和隔离在 AWS 上运行 Workload Discovery 所需的组件之间的网络流量。

我们建议您在部署启动并运行后查看安全组并根据需要进一步限制访问权限。

### Amazon CloudFront
<a name="amazon-cloudfront"></a>

此解决方案部署了[托管](https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html)在亚马逊分发的 Amazon S3 存储桶中的 Web 控制台用户界面。 CloudFront通过使用源访问身份功能，只能通过访问此 Amazon S3 存储桶的内容 CloudFront。有关更多信息，请参阅《亚马逊* CloudFront 开发者指南》中的限制对 Amazon* [S3 来源的访问](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html)。

CloudFront 激活其他安全缓解措施，将 HTTP 安全标头附加到每个查看者响应中。有关更多详细信息，请参阅[在 CloudFront 响应中添加或删除 HTTP 标头](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/adding-response-headers.html)。

此解决方案使用默认 CloudFront 证书，其支持的最低安全协议为 TLS v1.0。要强制使用 TLS v1.2 或 TLS v1.3，必须使用自定义 SSL 证书而不是默认 CloudFront 证书。有关更多信息，请参阅[如何将我的 CloudFront 发行版配置为使用 SSL/TLS 证书](https://aws.amazon.com/premiumsupport/knowledge-center/install-ssl-cloudfront/)。

## 应用程序配置
<a name="application-configuration"></a>

### AWS AppSync
<a name="aws-appsync"></a>

[AWS GraphQL 上的工作负载发现 APIs 功能由 AWS AppSync 根据 GraphQL 规范提供请求验证。](https://spec.graphql.org/June2018/#sec-Validation)此外，身份验证和授权是使用 IAM 和 Amazon Cognito 实现的，当用户在网页用户界面中成功进行身份验证时，它们使用 Amazon Cognito 提供的 JWT。

### AWS Lambda
<a name="aws-lambda"></a>

默认情况下，Lambda 函数使用最新稳定版本的语言运行时进行配置。不记录任何敏感数据或机密。服务交互是以最低要求的权限进行的。定义这些权限的角色不会在函数之间共享。

### 亚马逊 OpenSearch 服务
<a name="amazon-opensearch-service"></a>

Amazon S OpenSearch ervice 域配置了访问策略，该策略限制访问权限，以阻止向 OpenSearch 服务集群发出的任何未签名请求。这仅限于单个 Lambda 函数。

 OpenSearch 服务集群是在激活 node-to-node加密的情况下构建的，以便在现有 OpenSearch 服务[安全功能](https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/security.html)之上再增加一层数据保护。

# 限额
<a name="quotas"></a>

服务限额（也称为限制）是您的 AWS 账户使用的服务资源或操作的最大数量。

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

请确保[此解决方案中实施的每项服务](aws-services-in-this-solution.md)都有足够的限额。有关更多信息，请参阅 [AWS 服务限额](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html)。

使用以下链接转到该服务的页面。要在不切换页面的情况下查看文档中所有 AWS 服务的服务配额，请改为查看 PDF 中[服务终端节点和配额](https://docs.aws.amazon.com/general/latest/gr/aws-general.pdf#aws-service-information)页面中的信息。


|  |  | 
| --- |--- |
|   [Amplify](https://docs.aws.amazon.com/general/latest/gr/amplify.html)   |   [Amazon ECR](https://docs.aws.amazon.com/general/latest/gr/ecr.html)   | 
|   [Athena](https://docs.aws.amazon.com/general/latest/gr/athena.html)   |   [Lambda](https://docs.aws.amazon.com/general/latest/gr/lambda-service.html)   | 
|   [CloudFront](https://docs.aws.amazon.com/general/latest/gr/cf_region.html)   |   [OpenSearch 服务](https://docs.aws.amazon.com/general/latest/gr/opensearch-service.html)   | 
|   [Cognito](https://docs.aws.amazon.com/general/latest/gr/cognito_identity.html)   |   [Neptune](https://docs.aws.amazon.com/general/latest/gr/neptune.html)   | 
|   [Config](https://docs.aws.amazon.com/general/latest/gr/awsconfig.html)   |   [Amazon S3](https://docs.aws.amazon.com/general/latest/gr/s3.html)   | 
|   [Amazon ECS](https://docs.aws.amazon.com/general/latest/gr/ecs-service.html)   |  | 

## AWS CloudFormation 配额
<a name="aws-cloudformation-quotas"></a>

您的 AWS 账户有 AWS CloudFormation 配额，在此解决方案中[启动堆栈时应注意这些](launch-the-stack.md)配额。通过了解这些限额，可以避免阻碍成功部署此解决方案的限制错误。有关更多信息，请参阅 [AWS * CloudFormation 用户指南中的 AWS CloudFormation * 配额](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html)。

## AWS Lambda 配额
<a name="aws-lambda-quotas"></a>

您的账户的 AWS Lambda 并发执行配额为 1000。如果在有其他工作负载运行和使用 Lambda 的账户中使用该解决方案，则将此配额设置为适当的值。此值是可调整的；有关更多信息，请参阅 [AWS Lambda 用户指南中的 A *WS Lambda* 配额](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html)。

**注意**  
此解决方案需要并发执行配额中的 150 个执行才能在部署该解决方案的账户中可用。如果该账户中可用的执行次数少于 150 个，则 CloudFormation 部署将失败。

## Amazon VPC 配额
<a name="amazon-vpc-quotas"></a>

您的 AWS 账户可以包含五个 VPCs 和两个 Elastic IPs (EIPs)。如果在其他 VPCs 或的账户中使用该解决方案 EIPs，则可能会使您无法成功部署此解决方案。如果您面临达到此配额的风险，则可以按照[启动堆栈部分中的步骤提供自己的 VPC 进行](launch-the-stack.md)部署。有关更多信息，请参阅[亚马逊 VPC [用户指南中的亚马逊 VPC](https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html) 配额](https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html)*。*

# 选择部署账户
<a name="choosing-the-deployment-account"></a>

如果您要在 AWS 上将 Workload Discovery 部署到 AWS 组织，则该解决方案必须安装在已启用[多区域 AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/aggregated-register-delegated-administrator.html) 功能的委托管理员账户中。[StackSets](https://aws.amazon.com/blogs/mt/cloudformation-stacksets-delegated-administration/)

如果您不使用 AWS Organizations，我们建议您将 AWS 上的工作负载发现部署到专门为此解决方案创建的 AWS 专用 AWS 账户中。这种方法意味着 AWS 上的 Workload Discovery 与您的现有工作负载隔离，并提供单一位置来配置解决方案，例如添加用户和导入新区域。跟踪运行解决方案时产生的成本也更容易。

在 AWS 上部署 Workload Discovery 后，您可以从已配置的任何账户中导入区域。