概览
Workload Discovery on AWS(前身为 AWS Perspective)是一种可对 AWS Cloud 工作负载进行可视化的工具。使用 Workload Discovery on AWS 构建、自定义,以及分享您的工作负载的详细架构图,这些工作负载基于来自 AWS 的实时数据。
右侧的图像是 Workload Discovery on AWS 生成的示例架构图。
优势
Workload Discovery on AWS 让您可以构建、自定义和共享详细的架构图。 Workload Discovery on AWS 可以在您的账户和区域间维护一份 AWS 资源清单,映射它们之间的关系,并在 Web UI 中显示它们。
成本查询生成器让您可以定位可能产生成本的 AWS 资源和服务。针对特定时段将自动计算预计成本数据,并在您的架构图中显示。
您可以为您的架构图生成成本报告,其中包含预计成本的概述,您还可以将其导出为 CSV。
搜索功能让您可以使用基本信息(例如资源名称、标签名称或 IP 地址)来查找您感兴趣的资源。
使用资源目录探索在您的账户和区域中预置的资源。其中包含 Workload Discovery on AWS 发现的所有资源。您可以通过在 Web UI 中选择一种资源来开始构建您的 Workload Discovery on AWS 架构图。
您可以保存 Workload Discovery on AWS 架构图以便稍后重新查看,或者与其他 Workload Discovery on AWS 用户分享它。要在 Workload Discovery on AWS 之外使用架构图,您可以导出至 PNG、JSON、CSV 或 draw.io 格式。
技术详情
您可以使用实施指南和随附的 AWS CloudFormation 模板自动部署该架构。
第 1 步
HTTP 严格传输安全性(HSTS)向来自 Amazon CloudFront 发行版的每个响应添加安全标头。
第 2 步
Amazon Simple Storage Service(Amazon S3)存储桶托管 Web 用户界面(Web UI),它通过 CloudFront 进行分发。Amazon Cognito 会对 Web UI 的用户访问进行身份验证。
第 3 步
AWS WAF 可保护 AWS AppSync API 免受常见漏洞和机器人的攻击,它们会影响可用性、降低安全性或占用过多资源。
第 4 步
AWS AppSync 端点允许 Web UI 组件请求资源关系数据、查询成本、导入新的 AWS 区域,以及更新首选项。AWS AppSync 还允许发现组件将持久数据存储在解决方案的数据库中。
第 5 步
AWS AppSync 使用由 Cognito 预置的 JSON Web 令牌(JWT),以便对每次请求进行身份验证。
第 6 步
AWS Lambda 函数设置将已导入的区域和其他配置保留到 Amazon DynamoDB。
第 7 步
该解决方案将 AWS Amplify 和 S3 存储桶部署为存储管理组件,以便存储用户首选项和已保存的架构图。
第 8 步
数据组件采用 Gremlin Resolver Lambda 函数来查询数据并将其从 Amazon Neptune 数据库返回。
第 9 步
数据组件使用 Search Resolver Lambda 函数来查询资源数据并将其保留到 Amazon OpenSearch Service 域。
第 10 步
成本 Lambda 函数使用 Amazon Athena 来查询 AWS 成本和使用情况报告(AWS CUR),以向 Web UI 提供预计成本数据。
第 11 步
Athena 在 CUR 上运行查询。
第 12 步
CUR 将报告传送到 CostAndUsageReportBucket S3 存储桶。
第 13 步
成本 Lambda 函数将 Athena 结果存储在 AthenaResultsBucket S3 存储桶中。
第 14 步
AWS CodeBuild 在映像部署组件中构建发现组件容器映像。
第 15 步
Amazon Elastic Container Registry(Amazon ECR)包含由镜像部署组件提供的 Docker 映像。
第 16 步
Amazon Elastic Container Service(Amazon ECS)管理 AWS Fargate 任务,并提供运行任务所需的配置。Fargate 每隔 15 分钟会运行一次容器任务,以刷新清单和资源数据。
第 17 步
AWS Config 和 AWS SDK for JavaScript 调用帮助发现组件维护导入的区域的资源数据清单,然后将其结果存储在数据组件中。
第 18 步
Fargate 任务通过对 AWS AppSync API 的 API 调用,将 Config 和 SDK for JavaScript 调用的结果保留到 Neptune 数据库和 OpenSearch Service 域中。