見出し画像

Amazon QuickSightでAPIアクセス管理ツールを作成してみた

はじめに

こんにちは、さっくーです。
ナビタイムジャパンのソリューション事業部でAPI開発を担当しています。

今回は、10/4にバージョンアップした『NAVITIME API 2.0』利用者向けの「APIアクセス管理ツール」を、Amazon QuickSightで作成した件について、経緯、一部機能の紹介、用いたことで感じたメリット、デメリットについての順でご紹介します。

Amazon QuickSight利用に至った経緯

これまでも「APIアクセス管理ツール」を提供していましたが、一目で結果を確認しづらい、メンテナンス及び改修がしづらいといったような課題がありました。
そこで、これらの問題を解消するために、「API アクセス管理ツール」のバージョンアップを検討しました。

バージョンアップの検討に伴い、プロジェクト内で実現したいことを精査しました。

・グラフ表示による利用状況の可視化
・最大分間アクセス数
・お客様が利用中のオプションの表示
・etc…

これらの実現に伴い、どのような技術を使うのかを検討し、「Amazon QuickSight」というAWS 分析ツールに着目しました。

Amazon QuickSightを利用して開発する場合と、HTMLとJavaScriptを用いて開発する場合を、「開発コスト」「運用コスト」「デザイン変更のしやすさ」の面で比較すると以下の様な表になりました。

デザインの変更に自由度があまりないものの、実現したいことの要件を満たしていること、またノーコードで開発でき、運用面も楽であることからAmazon QuickSightで作成する運びになりました。

機能紹介

ここからは実際にAmazon QuickSightで利用して作成した「API アクセス管理ツール」の一部機能について触れながら、Amazon QuickSightの機能について紹介いたします。

リクエスト推移

こちらは各APIのリクエスト数の推移を折れ線グラフで表示したものになります。
これまでは表のみでの表示であったため、リクエスト量の増減を視覚的にとらえることが困難でしたが、グラフで可視化することにより、使いやすくなりました。
各折れ線にカーソルを合わせることで正確な数値も取得可能となっています。

リクエスト推移を示す折れ線グラフ
(※実際に利用しているお客様のデータではありません)

API別アクセス数

こちらはAPI別のアクセス数の合計をドーナツグラフで表示したものになります。
各APIのアクセス数の割合を一目で確認できる他、正確な割合の値もカーソルを合わせることで確認することができます。

API別アクセス数を示すドーナツグラフ
※実際に利用しているお客様のデータではありません

Amazon QuickSightを用いたことで感じたメリット・デメリット

ここからは「API アクセス管理ツール」をAmazon QuickSightで作成した際に感じたメリット、及びデメリットについて紹介いたします。

メリット

スムーズに開発ができる

バージョンアップ検討当初は、元々運用していた「API アクセス管理ツール」と同様にHTMLとJavascriptを用いた構成で実装しようと検討しており、2ヶ月ほどの開発コストが発生する想定でした。
しかし、最終的にAmazon QuickSightを採用したことにより、50%もの作業工数を削減することができ、1ヶ月ほどで開発できました。

工数削減の要素の一つとしては、ノーコードで開発できる点が挙げられます。
表示したい要素をブロックで配置し、ブロック毎の各種設定がコーディングなしで実現できるため、利用したいデータの概要が把握できれば、エンジニア以外の方でも利用可能と感じました。

また、「『NAVITIME API 2.0』をAWSで運用していることにより、AthenaやS3との連携が可能である点などの親和性の高さ」も要因の一つと感じました。AWS上で管理している利用データ等へのアクセスが容易であるため、不自由なく表示したいデータセットの用意ができました。

グラフによる可視化が容易にできる

次にグラフによるデータの可視化が容易な点です。
可視化の手段は様々なパターンが用意されており、円グラフ、棒グラフ、折れ線グラフ、表、散布図など用途に合わせて設定できます。
また、以前の「API アクセス管理ツール」から存在していたCSVの出力機能についても標準で用意されていました。

各機能のアイコン

お客様毎の管理が容易にできる

今回の「APIのアクセス管理ツール」での用途においては、お客様のID毎に参照内容を制御する必要がありました。
こちらの課題に関しても、「フィルター」という機能が標準で用意されており、管理したいお客様のIDに紐づく情報をコントロールすることによって、実現できました。
また、お客様が利用していただく際にはアカウントを用意する必要があるのですが、AWSアカウントの発行のみで認証周りの問題も解決することも魅力の一つと感じました。

デメリット

レイアウトの細かい調整ができない

少し残念だった点としては、レイアウトの細かい調整ができない点です。
文字の大きさ、色などの調整は可能であるものの、細かい位置の調整や凝った見た目を作成することはできませんでした。

基本操作を覚えるまでが難しい

こちらは個人差がありそうですが、私はAmazon QuickSightの基本操作を覚えるのに1 ~ 2週間ほどかかりました。
利用が初めてなこともあり、有識者もいなかったため手探りで作成を進めておりました。
開発コストの削減には成功した代わりに、ある程度知見が溜まっている状態でないと、コードを書かないとはいえ学習コストがそれなりにかかると感じました。

最後に

今回はAmazon QuickSightを用いて「API アクセス管理ツール」を作成した際に感じたメリットを主にご紹介させていただきました。

内容をまとめると、この様なケースの場合に、Amazon QuickSightはオススメです!

・AthenaやS3で取得するデータをグラフや表で可視化がしたい!
・ノーコードでデータ分析サイトの作成がしたい!

まだ「API アクセス管理ツール」はバージョンアップしたばかりですが、今後もお客様のご要望に合わせて随時改善していく予定です。
お読みいただきありがとうございました。