[SEO 副标题]
本指南提供一种统一的方式来构建跨越多个账户的 Amazon QuickSight 环境。这能帮助您单独托管不同开发阶段的资产,并通过持续集成和持续交付(CI/CD)管道推行。 它允许您在多个账户中分别托管不同开发阶段的资产。这种方法提供更好的隔离性、安全性、访问管理和成本跟踪。因此,您可以有效管理服务配额,快速识别用于各个工作负载的资源,并减少意外安全事件的影响。 本指南有两种部署模式,第一种使用 QuickSight 模板,第二种使用资产包 API。您可以根据业务需求对所用的模式进行调整,同时遵守 AWS 最佳实践(例如隔离生产和非生产工作负载),以增强资产的安全性和稳定性。
请注意:[免责声明]
架构图
-
Amazon QuickSight 模板
-
资产包 API
-
Amazon QuickSight 模板
-
本指南有两种部署模式,第一种使用 Amazon QuickSight 模板,第二种使用资产包 API。此架构图显示了部署 QuickSight 模板的配置。有关资产包 API 部署模式的详细信息,请参阅下一个选项卡。
第 1 步
部署新版本控制面板时,Amazon EventBridge 规则会调用 QSAssetsCFNSynthesizer AWS Lambda 函数。第 2 步
Lambda 函数描述在开发账户中手动创建的 Amazon QuickSight 资产,并生成 AWS CloudFormation 模板。第 3 步
CloudFormation 模板上传到 Amazon Simple Storage Service(Amazon S3)。系统生成了两个模板:源资产模板,用于创建分析模板;目标资产模板,根据 QuickSight 模板及其所需的数据集和数据来源创建分析。
第 4 步
Amazon S3 配置为 AWS CodePipeline 的源暂存区,并充当管道部署的源存储库。第 5 步
为 CodePipeline 配置两个部署暂存区,分别用于生产和预生产。推行到生产阶段需经过人工审核,以防止不受控制地推行资产。第 6 步
第一阶段将在开发账户中部署源资产 CloudFormation 模板,该模板将在开发环境中创建一个 QuickSight 模板,对要在整个环境中推行的分析进行建模。接下来,在预生产环境中部署目标资产的 CloudFormation 模板,创建 QuickSight 分析及其依赖资产(例如数据来源和数据集)。
第 7 步
在资产接受预生产环境审查之前,向生产环境的部署将保持暂停状态并接受审核。第 8 步
资产经过审查和批准后,第二阶段将部署源资产模板,对之前在预生产环境中创建的 QuickSight 资产进行建模。接下来,第二阶段将部署目标资产,以在生产环境中创建 QuickSight 分析及其依赖资产。 -
资产包 API
-
此架构图显示资产包 API 部署模式。
第 1 步
部署新版本控制面板时,EventBridge 规则会调用 QSAssetsCFNSynthesizer Lambda 函数。第 2 步
Lambda 函数使用 QuickSight 高级部署 API(AssetBundle)生成一个 CloudFormation 模板,对开发分析及其所有依赖资产(例如数据源和数据集)进行建模。第 3 步
CloudFormation 模板上传到 Amazon S3。系统生成了两个模板:源资产模板(在本例中为空);目标资产模板,根据上一步中生成的 CloudFormation 模板创建分析。第 4 步
Amazon S3 配置为 CodePipeline 的源暂存区,并充当管道部署的源存储库。第 5 步
为 CodePipeline 配置两个部署暂存区,分别用于生产和预生产。推行到生产阶段需经过人工审核,以防止不受控制地推行资产。第 6 步
第一阶段将在开发账户中部署源资产 CloudFormation 模板(在此部署模式下为空),然后在预生产环境中部署目标资产 CloudFormation 模板,创建 QuickSight 分析及其依赖资产(例如数据来源和数据集)。第 7 步
在资产接受预生产环境审查之前,向生产环境的部署将保持暂停状态并接受审核。第 8 步
资产经过审查和批准后,第二阶段将在预生产环境中部署源资产模板(在此部署模式下为空),然后部署目标资产,以在生产环境中创建 QuickSight 分析及其依赖资产。
Well-Architected 支柱
当您在云中构建系统时,AWS Well-Architected Framework 可以帮助您了解所做决策的利弊。框架的六大支柱使您能够学习设计和操作可靠、安全、高效、经济高效且可持续的系统的架构最佳实践。使用 AWS 管理控制台中免费提供的 AWS Well-Architected Tool,您可以通过回答每个支柱的一组问题,根据这些最佳实践来检查您的工作负载。
上面的架构图是按照 Well-Architected 最佳实践创建的解决方案示例。要做到完全的良好架构,您应该遵循尽可能多的 Well-Architected 最佳实践。
-
卓越运营
CodePipeline 提供跨不同环境或暂存区的持续交付,无需人工干预。这有助于减少维护工作、降低复杂性和引入错误的可能性。此外,您可以配置发送到 Amazon Simple Notification Service(Amazon SNS)主题的人工审核操作,以防止不必要的更改影响关键环境(例如生产环境)。CodePipeline 使用 CloudFormation 以可重复、可审计和可扩展的方式部署资产,管理整个资产生命周期。为了提高可审计性,Lambda 会发送有用日志来清晰展示相关信息和进行故障排除。
-
安全性
在本指南中,已将 AWS Identity and Access Management(IAM)资源策略的范围缩小到资源正常运行时所需的最低权限。IAM 还允许在账户之间对资产进行审计和授予访问权限。例如,Lambda 函数可以通过为 IAM 角色赋予某个身份,将数据上传到不同账户中的存储桶。此外,AWS Key Management Service(AWS KMS)会对发送到 Amazon SNS 主题的内容进行加密(包括传输中的内容和静态内容),直到通过所选方法(例如电子邮件)发送完毕。
-
可靠性
QuickSight、CloudFormation 和 Lambda 是专为提高可靠性和容错性而设计的区域性 AWS 托管服务。这些服务有助于提高解决方案的安全性、可靠性和可扩展性,同时降低其复杂性。此外,Lambda 和 CloudFormation 在跨账户部署资源、提供额外的隔离层(如用于不同的软件生命周期环境)和灾难恢复环境方面发挥着关键作用。
-
性能效率
CloudFormation 提供一种简单、可靠且可重复的方式,可在数分钟内跨 AWS 账户或 AWS 区域部署您的资产。通过将其(作为部署提供商)与 CodePipeline 结合使用,您可以在所有环境中自动部署所做更改。通过 QuickSight 和实施资产持续部署的能力,您可以在公司内大规模普及使用商业智能工具,从而更轻松地利用数据。这还能提高公司实验和开发新功能的灵活性。
-
成本优化
Lambda、CodePipeline 和 QuickSight 都是无服务器服务,能够帮助您省下自己维护服务器的成本。此外,它们可根据需求进行扩缩,您只需为使用的资源付费,从而帮助您降低成本。对于 CodePipeline,您只需为每月处于活动状态的每个管道付费,而且由于使用 CloudFormation 作为部署提供商,因此没有部署成本。对于 Lambda,您只需为函数使用的实施时间和内存付费。最后,对于 QuickSight,您需要为预置作者付费,读者访问平台时,您也需要付费。不过,QuickSight 的收费设定了价格上限,以保持成本的可预测性。
-
可持续性
由于 Lambda、CodePipeline、Amazon S3 和 QuickSight 的无服务器特性,它们可以根据需求动态扩展,这意味着资源仅会在需要时运行。这有助于最大限度地减少排放量及其对环境的影响。此外,本指南还使用 Amazon S3 生命周期功能,可以根据资产的年龄和版本历史规则自动删除资产,从而有助于减少专用于存储的资源。
相关内容
免责声明
示例代码;软件库;命令行工具;概念验证;模板;或其他相关技术(包括由我方人员提供的任何前述项)作为 AWS 内容按照《AWS 客户协议》或您与 AWS 之间的相关书面协议(以适用者为准)向您提供。您不应将这些 AWS 内容用在您的生产账户中,或用于生产或其他关键数据。您负责根据特定质量控制规程和标准测试、保护和优化 AWS 内容,例如示例代码,以使其适合生产级应用。部署 AWS 内容可能会因创建或使用 AWS 可收费资源(例如,运行 Amazon EC2 实例或使用 Amazon S3 存储)而产生 AWS 费用。
本指南中提及第三方服务或组织并不意味着 Amazon 或 AWS 与第三方之间存在认可、赞助或从属关系。AWS 的指导是一个技术起点,您可以在部署架构时自定义与第三方服务的集成。