Slide 1

Slide 1 text

ダッシュボードもコード管理! Amazon QuickSightで考えるBIOps 2023/7/19 データアナリティクス事業本部 niino 1

Slide 2

Slide 2 text

2 感想は #devio2023 を入れてツイートしてください! スライドは後日登壇ブログにて公開します

Slide 3

Slide 3 text

⾃⼰紹介 niino ● データアナリティクス事業本部 インテグレーション部 コンサルティングチーム ○ ソリューションアーキテクト ○ 2023 Japan AWS Top Engineer(Analytics) ● データ分析基盤に関するコンサルティング ● 好きなAWSサービス:Amazon Athena ● 奈良県出⾝ ⼤阪オフィス所属 この辺の出身

Slide 4

Slide 4 text

QuickSight、好きですか ❤ 4

Slide 5

Slide 5 text

QuickSightについておさらい 5 Amazon QuickSight ● AWSのフルマネージド なサーバーレス BIサービス ● Webブラウザ経由で ダッシュボード作成‧ 閲覧 引用元:https://aws.amazon.com/jp/quicksight/

Slide 6

Slide 6 text

QuickSightのいいところ 6 安い

Slide 7

Slide 7 text

QuickSightのいいところ:安い 7 ● とにかく安価 ● AWS内の費⽤として計 上できるため、稟議が 通しやすく、 始めやすい 1ヶ⽉ 年間 作成者(Author) $24/⽉ $18/⽉ QuickSight Qを利⽤する作成者 (Author) ※QuickSight Qを利⽤するには $250/⽉が別途必要 $34/⽉ $28/⽉ Enterprise Editionの場合

Slide 8

Slide 8 text

QuickSightのいいところ 8 アップデートが多い!

Slide 9

Slide 9 text

いいところ:アップデートされまくり 9 ● 2022年には80個以上ものアップデート ○ 今のQuickSightは、あなたが知ってるQuickSightでは ないかもしれない…

Slide 10

Slide 10 text

QuickSightのいいところ 10 なんといってもAWSのマネージドサービス

Slide 11

Slide 11 text

いいところ:AWSのマネージドサービス 11 ● 他AWSサービスとの連携が容易 ○ VPC接続で簡単にプライベートにデータソースへ接続可能 ○ データソース接続にSecrets Managerを使うことパスワード ローテーションにも追従できる ○ QuickSight APIをStep Functionsを使って オーケストレーションすることもできる ● 2022年11⽉、コード管理ができるようになりました

Slide 12

Slide 12 text

いいところ:AWSのマネージドサービス 12 ● 他AWSサービスとの連携が容易 ○ VPC接続で簡単にプライベートにデータソースへ接続可能 ○ データソース接続にSecrets Managerを使うことパスワード ローテーションにも追従できる ○ QuickSight APIをStep Functionsを使って オーケストレーションすることもできる ● 2022年11⽉、コード管理ができるようになりました この話がしたい

Slide 13

Slide 13 text

今日話すこと 13 ● QuickSightのいいところ ● QuickSightのコード管理でできること ● BIをコード管理してうれしいこと ● ユースケースいろいろ ● まとめ

Slide 14

Slide 14 text

14 その前に

Slide 15

Slide 15 text

QuickSightの基本用語 15

Slide 16

Slide 16 text

今日話すこと 16 ● QuickSightのいいところ ● QuickSightのコード管理でできること ● BIをコード管理してうれしいこと ● ユースケースいろいろ ● まとめ

Slide 17

Slide 17 text

コード管理言うてますけども 17 QuickSightでは 何ができるようになったの?🤔

Slide 18

Slide 18 text

コード管理言うてますけども 18 QuickSightのアセットをコードで デプロイできる!

Slide 19

Slide 19 text

QuickSightのコード管理 19 API機能の拡充! ● アセットの定義情報をJSON 形式で取得可能に ● Create/UpdateのAPIにダッ シュボード、分析、テンプ レートの定義情報を指定可能 ● 依存関係にあるアセットを パッケージ化(アセットバン ドル)

Slide 20

Slide 20 text

QuickSightのコード管理 20 API機能の拡充! ● アセットの定義情報をJSON 形式で取得可能に ● Create/UpdateのAPIにダッ シュボード、分析、テンプ レートの定義情報を指定可能 ● 依存関係にあるアセットを パッケージ化(アセットバン ドル) つまり、コマンド⼀発で アセットを作成可能!

Slide 21

Slide 21 text

QuickSightのコード管理で実現できること 21 ● ダッシュボードを別アカウントへ⼀気に配布 ● アセットのバージョン管理 ● バックアップの取得‧デプロイ ● データソースなど周辺サービスを含めたIaC化 ○ CDKやCloudFormationで実現可能

Slide 22

Slide 22 text

今日話すこと 22 ● QuickSightのいいところ ● QuickSightのコード管理でできること ● BIをコード管理してうれしいこと ● ユースケースいろいろ ● まとめ

Slide 23

Slide 23 text

コード管理ねえ… 23 せっかくGUIでできるのを なんでコードでやらなきゃいけないの🤨?

Slide 24

Slide 24 text

GUIの光と闇 24 画⾯をポチポチするだけで簡単にダッシュボード作成できる

Slide 25

Slide 25 text

GUIの光と闇 25 画⾯をポチポチするだけで簡単にダッシュボード作成できる ⾮エンジニア含め、いろんな⼈が分析を始められる

Slide 26

Slide 26 text

GUIの光と闇 26 画⾯をポチポチするだけで簡単にダッシュボード作成できる ⾮エンジニア含め、いろんな⼈が分析を始められる いろんな⼈が好き勝⼿な指標や基準でダッシュボードを 作ってしまう 横展開が難しい

Slide 27

Slide 27 text

BIにおけるコード管理のうれしさ 27 ● アセットを定義し、保持することでSingle Source Of Truth(信頼できる唯一の情報源)を担保 ● バージョン管理による変更の追跡 ● アセットの移行が容易 ● 自動化による継続的なデプロイ

Slide 28

Slide 28 text

BIにおけるコード管理のうれしさ 28 ● アセットを定義し、保持することでSingle Source Of Truth(信頼できる唯一の情報源)を担保 ● バージョン管理による変更の追跡 ● アセットの移行が容易 ● 自動化による継続的なデプロイ 分析までのライフサイクルを短縮し、 信頼性の高い内容で継続的にデリバリーできる

Slide 29

Slide 29 text

BIにおけるコード管理のうれしさ 29 ● アセットを定義し、保持することでSingle Source Of Truth(信頼できる唯一の情報源)を担保 ● バージョン管理による変更の追跡 ● アセットの移行が容易 ● 自動化による継続的なデプロイ 分析までのライフサイクルを短縮し、 信頼性の高い内容で継続的にデリバリーできる BIOps

Slide 30

Slide 30 text

今日話すこと 30 ● QuickSightのいいところ ● QuickSightのコード管理でできること ● BIをコード管理してうれしいこと ● ユースケースいろいろ ● まとめ

Slide 31

Slide 31 text

ふーん 31 結局どう使えばいいの🤔?

Slide 32

Slide 32 text

ユースケースいろいろ 32 ● ダッシュボードをバージョン管理 ● データセットの定義を保持する ● バックアップ取得とデプロイ ● 社内のAWSアカウントに横展開 ● ダッシュボードデプロイを⾃動化

Slide 33

Slide 33 text

ユースケースいろいろ 33 ● ダッシュボードをバージョン管理 ● データセットの定義を保持する ● バックアップ取得とデプロイ ● 社内の別AWSアカウントに横展開 ● ダッシュボードデプロイを⾃動化

Slide 34

Slide 34 text

ダッシュボードをバージョン管理 34 ● describe-dashboard-defin itionコマンドで定義を JSON形式で取得 ● GithubやCode Commitに プッシュし、定義情報を管理 変更を追跡可能 $ aws quicksight describe-dashboard-definition --aws-account-id --dashboard-id <ダッシュボードID> > ./code/dashboard-definition.json

Slide 35

Slide 35 text

ユースケースいろいろ 35 ● ダッシュボードをバージョン管理 ● データセットの定義を保持する ● バックアップ取得とデプロイ ● 社内の別AWSアカウントに横展開 ● ダッシュボードデプロイを⾃動化

Slide 36

Slide 36 text

データセットの定義を保持 36 $ aws quicksight describe-data-set --aws-account-id --data-set-id <データセットID> > dataset-definition.json "Catalog": "AwsDataCatalog", "Schema": "salesdb", "Name": "sales_dataset", "InputColumns": [ { "Name": "sales", "Type": "INTEGER" }, :(中略) "CreateColumnsOperation": { "Columns": [ { "ColumnName": "total_sales", "ColumnId":"c8739369-..........", "Expression": "{sales}*{amount}" } ● カラムのデータ型 ● 計算フィールドの定義 計算フィールドを利⽤して いる場合、データがどんな 計算ロジックで算出されて いるのか含めて定義

Slide 37

Slide 37 text

ユースケースいろいろ 37 ● ダッシュボードをバージョン管理 ● データセットの定義を保持する ● バックアップ取得とデプロイ ● 社内の別AWSアカウントに横展開 ● ダッシュボードデプロイを⾃動化

Slide 38

Slide 38 text

バックアップ取得とデプロイ 38 ● アセットバンドル(依存関係 含めたアセット定義)をエク スポート ● アセットバンドルを QuickSightへインポート ● 定義をCodeCommitにプッ シュしておけば アセットバンドルの バージョン管理も可能 $ aws quicksight describe-asset-bundle-export-job --aws-account-id   --asset-bundle-export-job-id <ジョブ名>

Slide 39

Slide 39 text

ユースケースいろいろ 39 ● ダッシュボードをバージョン管理 ● データセットの定義を保持する ● バックアップ取得とデプロイ ● 社内の別AWSアカウントに横展開 ● ダッシュボードデプロイを⾃動化

Slide 40

Slide 40 text

社内のAWSアカウントに横展開① 40 引用元 :https://aws.amazon.com/jp/blogs/big-data/automate-and-accelerate-your-amazon-quicksight-asset-depl oyments-using-the-new-apis/ ● アセットバンドルをエ クスポート ● 別AWSアカウントへ インポート ● インポート後、 アセット管理より 権限を付与

Slide 41

Slide 41 text

社内のAWSアカウントに横展開② 41 ● アセットバンドルを CloudFormation JSON 形式でエクスポート ● データソース(例 :Amazon Athena等) 含めてデプロイ

Slide 42

Slide 42 text

ユースケースいろいろ 42 ● ダッシュボードをバージョン管理 ● データセットの定義を保持する ● バックアップ取得とデプロイ ● 社内の別AWSアカウントに横展開 ● ダッシュボードデプロイを⾃動化

Slide 43

Slide 43 text

ダッシュボードデプロイを自動化① 43 ● APIを利用した自動化 ● 定義情報をCodeCommitで管理 ● CodeBuildでcreate/updateコマンドを実行 CodeCommitの リポジトリを指定

Slide 44

Slide 44 text

ダッシュボードデプロイを自動化② 44 ● PythonからAPIを実行 し、データソース〜ダッ シュボード作成を自動化 する ● スクリプトはAWS公式ブ ログにて公開中 引用元 :https://github.com/aws-samples/amaz on-quicksight-sdk-proserve/tree/master/ BIOps_Deployment_Scripts

Slide 45

Slide 45 text

今日話すこと 45 ● QuickSightのいいところ ● QuickSightのコード管理でできること ● BIをコード管理してうれしいこと ● ユースケースいろいろ ● まとめ

Slide 46

Slide 46 text

まとめ 46 ● QuickSight APIの拡充により、定義を元にアセットを 作成・更新ができるようになりました ● データソースや周辺サービスを含めたIaCでQuickSightの アセットをデプロイ可能に! ● コード管理を通してより安全にQuickSightを 使いましょう!

Slide 47

Slide 47 text

まとめ 47 参考 ● AWS QuickSight as “Code”; a unified approach for QuickSight development and deployment, using AWS CDK, CLI, and CodePipeline | by Gmournos | Jun, 2023 | Medium https://medium.com/@gmournos/aws-quicksight-as-code-a-unified-approach-for-quicksight-development-and-d eployment-using-aws-30bbb6bd253a ● [アップデート] Amazon QuickSight でアセットのインポート・エクスポートジョブを実行することが出来るようになりました | DevelopersIO https://dev.classmethod.jp/articles/quicksight-inport-export-job/ ● Amazon QuickSightのアセットのインポート・エクスポートジョブで別アカウントにダッシュボードを共有してみた | DevelopersIO https://dev.classmethod.jp/articles/quicksight-inport-export-job-share-s3-dashboard/ ● [BIOps: Amazon QuickSight object migration and version control | AWS Big Data Blog](https://aws.amazon.com/jp/blogs/big-data/biops-amazon-quicksight-object-migration-and-version-control/) ● Automate and accelerate your Amazon QuickSight asset deployments using the new APIs | AWS Big Data Blog https://aws.amazon.com/jp/blogs/big-data/automate-and-accelerate-your-amazon-quicksight-asset-deployment s-using-the-new-apis/

Slide 48

Slide 48 text

もしよかったら… 48 お手元の紙に記載のQRコードから アンケートにご協力ください!

Slide 49

Slide 49 text

49