サーバーレスで膨大なデータを見える化(可視化)する基本形は、⑦ S3(ストレージサービス)、⑧ Athena(S3のデータに対して標準SQL文でデータを抽出するサービス)、⑨ QuickSight(Business Intelligenceサービス)の組み合わせです。本デザインパターンは、データベースのログデータをサーバーレスでグラフィカルに可視化するシンプルなデータ活用フローですが、データベースのログデータだけではなく、アクセスログなど様々なデータの見える化に応用することができます。
基本的な流れは、膨大なデータをそのままのデータ形式でいったん ④ S3に保存します。そして保存したデータを構造化データに変換(⑤⑥ETL処理)後、BIサービスを使って見える化するという流れになります。その目的は、現在の状態を視覚化してデータに基づいた意思決定をやり易くすることです。
まずデータベース ① RDSの②ログデータを出力して、③ Kinesis Data Firehose経由でバッファリングしながら、④ S3にログデータを流し込みます。この時、別の方法として、① RDSでダンプコマンドを使ってダンプファイルを出力して、④ S3に保存するという形もとれます。さらに、① RDSのログデータを⑥ Glueを使ってバルクで④ S3に取り込むやり方もあり、①②③、又は①④が基本形ですが、方法はいろいろあります。
次に④ S3に保存された非構造データを構造化データに変換する ⑤⑥ ETL処理を実行して、再度 ⑦ S3に保存します。この部分での使い分けとしては、15分以内の小規模な処理は ⑤ Lambdaで処理し、それ以上時間がかかる場合は、⑥ Glueで処理します。
そして、⑦ S3に保存されたETL処理済データに対して、⑧ クエリサービス Athenaを使って様々な切り口のSQL文を投げて抽出した結果を⑨ QuickSightに渡すことで、① RDSの②ログデータをグラフィカルに可視化することができます。