{"slug": "implement-a-backup-strategy-for-amazon-quick-sight-bi-assets", "title": "Implement a backup strategy for Amazon Quick Sight BI assets", "summary": "Amazon Web Services announced a backup strategy for Amazon Quick Sight BI assets using AssetsAsBundle APIs to protect against accidental deletions, modifications, and regional disruptions. The strategy is critical for regulated industries like financial services, healthcare, and energy to ensure data loss prevention, meet recovery objectives, and support disaster recovery. This is the first part of a two-part series covering backup design and implementation.", "body_md": "[Artificial Intelligence](https://aws.amazon.com/blogs/machine-learning/)\n\n# Implement a backup strategy for Amazon Quick Sight BI assets\n\n[Amazon Quick Sight](https://aws.amazon.com/quick/quicksight/) is a core feature within [Amazon Quick](https://aws.amazon.com/quicksuite/) — an agentic, AI-powered digital workspace designed to maximize end-user productivity— that provides AI-powered BI capabilities through natural language queries, interactive dashboards, and embedded analytics from trusted enterprise data sources.\n\nAmazon Quick Sight assets such as dashboards, analyses, datasets, and data sources can be backed up using the `AssetsAsBundle`\n\nAPIs described in this post. A backup strategy helps protect against accidental deletions, unintended modifications, and regional disruptions. For teams that rely on Quick Sight to support critical business decisions, a well-designed backup plan is recommended.\n\nThis post is the first in a two-part series covering backup and restore for Amazon Quick Sight BI assets:\n\n**Part 1 (this post):** Covers how to design and implement a backup strategy, including asset selection, the APIs available for export, and a ready-to-use sample automation tool.**Part 2:** Covers the restore process. You can use the backups created in Part 1 to recover assets after accidental deletion, unintended changes, or as part of a broader disaster recovery plan.\n\nAn effective backup strategy is especially critical for organizations in heavily regulated industries such as financial services, healthcare, and energy, for multiple reasons:\n\n**Data loss prevention** protects against human errors, accidental deletions, and events like ransomware.**Meeting recovery objectives** helps organizations achieve their Recovery Point Objectives (RPO) and Recovery Time Objectives (RTO), minimizing data loss during incidents.**Audit and reporting** supports tracking and reporting on assets throughout their lifecycle (creation, updates, and deletion).**Increased workload resiliency** enables quick restoration of systems to previous states, reducing downtime and improving reliability. This aligns with the Reliability pillar of the[AWS Well-Architected Framework](https://docs.aws.amazon.com/wellarchitected/latest/reliability-pillar/welcome.html).**Disaster recovery (DR) preparedness** provides a foundation for implementing a[DR process](https://aws.amazon.com/what-is/disaster-recovery/)that anticipates technology-related disasters and contributes to your organization’s[business continuity plan (BCP)](https://docs.aws.amazon.com/whitepapers/latest/disaster-recovery-workloads-on-aws/business-continuity-plan-bcp.html).\n\nFor more information about the disaster recovery capabilities of Quick, and how to assess them against organizational requirements, see the [Amazon Quick disaster recovery and resiliency guide](https://builder.aws.com/content/3ARv3heLpgnufWleBwpxLYmHWeu/amazon-quick-disaster-recovery-and-resiliency-guide).\n\nIn this post, we cover best practices for implementing an effective backup strategy for BI assets in Quick Sight. We start by covering the options for selecting the assets to include in your backup, then explain the high-level APIs available for that purpose, and finalize with sample code to help you get started quickly.\n\n## Backup practices for business intelligence\n\nBI systems present unique business continuity challenges because of their role in supporting decision-making processes and key stakeholders. You must protect them against service disruptions by implementing an effective backup plan. Before building this plan, it’s important to understand the architecture and the dimensions to consider as part of your DR plan.\n\nThe preceding diagram shows that Quick Sight relies on AWS’s global infrastructure across multiple AWS Regions to [provide high availability](https://docs.aws.amazon.com/quicksuite/latest/userguide/disaster-recovery-resiliency.html) for Quick Sight assets, including data sources, datasets, analyses, and dashboards.\n\nThe Super-fast, Parallel, In-memory Calculation Engine (SPICE) stores and [encrypts](https://docs.aws.amazon.com/quicksuite/latest/userguide/data-encryption.html) imported data with high availability (HA) through redundant copies across multiple Availability Zones (AZs) within the Quick Sight Region.\n\nWith this regional design, you can maintain resources in multiple Regions and use a secondary Region in the unlikely event of a regional outage affecting your primary BI resources.\n\nFor *user and identity management*, Quick Sight uses a single Region that you define during the [initial account subscription process](https://docs.aws.amazon.com/quicksuite/latest/userguide/signing-up.html). The diagram shows that this Region hosts user and group identity information and must be available for users to access Quick Sight.\n\nFor example, if a user wants to access a dashboard in the eu-west-1 Region but the Quick Sight main Region is us-east-1, both Regions must be available to finish the user access flow. Quick Sight uses regional architecture with AZs for redundancy. However, if your business needs protection against the unlikely event of a regional outage, you must design your disaster recovery (DR) strategy accordingly.\n\n**Tip:** If you’re unsure of your Quick Sight main Region, you can retrieve this information by running the following command:\n\n**Note:** This `aws quicksight describe-account-settings`\n\ncommand specifies us-east-1 as the endpoint Region. If you receive a `200`\n\nstatus, your identity Region is us-east-1. Otherwise, you receive an error like the following, which instructs you to point to your current identity Region (for example, eu-west-1):\n\n## Defining Quick Sight assets to include in the backup plan\n\nWith a clearer understanding of Quick Sight architecture, the next step is selecting the assets to include in your backup plan, for this you can follow two strategies:\n\n**Back up specific assets:**\n\nThis option is suitable when you define a [backup or DR strategy](https://docs.aws.amazon.com/prescriptive-guidance/latest/security-best-practices/strategy.html) focused on protecting critical assets for your business operations that you can conveniently restore after a disaster or accidental deletion. This includes specific dashboards (and their dependent assets) that key stakeholders use to make business decisions or that operating teams (finance, logistics, procurement, and so on) use to support continued business operation.\n\nThis option is recommended when you require a straightforward backup plan and when the BI assets that are key to business continuity are a subset of all the assets available in your Quick Sight instance.\n\n**Back up all assets:**\n\nThis strategy is recommended when you want to define a backup strategy that covers both versioning and potential disaster recovery. By backing up all assets, you can perform in-place rollback of any asset to a previous state if a human error causes an unintended modification or deletion. Additionally, because you have a backup of all assets in your account, you can select specific assets to restore as part of your DR plan.\n\nThis approach gives you maximum coverage but also requires more complex orchestration and automation. This post focuses on this strategy and provides sample code that you can adapt to minimize time to production.\n\nAfter you select your strategy, choose the type of BI assets to export. Quick Sight offers the following asset types:\n\n[Dashboards](https://docs.aws.amazon.com/quicksuite/latest/userguide/creating-a-dashboard.html): Read-only assets targeted at reader users, published from an analysis. You can also save a dashboard to an analysis to make edits.[Analyses and dashboards](https://docs.aws.amazon.com/quicksuite/latest/userguide/working-with-visuals.html): An analysis is an editable version of a dashboard. Only the authors you choose can access it.[Data sources](https://docs.aws.amazon.com/quicksuite/latest/userguide/working-with-data-sources.html): A data source implements the connection to your data, which can come from analytic sources such as databases or data warehouses, AWS services such as Amazon Simple Storage Service (Amazon S3), or third-party software as a service (SaaS) data providers such as Jira and ServiceNow.[Datasets](https://docs.aws.amazon.com/quicksuite/latest/userguide/working-with-datasets.html): An asset type that uses a data source to access external data that you can use to prepare and structure the data that powers your analyses and dashboards.[VPC connections](https://docs.aws.amazon.com/quicksuite/latest/userguide/working-with-aws-vpc.html): A feature that you can use to integrate with your VPC resources such as databases and data warehouses that are located in that VPC or reachable from it (peered VPCs or networks connected through VPN or AWS Direct Connect).[Themes](https://docs.aws.amazon.com/quicksuite/latest/userguide/themes-in-quicksight.html): A collection of styling and appearance settings that you can apply to multiple analyses and dashboards to match an aesthetic standard that meets your product or corporate branding needs.\n\nAll these assets have dependencies between each other, with analyses and dashboards at the top of this dependency chain, as the following diagram illustrates.\n\nWhen you choose the asset types to back up, be aware of these dependencies so you can fully restore assets from the backup. For example, when you back up a dashboard, you also need to back up its dependencies, which might include datasets, data sources, VPC connections, and a theme. The next sections explain how Quick Sight export APIs handle these dependencies.\n\n## Backup process overview\n\nThe mechanism we cover in this post uses the [AssetsAsBundle APIs](https://docs.aws.amazon.com/quicksight/latest/developerguide/asset-bundle-ops.html) available in Quick Sight. AssetsAsBundle APIs (also referenced as AAB APIs) are a set of high-level APIs designed to support programmatic export and import of Quick Sight resources. They cover a range of use cases such as release management, backup and restore, cross-account migration, and [continuous integration and continuous delivery (CI/CD) workflows](https://aws.amazon.com/solutions/guidance/multi-account-environments-on-amazon-quicksight/).\n\nThis set of APIs includes the following operations:\n\n[StartAssetBundleExportJob](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_StartAssetBundleExportJob.html): Creates a package (bundle) that contains the assets exported as part of the operation. The package is a zip file with text files. The format can be either JSON or[AWS CloudFormation](https://aws.amazon.com/cloudformation/)depending on the value specified in the[ExportFormat](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_StartAssetBundleExportJob.html#API_StartAssetBundleExportJob_RequestSyntax)parameter. Depending on the format, you can import these assets using the AAB APIs directly or use CloudFormation infrastructure as code (IaC) for provisioning. After the asynchronous operation finishes, the system uploads the bundle to a temporary S3 location for downloading.[StartAssetBundleImportJob](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_StartAssetBundleImportJob.html): Takes a previously exported bundle and restores the assets packed in it. You can use the import operation to define[overrides for a wide](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_AssetBundleImportJobDataSourceOverrideParameters.html)set of parameters such as asset names and data source connection parameters (host, port, workgroup, and more).[DescribeAssetBundleImportJob](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_DescribeAssetBundleImportJob.html)and[DescribeAssetBundleExportJob](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_DescribeAssetBundleExportJob.html): Both AssetBundle operations are asynchronous. You can use these APIs to describe the operation, poll for its status, and act after it finishes. When you perform an export job, you can use`DescribeAssetBundleExportJob`\n\nto retrieve the`DownloadUrl`\n\nfor the bundle, which is valid for 5 minutes. You can renew the URL with further calls to`DescribeAssetBundleExportJob`\n\n.\n\n### Supported assets and current limitations of AssetsAsBundle APIs\n\nAssetsAsBundle APIs support a list of Quick Sight assets including analyses, dashboards, data sources, datasets, shared folders, restricted folders, refresh schedules, themes, and VPC connections. However, some asset types have limitations.\n\n**Unsupported data sources:** Adobe Analytics, File, GitHub, Jira, Salesforce, ServiceNow, Amazon S3 (with locally uploaded [manifest files](https://docs.aws.amazon.com/quicksight/latest/user/supported-manifest-file-format.html)), and Twitter.\n\n**Unsupported datasets:** Datasets that contain machine learning (ML) columns generated using inference through [connected SageMaker ML models](https://docs.aws.amazon.com/quicksight/latest/user/sagemaker-integration.html).\n\nYou must exclude these assets from your backup plan to avoid an `InvalidParameterValueException`\n\nerror when you issue the `StartAssetBundleExportJob`\n\noperation.\n\nTo work around this, you can replace unsupported data sources and datasets by following these procedures.\n\n**For Amazon S3 data sources with local manifest files:**\n\n- Create a new Amazon S3 data source.\n- Upload the manifest file to Amazon S3.\n- Reference the manifest file from your data source.\n- Replace the data source in the dependent datasets using the\n[UpdateDataSet](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_UpdateDataSet.html)API.\n\n**For other unsupported data sources and datasets:**\n\nFollow this procedure to transform your incompatible dataset into a compatible one:\n\n- Create an analysis connected to the data source you want to support in your backup.\n- Create a\n[table visual](https://docs.aws.amazon.com/quicksuite/latest/userguide/tabular.html)that displays all dataset columns. - Export the data as a CSV file.\n- Create an Amazon S3 dataset using a manifest uploaded to Amazon S3.\n- Update your analyses and dashboards with the new dataset using the\n[replace dataset functionality](https://docs.aws.amazon.com/quicksuite/latest/userguide/replacing-data-sets.html).\n\n### Other assets to consider as part of your backup\n\nAlthough Quick Sight resources are the key assets to back up, you need to include some additional resources and configurations in your backup plan for potential restore or disaster recovery situations.\n\nYou can export Quick Sight assets along with their permissions, including the users and groups that have access to them. You control this by setting the [IncludePermissions](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_StartAssetBundleExportJob.html#API_StartAssetBundleExportJob_RequestSyntax) flag to `true`\n\n.\n\nBecause each Quick Sight asset is owned by a user, you need to back up users and groups to have a full and restorable backup.\n\nAssetsAsBundle APIs don’t cover users and groups, but you can use [DescribeUser](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_DescribeUser.html), [DescribeGroup](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_DescribeGroup.html), and [DescribeGroupMembership](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_DescribeGroupMembership.html) to include this information in the backup.\n\nIn addition to users and groups, consider backing up account settings such as account customization (the [DescribeAccountCustomization](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_DescribeAccountCustomization.html) API), customized brands (the [DescribeBrand](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_DescribeBrand.html) API), and folders (the [ListFolders](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_ListFolders.html), [DescribeFolder](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_DescribeFolder.html), and [DescribeFolderPermissions](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_DescribeFolderPermissions.html) APIs).\n\n## Technical implementation\n\nIn this section, we cover how to create an automation that orchestrates the invocation of the Quick Sight APIs needed to perform an effective backup implementation. We provide sample code at the end of this section that implements both users and groups backup and Quick Sight assets backup.\n\n### Backup orchestration flow\n\nThe automation tool supports three modes of operation: user backup only, assets backup only, and both. This provides maximum flexibility when you perform your backup plan. The following diagram shows the flow that the tool follows depending on the selected operation mode.\n\n### Users and group backup\n\nThe user and groups backup service uses the Quick Sight [user](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_User.html) and [group](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_Group.html) APIs to read your account’s current state and store the retrieved user and group data in [Amazon DynamoDB](https://aws.amazon.com/dynamodb/). The service uses date-based suffixes for DynamoDB table names to preserve historical backup data and prevent overwrites. This allows point-in-time recovery and backup history tracking. This design also simplifies restore operations because you don’t need to filter by date suffixes when you query data within a specific backup.\n\n**Example for a backup run on 2025-10-19:**\n\n**Users**: quicksight-users-backup-2025-10-19** Groups**: quicksight-groups-backup-2025-10-19** User-Group Memberships**: quicksight-users-groups-backup-2025-10-19\n\n**Users Table Schema:**\n\n**Groups Table Schema:**\n\n**Users-Groups Membership Table Schema:**\n\n**Note:** The user and group backup service implements dual-Region support. User and group operations use the `identity_region`\n\nconfiguration parameter, while backup asset operations use the standard `aws_region`\n\n. This design addresses enterprise scenarios where Quick Sight identity management is configured in a different Region than asset storage.\n\n### Assets backup\n\nThe assets bundle backup service coordinates the export of assets within a Region and uploads the generated bundle to an Amazon S3 location for later use. The automation backs up the following assets: data sources, datasets, analyses, dashboards, and themes. By default, the backup includes all dependencies. You can disable this setting if needed.\n\nAt a high level, the service performs the following tasks:\n\n- Lists all data sources using the\n[ListDataSources](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_ListDataSources.html)API, filtering out Amazon S3 manifest-based data sources and data sources with invalid VPC connection names. Names must contain only alphanumeric characters separated by hyphens. - Lists all datasets using the\n[ListDataSets](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_ListDataSets.html)API, filtering out`FILE`\n\ndatasets by checking the`ImportMode`\n\nfield. - Lists all analyses using the\n[ListAnalyses](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_ListAnalyses.html)API. - Lists all dashboards using the\n[ListDashboards](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_ListDashboards.html)API. - Groups assets by type for separate export jobs. You can configure the number of assets to include in each bundle, with a maximum of 100 (the\n[API limit](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_StartAssetBundleExportJob.html#QS-StartAssetBundleExportJob-request-ResourceArns)). - Checks the export job status using the\n[DescribeAssetBundleExportJob](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_DescribeAssetBundleExportJob.html)API and[implements exponential backoff](https://docs.aws.amazon.com/prescriptive-guidance/latest/cloud-design-patterns/retry-backoff.html)to avoid throttling. - Uploads the completed asset bundle to Amazon S3 using the following prefix structure.\n\n**Note:** The bundle number string is present only when the number of assets to back up exceeds the configured value in `max_assets_per_bundle`\n\n.\n\n### End-to-end tool for backup creation\n\nThe QuickSight-backup tool provides a simple way to export all your Quick Sight assets and their dependencies into durable, inexpensive storage such as Amazon S3. The tool creates new prefixes for generated bundles, so previous backups aren’t overwritten. The tool also exports users and groups using the same principle: DynamoDB stores this data, and table names contain the date when the backup was generated. With this approach, you can use backups as a source for your recovery strategy and track the history of changes to your Quick Sight assets and associated users.\n\nThe code uses the [Boto3 Python SDK](https://aws.amazon.com/sdk-for-python/) and includes packaging support through [setuptools](https://packaging.python.org/en/latest/guides/distributing-packages-using-setuptools/) for setup and use.\n\n### Tooling usage and configuration\n\nBefore using the tool, make sure you meet the following prerequisites:\n\n- Python 3.8 or higher.\n- A Quick Sight account with Enterprise edition or higher.\n- AWS Command Line Interface (AWS CLI) configured with appropriate credentials.\n- Required AWS permissions. See the\n[Permissions section](https://github.com/aws-samples/sample-quicksight-backup-tool/blob/main/README.md#permissions)in the code.\n\n**Clone from source**\n\n**Create a Python venv (recommended)**\n\n**Install the package**\n\n**Create a configuration file**\n\nTo get started, refer to the [config-basic.yaml](https://github.com/aws-samples/sample-quicksight-backup-tool/blob/main/examples/config-basic.yaml) file in the repo or create one from scratch. This configuration file defines key parameters for the tool, including the following:\n\n- AWS account.\n- Region.\n- Backup locations (DynamoDB tables and Amazon S3 bucket prefixes).\n\n**Using the tool**\n\nAfter installation, you can run the tool as follows:\n\nYou only need to provide the `--config`\n\nparameter. You can omit the rest. The `--mode`\n\nparameter controls the backup type (`full`\n\n, `users-only`\n\n, or `assets-only`\n\n), where `full`\n\nis the default mode. The following list describes the arguments the tool supports.\n\n**Optional arguments**\n\n`--mode`\n\n,`-m`\n\n: Backup mode (`full`\n\n,`users-only`\n\n,`assets-only`\n\n); default is`full`\n\n.`--output-dir`\n\n,`-o`\n\n: Output directory for reports and manifests.`--verbose`\n\n,`-v`\n\n: Enable verbose (`DEBUG`\n\n) logging.`--log-file`\n\n: Path to log file.`--dry-run`\n\n: Validate configuration without running the backup.`--no-progress`\n\n: Disable progress indicators.`--generate-manifest`\n\n: Generate a backup manifest file.`--generate-report`\n\n: Generate a human-readable backup report.`--version`\n\n: Show version information.\n\nFor more information, see the tool [README file](https://github.com/aws-samples/sample-quicksight-backup-tool/blob/main/README.md).\n\n### Tool code\n\nYou can find the code for this tool in the [aws-samples repository](https://github.com/aws-samples/sample-quicksight-backup-tool). This tool helps you get started quickly. Use it as a foundational reference to refine and adapt for your specific backup requirements.\n\nBefore you implement a backup solution in your production environment, confirm that you:\n\n**Review and adapt the code** to align with your specific infrastructure requirements, security policies, and compliance standards.**Conduct thorough testing** in a non-production environment to validate functionality and performance.**Implement appropriate security controls** including encryption, access management, and audit logging required by your organization.**Validate recovery procedures** to confirm your backup strategy meets your defined Recovery Time Objectives (RTO) and Recovery Point Objectives (RPO).**Consider cost optimization** strategies and monitoring to keep the solution within your operational budget.**Avoid concurrent tool execution:** This tool relies on the AssetsAsBundle APIs, which have low throttling thresholds. The sample tool is not designed to run multiple instances in parallel within the same AWS account. If multiple teams need to use the tool, consider implementing a concurrency control mechanism (for example, a lock table in DynamoDB or a database-level lock) to prevent concurrent runs that could trigger API throttling.\n\n## Scheduled execution\n\nThe sample tool described in the previous section is designed for on-demand execution and is well suited for getting started or running ad-hoc backups. For a production-grade backup strategy, you might want to automate backup runs on a recurring schedule so that your Quick Sight assets are consistently protected without manual intervention.\n\nThis section outlines the high-level architecture for a scheduled, fully automated backup solution. Detailed implementation and code for this architecture are outside the scope of this post.\n\n### Architecture overview\n\nThe scheduled execution architecture is built on three AWS managed services that work together to provide a reliable, serverless, and cost-effective automation pipeline:\n\n[Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html)is the scheduler. It triggers the backup workflow at a defined cadence, for example, daily at midnight. EventBridge rules let you define flexible cron-based or rate-based schedules without managing any underlying infrastructure.[AWS Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html)is the orchestration layer. It coordinates the run of the individual backup steps in the correct sequence. Step Functions provides built-in error handling, retry logic, and execution history, which makes it well suited for long-running workflows that span multiple API calls and asynchronous operations.[AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)implements each individual backup step as an independent, stateless function. Splitting the backup logic across multiple Lambda functions addresses the time constraints inherent in the backup process. Each export job is asynchronous and might take several minutes to finish, depending on the number and size of assets being exported.\n\n### Workflow steps\n\nBecause the end-to-end backup process can take a significant amount of time, the automation is decomposed into discrete steps, each implemented by a dedicated Lambda function. AWS Step Functions orchestrates these functions in sequence, passing state between them and handling retries for transient failures. The workflow consists of the following steps:\n\n**Users and groups backup:** Retrieves all Quick Sight users, groups, and group memberships using the Quick Sight identity APIs and persists the data to DynamoDB with date-based table suffixes, as described in the*Technical implementation*section. This operation can run in parallel with the asset backup operations because it doesn’t have any dependency.**Asset backup discovery:** Lists all Quick Sight assets in the target Region (data sources, datasets, analyses, and dashboards), applies the necessary filters to exclude unsupported asset types, and groups assets into lists of up to 100 items each. The output of this step is passed to subsequent steps as input.**Generate bundle:** Initiates export jobs for all the assets included in the list specified as the input parameter, polls for job completion, and uploads the resulting ZIP bundles to the designated Amazon S3 prefix.**Check status:** Periodically polls the active bundle execution and notifies the AWS Step Functions state machine when the export finishes.\n\nThe following diagram illustrates the high-level flow of the scheduled execution architecture.\n\n### Key design considerations\n\n**Asynchronous polling:** The check-status Lambda function polls the job initiated by the generate-bundle Lambda function using the`DescribeAssetBundleExportJob`\n\nAPI until the job reaches a terminal state (`SUCCESSFUL`\n\nor`FAILED`\n\n). The check-status Lambda function runs in a loop with a waiting condition (for example, 30 seconds) between calls.**Parallelism:** Configure an adequate level of parallelism to control the volume of API calls performed by the steps in your workflow, especially on the generate-bundle step that calls the`DescribeAssetBundleExportJob`\n\nand`StartAssetBundleExportJob`\n\nAPIs, which have low concurrent rate limits. You can use the[inline map state MaxConcurrency field](https://docs.aws.amazon.com/step-functions/latest/dg/state-map-inline.html)to limit the number of concurrent runs of the generate-bundle step.**Error handling:** Step Functions lets you define catch blocks and retry policies at each stage. A failure in one step (for example, an unsupported asset type) doesn’t abort the entire backup run.**Cost:** When scheduling is enabled, costs scale with backup frequency and retention period. For guidance on estimating storage costs, see the*Cost estimation*section.\n\n## Cost estimation\n\nThe following sections estimate the costs of running the backup tool on Amazon S3 (for asset bundles) and DynamoDB (for user and group metadata).\n\n### Amazon S3: asset bundle storage\n\nAsset bundles are compressed ZIP files uploaded to Amazon S3 after each export job. Based on the solution design, each bundle of up to 100 assets averages approximately 500 KB when compressed.\n\n**Key takeaway:** Amazon S3 storage costs for asset bundles are minimal. Even for very large Quick Sight deployments with thousands of assets, the compressed bundle size remains in the low megabytes range, resulting in a monthly storage cost well below $0.01.\n\n### Amazon DynamoDB: user and group metadata storage\n\nUser and group information is stored in DynamoDB tables with date-based suffixes to preserve backup history. DynamoDB storage is priced at approximately $0.25 per GB per month (Standard table class, on-demand mode).\n\nEach item stored in DynamoDB represents a single user or group definition (including all associated attributes such as ARN, email, role, group memberships, and backup timestamp). Based on the schema described in this post, the average item size is approximately 256 KB.\n\nYou can use this formula to estimate the size of your DynamoDB tables:\n\n**Table size estimate = Number of items × Average item size (256 KB)**\n\n**Key takeaway:** For small and medium organizations, DynamoDB storage costs remain minimal (under $0.10 per month per backup snapshot). For large organizations with tens of thousands of users, costs are still modest, in the low single-digit dollar range per snapshot.\n\n## Summary\n\nFor a single, unscheduled backup run, the total AWS cost is effectively near zero, dominated by a few cents of Amazon S3 and DynamoDB storage at most. If you implement scheduled backups (covered in the *Scheduled execution* section), costs scale linearly with backup frequency and retention period. Even with daily backups retained for 90 days, total storage costs remain in the low single-digit dollar range for most deployments. Consider using Amazon S3 Lifecycle policies and DynamoDB Standard-IA to optimize costs as your backup history grows.\n\n## Conclusion\n\nIn this post, we covered how to design and implement a comprehensive backup strategy for Amazon Quick Sight assets so you can maintain business continuity, meet regulatory requirements, and protect against data loss.\n\nWe covered how to use AssetsAsBundle APIs to programmatically export and preserve critical BI assets, including dashboards, analyses, datasets, and data sources, along with their dependencies and permissions. To help you get started, this post includes a sample automation tool that you can test and adapt to your organization’s needs. The code orchestrates these APIs, stores asset bundles in Amazon S3, and preserves user and group information in DynamoDB for point-in-time recovery.\n\nReady to protect your Quick Sight BI assets? Get started today by cloning the sample backup tool from the [AWS Samples repository](https://github.com/aws-samples/sample-quicksight-backup-tool) and testing it in your non-production environment. Begin with a simple configuration to back up your most critical dashboards, then expand to a production-ready backup strategy as you validate the process. To learn more about Amazon Quick Sight, see the [Amazon Quick Sight User Guide](https://docs.aws.amazon.com/quicksuite/latest/userguide/welcome.html).", "url": "https://wpnews.pro/news/implement-a-backup-strategy-for-amazon-quick-sight-bi-assets", "canonical_source": "https://aws.amazon.com/blogs/machine-learning/implement-a-backup-strategy-for-amazon-quick-sight-bi-assets/", "published_at": "2026-06-29 18:15:14+00:00", "updated_at": "2026-06-29 18:25:29.276846+00:00", "lang": "en", "topics": ["ai-tools", "ai-infrastructure"], "entities": ["Amazon Web Services", "Amazon Quick Sight", "Amazon Quick", "AWS Well-Architected Framework"], "alternates": {"html": "https://wpnews.pro/news/implement-a-backup-strategy-for-amazon-quick-sight-bi-assets", "markdown": "https://wpnews.pro/news/implement-a-backup-strategy-for-amazon-quick-sight-bi-assets.md", "text": "https://wpnews.pro/news/implement-a-backup-strategy-for-amazon-quick-sight-bi-assets.txt", "jsonld": "https://wpnews.pro/news/implement-a-backup-strategy-for-amazon-quick-sight-bi-assets.jsonld"}}