精品项目
首页 / Our Projects /使用 AWS CUR 和成本分配标签可视化 Amazon QuickSight 成本 商业智能博客使用 AWS CUR 和成本分配标签可视化 Amazon QuickSight 成本 商业智能博客
使用 AWS CUR 和成本分配标签可视化 Amazon QuickSight 成本
关键要点
利用 AWS 成本和使用报告 (CUR) 和成本分配标签来有效监控 Amazon QuickSight 的使用情况和费用。可以基于部门、项目或者客户区分费用,帮助企业实现内部和外部收费机制。使用 QuickSight 创建定制化的成本报告,使得云端资源管理和预算控制更为高效。Amazon QuickSight 是一种商业智能 (BI) 解决方案,任何组织都可以利用这一工具与内部员工共享数据和洞察。作为一个无服务器的 BI 工具,它提供了一整套先进的分析功能,其中一个核心优势是基于使用量进行定价。不过,QuickSight 可以被应用于多种场景,每种情况可能需要用不同的方法来跟踪和报告 QuickSight 的使用成本。例如,您可能将 QuickSight 部署为主要的企业 BI 工具,服务数千名用户,想按部门进行费用分摊;或者您在自己的软件即服务 (SaaS) 应用中集成了 QuickSight 视觉元素,并通过命名空间将客户隔开,为成千上万或数百万名用户提供洞察。在任何情况下,重要的是将此平台视为任何其他企业资产,并进行成本优化、按功能/用户跟踪使用情况、实施治理最佳实践,并力求实现运营卓越。
在云基础架构领域,有效的费用分配和资源管理是关键责任所在。 AWS 成本和使用报告 (AWS CUR) 是一切费用报告的基础。它提供了一个全面的成本清单,涵盖了在该帐户中所有 AWS 服务发生的费用。此外,AWS 成本分配标签是 AWS Billing 提供的重要功能,用户可以在 AWS CUR 中使用这些标签,作为资源的标签,深入洞察 AWS 环境的消费趋势。这种方法彻底改变了云基础设施中费用的分配和管理方式,同时支持内部和外部的费用计费机制。
在本文中,我们将探讨如何使用 AWS CUR 和 AWS 标签来监控用户在 QuickSight 中的具体使用情况,以及这些标签如何帮助组织实施云成本控制,提供支持自定义收费报告所需的数据。
解决方案概述
我们以虚构公司 AnyCompany Inc 为例。这家公司利用 QuickSight 为其云服务中的客户提供分析服务。通过 AWS CUR,他们获得了基于命名空间的详细使用信息,并能够生成详细的租户费用报告。他们可以通过使用 QuickSight 标签来进一步自定义费用追踪,并分别向内部部门、成本中心、项目或客户进行费用分摊。
前提条件
在您开始应用标签和构建 QuickSight 仪表板之前,请完成以下前提步骤:
部署 AWS CUR,使用 AWS Data Exports。旧版或标准 AWS CUR 都可以使用。请注意,根据当时的情况,部署在 AWS Billing 控制台上的成本和使用报告不包含资源 ID,无法提供我们想要的详细程度。在上一步中创建了一个作业,将 CUR 文件导出至 Amazon S3。由于我们使用 Amazon Athena 查询报告,因此需要对 CUR 数据进行爬取,并在 AWS Glue 数据目录中或通过 AWS Lake Formation 使其可用。如果还未部署,需部署 QuickSight 企业版。在 QuickSight 中设置对 Athena 和 Amazon S3 的访问,以便您能查询 CUR 文件。有关更多信息,请参阅 访问 AWS 资源。可以选择实施 CUDOS 解决方案,替代上述前提步骤。该解决方案将部署 AWS CUR 并在 Amazon S3 和 Athena 中提供数据。有关更多信息,请参阅 Cloud Intelligence Dashboards。
为用户打标签
第一步是为 QuickSight 用户打标签并分配键值标签,这将用于 CUR 数据。我们使用 AWS 命令行界面 (AWS CLI) 和 tagresource 命令。请完成以下步骤:
从安装在本地的 AWS CLI 或使用 AWS CloudShell 标记用户,使用以下代码:bash aws quicksight tagresource resourcearn arnawsquicksightltRegiongtltAWSAccountIDgtuser/default/Admin/ltQuickSightUserNamegt tags Key=ltkeynamegtValue=ltValuegt
在这个例子中,我们使用 costcenter 作为标签键。
在 AWS 管理控制台 首页,搜索“Billing and Cost Management”,并从服务列表中选择它。
在费用与成本管理控制台的导航窗格中,在“成本组织”下选择“成本分配标签”。
您创建的标签键将会被列出可能需要几个小时。默认情况下,标签会处于非激活状态。
选择您的标签并选择“激活”。激活后的标签可能需要 2448 小时才会填充到 Athena 表中以供 CUR 报告使用。
由于为 CUR 数据添加了新标签而更改了数据架构,表中的架构需要更新。如果使用 AWS Data Exports,则在 2448 小时后,应该重新运行爬虫以捕获新列。而 CUDOS 因为管道和爬虫按计划运行,因此不需要此步骤。要验证标签是否可用,我们可以在 AWS Athena 中运行简单查询。在 Athena 查询编辑器中,选择数据源、数据库和表,以确认 CUR 数据的位置。以下 SQL 中,需要替换为正确的数据库和表名称。在这个例子中,我们使用数据库 athenacurcfnawscostandusagereport 和表 adawscostandusagereport。编辑并运行以下 SQL 语句以确认数据中的标签,并查看用户的详细成本分解,您可以使用 resourcetagsusercostcenter 列进行过滤,针对标记为 Finance 的 QuickSight 用户。sql SELECT FROM DatabaseTablename WHERE lineitemproductcode = AmazonQuickSight
创建 QuickSight 成本分析
随着 CUR 部署和用户打标签,我们可以构建一个 QuickSight 仪表板,以提供 QuickSight 成本消费的洞察。您可以使用本节中的步骤作为起点,构建符合您组织需求的定制化成本仪表板。
需要强调的是,某些关键数据点的来源。通过以下 SQL 语句,我们正在构建基础 CUR 表的一个切片,以便进行我们的分析。您可以进一步自定义此 SQL 语句,以满足您组织的具体需求。以下是 CUR 通过自定义 SQL 提取的关键术语:
QuickSight 功能 该列由 SQL 的条件语句创建,并按功能对 QuickSight 成本要素进行分组。它将成本分为以下类别:作者和管理员费用、阅读者费用、 QuickSight 的 Amazon Q 额外费用、警报费用、SPICE 和报告费用。资源 ID 该列源自 CUR,包括产生费用的资源 ID。在 QuickSight 数据中,它可能代表用户 ARN 或仪表板 ARN。资源 ID 类别 该列由 SQL 语句创建,并根据资源类型对资源进行分类。用户命名空间 该列由 SQL 语句创建,提取资源 ID 中的用户命名空间。用户名 该列在 SQL 语句中提取用户的名称。仪表板 ID 该列在 SQL 语句中提取仪表板 ID。请完成以下步骤以构建您的数据集和分析:
在 QuickSight 控制台中,在导航窗格中选择数据集。选择创建新数据集。选择Athena作为数据源。为数据源输入名称,然后选择创建数据源。
选择使用自定义 SQL以输入示例 SQL。

更新以下 SQL 语句中的模式名称和表名称,使其与数据目录中的模式和表匹配。如有任何标签,必须将该列添加至 SQL 语句中。
sql SELECT billpayeraccountid as 账单付款账户ID lineitemusageaccountid as 使用账户ID billbillingperiodstartdate as 账单周期 lineitemusagestartdate as 使用日期 lineitemresourceid as 资源ID TAG NAME as tag ( CASE WHEN ( LOWER(lineitemresourceid) LIKE analysis ) THEN 分析 WHEN ( LOWER(lineitemresourceid) LIKE dashboard ) THEN 仪表板 WHEN ( LOWER(lineitemresourceid) LIKE user ) THEN 用户 WHEN ( LOWER(lineitemresourceid) IS NULL ) THEN 无资源 ELSE 其他 END ) as 资源ID类别 lineitemusagetype as 行项目使用类别 lineitemlineitemdescription as 行项目描述 CASE WHEN ( LOWER(lineitemresourceid) LIKE user ) OR ( LOWER(lineitemresourceid) LIKE anonymousUser ) THEN SPLITPART(lineitemresourceid / 2) ELSE NULL END as 用户命名空间 CASE WHEN ( LOWER(lineitemresourceid) LIKE user ) OR ( LOWER(lineitemresourceid) LIKE anonymousUser ) THEN ELEMENTAT( SPLIT(lineitemresourceid /) 1 ) ELSE END AS 用户名 CASE WHEN ( LOWER(lineitemresourceid) LIKE dashboard ) OR ( LOWER(lineitemresourceid) LIKE alert ) THEN ELEMENTAT( SPLIT(lineitemresourceid /) 1 ) ELSE NULL END AS 仪表板ID ( CASE WHEN ( LOWER(lineitemusagetype) LIKE spice ) THEN SPICE WHEN ( LOWER(lineitemusagetype) LIKE alerts ) THEN QuickSight 警报 WHEN ( LOWER(lineitemusagetype) LIKE q ) THEN QuickSight Q WHEN ( LOWER(lineitemusagetype) LIKE qsuserenterprise ) OR ( LOWER(lineitemusagetype) = qsuserstandard ) ) THEN 作者 WHEN ( LOWER(lineitemusagetype) LIKE qsreader ) THEN 阅读者 WHEN ( LOWER(lineitemusagetype) LIKE spice ) THEN SPICE WHEN ( LOWER(lineitemusagetype) LIKE alerts ) THEN 警报 WHEN ( LOWER(lineitemusagetype) LIKE qsreport ) THEN 报告 ELSE lineitemusagetype END ) QuickSightFeatures lineitemusageamount as 使用数量 lineitemunblendedcost as 非混合成本 lineitemblendedcost as 混合成本 FROM [DATABASE NAME][Table Name] c WHERE ( ( lineitemproductcode = AmazonQuickSight ) AND ( lineitemlineitemtype IN ( DiscountedUsage Usage BundledDiscount ) ) )
保存并发布数据集。一旦数据集准备好并可用,便可以构建分析和仪表板。以下是一些快速可视化的示例,您可以通过几次点击创建。
首先,我们可视化 QuickSight 成本的月度变化:在仪表板上添加新的 KPI 可视化。将 line item cost 作为值,line item usage start date 作为趋势组。将聚合更改为按月汇总。
破解版加速器永久免费接下来,我们按产品功能可视化成本:
添加一个饼图可视化。将 line item cost 作为值。可选择过滤最近一个月的数据。
我们还可以根据作者和阅读者可视化每月成本:
添加一个数据透视表可视化。将 用户名 添加至行,将 使用日期按月和非混合成本作为值。为过滤掉非用户成本,可添加过滤条件,排除 null 用户名。将 QuickSight 功能 字段添加到行中,以区分作者、阅读者和其他成本类别。对于基于会话的定价,使用量将是会话的数量。对于基于用户的定价,使用量代表当月产生的费用。
最后,让我们按命名空间可视化每月费用:添加一个堆积柱状图可视化。将 使用日期 按月添加至 x 轴,将 非混合成本 作为值,命名空间 作为分组/颜色。过滤掉 null 命名空间,以确保仅查看与命名空间和用户相关的费用。以上命名空间已在前面的自定义 SQL 中通过解析资源 ID 捕获。
最后,我们按标签可视化用户的每月成本:需要将标签列添加到自定义 SQL 中,基于 AWS Glue 中爬虫定义的标签名称和表。例如,如果您的标签标记为 costcenter,您将把以下作为 SELECT 语句中的列添加: Resourcetagsusercostcenter AS costcentertag。在仪表板上添加数据透视表可视化。将 tag name 和 username 添加至行,将使用日期和月份添加至列,将 非混合成本 作为值。要计算月度变化,可以更改计算字段以捕获百分比差异,使用以下公式:periodOverPeriodPercentDifference(sum({blended cost}){Usage Date})。以下截图展示了我们的最终仪表板。
清理资源
在完成此解决方案后,您可以清理资源。在 AWS QuickSight 中删除您创建的数据集、分析和仪表板。在 AWS Glue 中删除创建的表或爬虫。在 AWS Billing 中禁用数据导出。在 AWS S3 中删除 CUR 数据。
结论
在本文中,我们展示了如何设置标签、将 CUR 数据连接到 Amazon S3,以及构建提供 QuickSight 成本的详细洞察的 QuickSight 仪表板。
对许多客户而言,这只是此解决方案可能性的开始。例如,作为分析或 BI 管理员,您现在有了一种方式可以向部门领导发送每月的精确报告,详细列出您所管理的部门的 QuickSight 成本和使用情况。此外,领导层还可以创建跟踪其费用与预算的警报。作为独立软件供应商 (ISV) 的产品负责人,您现在有了更精确的工具来进行费用分摊或实现 BI 产品的商业化。这些可能性为 BI 管理员提供了监测和优化所有 QuickSight 数据产品成本的细节。
开始实施 成本和使用报告 并 开始使用 QuickSight 吧!
关于作者
Ramon Lopez 是 Amazon QuickSight 的首席解决方案架构师。他拥有多年的 BI 解决方案开发经验,还具备会计背景,热衷于与客户合作,创造解决方案并构建世界一流的服务。工作之余,他喜欢在海洋或山上享受户外活动。
Ashok Dasineni 是 Amazon QuickSight 的解决方案架构师。在加入 AWS 之前,Ashok 曾与多个客户和组织在银行和金融领域合作,专注于欺诈研究和预防。他设计和实施了创新解决方案,以改善商业流程、降低成本、增加收入,使全球公司能够通过数据实现最高潜能。
搜索
最新内容
集中化还是分散化? 云企业战略博客
迁移到AWS Cloud WAN多区域检查使用服务插入 网络与内容交付
生成式 AI 问答评估的真实情况策展与指标解读最佳实践 机器学习博客
支持加拿大的 CCCS PBHVA 覆盖合规性与 AWS 的着陆区加速器 安全博客