どうも、Azoopでエンジニアとして末席に名を連ねている杉本です。
最近社内の一部でグルメ部なるものを立ち上げる機運が少しずつ高まっていて、お財布の中が心配になってます。
今日はAWSで利用できるBIサービスの1つ、Amazon QuickSightのお話をしたいと思います。 弊社では、お客様の車両に関連する情報から車両の維持や運用にかかるコストを可視化し、お客様に現状をより理解しやすい形でご提供するためにQuickSightを利用しています。
今回QuickSightのお話をするにおいて、一度全体の機能をさらっとご紹介しようかと考えていたのですが、どうしてもボリュームが多くなってしまうので実際にQuickSightを利用した機能をリリースするまでの間で困ったり詰まったりしたポイントに絞って、困り具合とともにご紹介していこうと思います。
開発開始からリリースまでで困ったこと・詰まったこと
データソース大量登録問題(困り具合: ★☆☆)
データセットを作成する際、必ずデータソースを求められます。 最初の頃、いくつかのデータセットを作成しようとデータセットの作成画面にアクセスしていました。そして、都度RDSへの接続情報を入力していました。 時間が経ち、ふとあるとき新たしいデータセットの画面で下へスクロールすると、データセットと対になったデータソースが大量に発生していることに気づき…。
すでに作ったデータセットと同じデータソースを使う際は、データソースの一覧の下の方にある 既存データソースから
から選ぶと、データソースが増殖しなくていいかもしれません。
ユーザー権限数上限問題(困り具合: ★★★)
お客様のアカウントを作成する際、契約によってはQuickSightのダッシュボードを閲覧できるようにするためにQuickSightのユーザーも同時に作成し、ダッシュボードに対してユーザーへの閲覧権限を付与していました。
あるとき、エラーが出てアカウントが作成できない!と問い合わせをいただき、調査したところ権限数の上限に達して付与できず、アカウント作成の途中でロールバックしていました。
実は分析・ダッシュボード・テンプレート・テーマなどは、最大で100個のプリンシパルと共有できるとあり、裏を返せば 上限を超えると権限付与ができなくなる
という落とし穴があります。
これらはグループ機能またはフォルダ機能などを使って解決可能です。弊社ではグループ機能を利用しています。
ステージングと本番の同期問題(困り具合: ★★☆)
開発またはステージング環境で分析・作成のトライアンドエラー・もし問題ないと分かれば本番環境にも… 分析を環境ごとに分けたいという要望は普通にあると思います。別環境で作った分析を本番環境に移行するには、グラフ1つ1つの設定をコピーし、テーマを設定して…というのは、漏れなく移行するのは難しい話です。
これもいくつかやり方があるのですが、弊社ではAPIからテンプレート機能を利用してコピーする方法を取っています。
画面とQuickSight上の数値ずれ問題(困り具合: ★★★)
すでにサービス上に集計された画面があり、その集計された数値をダッシュボードで表示したいとなったとき、データの構造が違うために取得する条件が変わり同じ数値にならないときがあります。そういう場合調査が大変なこともあり、アプリケーションやフレームワークなど見えないところでよしなにしてくれているものがあればなおさら原因が見えづらいことも。
こればかりは最初からデータの取得ロジックを揃えておいたり、データソースをファイルベースにしてしまい、ロジックをアプリケーション側で使い回すなどといった工夫が必要かもしれません。
テーマ間違っていじっちゃった問題(困り具合: ★☆☆)
分析を複数人で編集しているときなどで起こりうる話なのですが、共有されていないテーマを別の人が設定していたときに、自分が間違えて自分のマイテーマをクリックした瞬間テーマが切り替わり、さらに分析の自動保存が実行されて戻せなくなったりすることがあります(実際ありました)。
テーマを共有してもらえばなんとかなるかもしれませんが、そうではない場合はコンソールやAPIからテーマを取得して自分に共有したりなど少し面倒な対応が必要になるかもしれません。
QuickSightを運用する際、見えない仕様で困ったりコピーする機能が確立されてなかったりで色々と考えなければならない問題がいくつもあります。慣れが必要なのは言うまでもないですが、そういう状況になったときにこの記事が一助になれば幸いです。