はじめに
本記事は、以下記事の続きです。
今回は、S3テーブルバケット内のテーブルのデータを、
QuickSightのデータセットとして利用するまでの設定を行っていきます。
以下AWS公式記事の手順を参考にしています。
構成図
本記事では QuickSightから(Athena経由で)S3 Tablesにデータセット接続する 部分を実装します。
実装手順
以下ステップで実装していきます。
ステップ2~5では、権限管理Lake Formationも出てきます。
本記事では 5. QuickSightからデータセット接続 のステップを行っていきます。
QuickSightからデータセット接続てじゅn
以下ステップで行います。
- QuickSightにサインアップ
- QuickSightIAMロール ポリシー設定
- Lake Formationから権限設定
- QuickSightデータセット作成
- QuickSightダッシュボード作成
- QuickSightアカウントのクリーンアップ
QuickSightにサインアップ
まず、QuickSightへのサインアップを行います1。
コンソール操作:
AWSコンソール検索画面から「QuickSight」をクリック → 「QuickSightにサインアップ」をクリック
以下の通り設定し、「完了」をクリック。
※赤枠以外はデフォルトのままです。
QuickSightIAMロール ポリシー設定
次に、QuickSight用のAWSデフォルトロール(aws-quicksight-service-role-v0
)に、ポリシーを追加します。
コンソール操作:
「IAMコンソール」 → 「ロール」 → 「aws-quicksight-service-role-v0 」詳細画面
「許可を追加」→ 「インラインポリシーを作成」 → 「ポリシーエディタ: JSON」
以下JSONを貼り付けます。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": "glue:GetCatalog",
"Resource": "*"
}
]
}
任意のポリシー名を設定し、ポリシーを作成(ロールを更新)します。
Lake Formationから権限設定
Lake Formationで、S3テーブルバケット内のテーブルへの権限を付与します。
QuickSight管理者ユーザーを確認
続いて、設定されているQuickSight管理者ユーザーを確認します。
以下AWS CLIコマンド実行結果から確認します。
aws quicksight list-users --aws-account-id <アカウントID> --namespace default --region ap-northeast-1
以下のような出力が出てくるので、
QuickSight管理者ユーザー("Role": "ADMIN"
)のArn
の値をメモしておきます。
※この後Lake Formationにて、そのユーザーへの権限を付与していきます。
{
"UserList": [
{
"Arn": "arn:aws:quicksight:ap-northeast-1:<アカウントID>:user/default/<IAMユーザー名>",
"UserName": "<IAMユーザー名>",
"Email": "<設定したQuickSight用メールアドレス>",
"Role": "ADMIN",
"IdentityType": "IAM",
"Active": true,
"PrincipalId": "federated/iam/<ID情報>"
}
],
"Status": 200,
"RequestId": "<リクエストID>"
}
Lake Formationからテーブル権限付与
確認したArn
に対して、Lake Formation経由でS3テーブルバケット内のテーブルへの権限を付与します。
QuickSightデータセット作成
QuickSight アカウントにサインインします。
QuickSightダッシュボード操作:
「新しい分析」 → 「新しいデータセット」 → 「Athena」を選択
以下の通り、任意のデータセット名を設定し、「データソースを作成」
「カスタム SQL の使用」をクリックし、
以下の通り、カスタムSQLを設定します。
SELECT * FROM "s3tablescatalog/<S3テーブルバケット名>".<S3テーブルバケットの名前空間>.<S3テーブルバケットのテーブル>
QuickSightダッシュボード作成
データセット作成が完了したら、続けてダッシュボードを作成してみます。
今回はシンプルなテーブルを表示してみます。
以下の通り、
「データクエリを直接実行」を選択し、「Visualize」をクリック
- ビジュアルタイプ: テーブル
- ディメンションフィールド: id, name, value
※EMR実装記事にて定義したフィールド
以下のように、S3テーブルバケットのテーブル内の値が確認できました。
※DataFirehose実装記事にて格納したデータ
QuickSightアカウントのクリーンアップ
QuickSightアカウントは、ユーザーあたりの課金が発生する2ので、
不要な場合はサブスクリプション削除/アカウント閉鎖3を行います。
QuickSightダッシュボード操作:
右上ユーザーアイコン → QuickSightを管理 → アカウント設定 → アカウントの終了 管理
アカウントの終了保護: off → 「確認」と入力 → 「アカウントを削除」
最後に
S3テーブルバケット内テーブルのデータを、
QuickSightダッシュボードで表示するところまでを確認しました。
お疲れさまでした。
参考URL
この記事で参考にしたURLです。
-
AWS記事:Signing up for an Amazon QuickSight subscription
https://docs.aws.amazon.com/quicksight/latest/user/signing-up.html ↩ -
AWS記事:Amazon クイックサイトの価格
https://aws.amazon.com/jp/quicksight/pricing/ ↩ -
AWS記事:Amazon QuickSight サブスクリプションの削除とアカウントの閉鎖
https://docs.aws.amazon.com/ja_jp/quicksight/latest/user/closing-account.html ↩