☁️くもをもくもくまなぶ

クラウドコンピューティングサービスの学んだことを中心につらつらと書いています

AWSの可視化ツールを触ってみる

ベース

AWSの基礎を学ぼう 特別編の特別編 最新サービスをみんなで AthenaとQuickSight にて実施している内容を元にまとめています。

Amazon Athena

Amazon S3上のデータに対して 標準SQL によるインタラクティブなクエリを投げて、データの分析を行うことができる サーバレス のサービス

Amazon Athena Federated Query
  • コネクタを自作することで普段業務で利用しているデータソースとの接続も可能になる
  • Lambdaを事前に作成して、Athenaから接続することでデータソースにクエリを発行することが可能になる
  • v2の利用可能なリージョンに注意
  • スキャンに対する課金となるので検索対象のデータが大きい場合は圧縮するとコストを軽くすることが可能
    • 100MBを超えるサイズのデータを分析する場合には有効
      • Athenaのパーティショニングも選択肢もある
    • GlueでCSVをparquet形式に変換も選択肢としてある
Amazon Athena Federated Queryの設定画面
Image in a image block
Lambdaの新規作成
Image in a image block
SAM用の定義
  AthenaDynamoDBConnector:
    Type: AWS::Serverless::Application
    Properties:
      Location:
        ApplicationId: arn:aws:serverlessrepo:us-east-1:292517598671:applications/AthenaDynamoDBConnector
        SemanticVersion: 2021.14.1
      Parameters:
        # The name you will give to this catalog in Athena. It will also be used as the function name. This name must satisfy the pattern ^[a-z0-9-_]{1,64}$
        AthenaCatalogName: YOUR_VALUE
        # WARNING: If set to 'true' encryption for spilled data is disabled.
        # DisableSpillEncryption: 'false' # Uncomment to override default value
        # Lambda memory in MB (min 128 - 3008 max).
        # LambdaMemory: '3008' # Uncomment to override default value
        # Maximum Lambda invocation runtime in seconds. (min 1 - 900 max)
        # LambdaTimeout: '900' # Uncomment to override default value
        # The name of the bucket where this function can spill data.
        SpillBucket: YOUR_VALUE
        # The prefix within SpillBucket where this function can spill data.
        # SpillPrefix: 'athena-spill' # Uncomment to override default value
Lambdaの作成
Image in a image block
AthenaからDDBの検索
  • 裏側でLambdaが複数起動してRCU(Region Capacity Unit)を消費する(=コストが発生する😍)
Image in a image block
  • Athenaは内部でPrestoでエンジンとして稼働している(RDBMSのユーザがクエリを書くのにこれまでの知識を生かすことができる)
Athnaの検索結果
  • クエリの実行結果もS3にエクスポートされているので都度都度実行しなくてもいい
Image in a image block
  • Prestoの構文に従うもののTableのJOINも容易
Image in a image block

Amazon QuickSight

  • ブラウザだけで管理者、編集者、閲覧者の操作が完結する
  • VPNや専用線接続サービスを経由してオンプレミスのデータソースにも接続可能
  • AWS内の他のサービスとも接続が(当然)可能
  • AWS外のSaaS系サービスとも接続可能
  • 内部ではSPICE(Super-fast, Parallel, In-memory Calculation Engine)で稼働している
  • 画面を30分接続すると1セッション扱いになる
    • 使いこなしても、最大 5USD
    • 使わなかったら 0 USD
  • QuickSightのAthena設定
Image in a image block
  • Athenaにアクセス許可
Image in a image block
  • アクセスさせるS3とLambdaの設定(S3編)
Image in a image block
  • アクセスさせるS3とLambdaの設定(Lambda編)
Image in a image block
  • 2021年4月時点で接続できるデータソース一覧
Image in a image block
  • Athenaにクエリを発行してQuichSightに連携(1/3)
Image in a image block
  • Athenaにクエリを発行してQuichSightに連携(2/3)
Image in a image block
  • Athenaにクエリを発行してQuichSightに連携(3/3)
Image in a image block
  • インポート状況の確認(1/2)
Image in a image block
  • インポート状況の確認(2/2)
Image in a image block
  • グラフを選択するとドリルダウンも可能
Image in a image block
  • グラフを選択するとドリルアップも可能(逆もまた然り)
Image in a image block
  • 予測も可能(1/2)
Image in a image block
  • 予測も可能(2/2)
Image in a image block
さいごに
  • QuickSight は 1 ユーザであれば無料で利用可能
  • Athena についてもクエリを動かさなければ費用は発生しない
新規起動する場合の注意点

2021年4月時点でAmazon QuickSightを新規で登録したのち、
外部データを読み込めるようになるまで少し時間がかかるケースがある

また、QuickSightにはキャパシティリージョンという考え方がある。
AWSアカウントで最初にQuickSightを起動したリージョンがキャパシティリージョン。
QuickSightの起動しているリージョンがAthenaと同一リージョンでないと接続ができない。

そのほか

AWSで実践!Analytics modernization~事例祭り編~