Amazon QuickSightのバックアップを自動化するツールを公開しました!

Amazon QuickSightのバックアップを自動化するツールを公開しました!

Clock Icon2025.07.09

クラウド事業本部コンサルティング部の石川です。Amazon QuickSightは、ダッシュボードや分析をインタラクティブに作成・共有でき、多くのプロジェクトで活用されています。しかし、運用していると間違えてダッシュボードを変更してしまったり、不具合があるためある時点に戻したいといった課題に直面することはあります。

BIツールは、一般に世代管理や自動バックアップの機能が存在しません。しかし、QuickSightにはAPIでエクスポート・インポートを行う機能が提供されています。

そこで今回、QuickSightのダッシュボードを自動でバックアップし、保存するプログラムを作成しました。この記事では、そのツールの概要や使い方について詳しくご紹介します。

https://github.com/ishikawa-satoru-classmethod/quicksight-dashboard-backup

特長

この自動バックアッププログラムには、主に以下の3つの特長があります。

自動バックアップ

QuickSightのダッシュボードのすべてのリソース(ダッシュボード、分析、データセット、データソース、テーマ、VPC接続)を自動でバックアップします。

世代管理

バックアップは日次でフォルダが作成され、その配下にリソースごとに出力されるため、過去のバージョンを簡単に遡ることができます。

並列バックアップ

ダッシュボードのバックアップは1つあたり数十秒かかるため、5つのスレッドで並列処理を行い、全体の所要時間を約1/3に短縮しています。

機能

リージョン内(デフォルトは、us-east-1)のQuickSight環境のダッシュボード一覧を取得して、バックアップファイルを取得します。バックアップ先は、ローカル(デフォルト)もしくはS3バケットにアップロードします。

バックアップファイルは、<ダッシュボード名>.qs です。そのため、同じダッシュボード名が複数ある場合は、いずれか一つのみバックアップの対象となりますので、ご注意ください。

導入・実行方法

本プログラムの導入には、主に以下の手順でセットアップを行います。

リポジトリのクローン

プログラムのソースコードをローカル環境に取得します。

git clone https://github.com/classmethod-aws/quicksight-backup-tool.git
cd quicksight-backup-tool

ローカル環境で実行する場合の設定(簡易)

AWSの認証情報が設定済みの場合は特に設定不要です。また、backupディレクトリに保存する場合は、バックアップ先のS3のバケットやキーの指定が不要です。

Pythonパッケージのインストール

pip install -r requirements.txt

実行方法

python quicksight_dashboard_backup.py

実行例

Starting QuickSight dashboard backup for account: 123456789012
Found 5 dashboards to backup
Phase 1: Starting export jobs with limited concurrency (max 3)...
[1/5] Starting export: 部門別販売管理表
[2/5] Starting export: sale
[3/5] Starting export: 販売損益ダッシュボード
  ✓ sale: Export job started
[4/5] Starting export: dashboard20220902
  ✓ dashboard20220902: Export job started
[5/5] Starting export: Cost-and-usage-QuickSight-dashboard-in-us-east-1
  ✓ 販売損益ダッシュボード: Export job started
  ✓ 部門別販売管理表: Export job started
  ✓ Cost-and-usage-QuickSight-dashboard-in-us-east-1: Export job started
Phase 1 complete: 7 jobs started, 0 failed to start
Phase 2: Monitoring jobs and downloading results concurrently...
Using 5 concurrent threads for monitoring and downloading
[2/5] Monitoring: sale
[4/5] Monitoring: dashboard20220902
[3/5] Monitoring: 販売損益ダッシュボード
[1/5] Monitoring: 部門別販売管理表
[5/5] Monitoring: Cost-and-usage-QuickSight-dashboard-in-us-east-1
  ✗ 販売損益ダッシュボード: Export job failed: The data set type is not supported through API yet
  ✓ sale: Backup completed successfully
  ✓ dashboard20220902: Backup completed successfully
  ✗ 部門別販売管理表: Export job failed: The data set type is not supported through API yet
  ✓ Cost-and-usage-QuickSight-dashboard-in-us-east-1: Backup completed successfully
Phase 2 complete: All jobs monitored and downloads attempted

Backup completed in 77.7 seconds

============================================================
BACKUP REPORT
============================================================
Total dashboards: 5
Successful backups: 3
Failed backups: 2

Successful backups:
  ✓ sale (2025-07-09 10:06:33)
  ✓ dashboard20220902 (2025-07-09 10:06:33)
  ✓ Cost-and-usage-QuickSight-dashboard-in-us-east-1 (2025-07-09 10:07:03)

Failed backups:
  ✗ 販売損益ダッシュボード - FAILED (2025-07-09 10:06:31)
  ✗ 部門別販売管理表 - FAILED (2025-07-09 10:06:35)

Backup files saved to: s3://cm-quicksight-backup-20250708/
============================================================

補足: Lambda環境で実行する場合の設定

Lambda環境で実行する場合の設定は、以下のサイトをご覧ください。

https://github.com/ishikawa-satoru-classmethod/quicksight-dashboard-backup/blob/main/README.ja.md#-aws-lambda-デプロイ

: 大量のダッシュボードを扱う環境や、処理の実行時間が15分を超えることが見込まれる状況では、AWS Lambdaのタイムアウト制限に抵触する可能性があるため、AWS Glue Python Shellをはじめとする、より実行時間制限の長いコンピューティングサービスの利用をご検討ください。

詳しい解説

より詳しい解説は、以下のREADME.jaをご覧ください。

スクリーンショット_0007-07-09_18_59_55

最後に

今回は、Amazon QuickSightのバックアップを自動化するツールをご紹介しました。 このツールを使えば、より安心してQuickSightを活用いただけるようになるはずです。

人的ミスによるデータ損失のリスクを低減し、安定したBI環境を運用するための一助となれば幸いです。ぜひお試しください!

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.