出典
AWS Lake Formation - Developer Guide
まとめ
- WebコンソールないしシンプルなAPIから操作、管理できるGlueおよびIAMのラッパー
- Lake Formationからできること
- DataCatalogのDatabaseおよびTableの作成と管理
- BlueprintによるGlueのWorkflow作成および管理と実行
- IAM UserまたはRoleに対するDataCatalogへの各種権限のGrant及びRevoke
- S3 / Glue / Athena (Redshift Spectrum) のスタックで構成される集計環境が、RDBMSの様な操作感で使える
要点
Lake Formation用語
- Data Lake
- Data Catalogを用いてLake Formationにより管理されているS3のデータ
- Blueprint
- Workflowを作るためのテンプレート
- 典型的な各種データソースおよび出力データタイプについてテンプレートが用意されている
- Workflow
- ETL処理のひとまとまり
- Glue crowlers / jobs / triggers
- Workflowに必要なRoleを割り当てて、ETL処理を走らせることになる
- 以下を引数にとる
- Data source / Data target / schedule
- ETL処理のひとまとまり
- Data Catalog
- Glue Data Catalogのそれ
- Hiveメタストア
- Principal
- IAM User / Role
- DataCatalogへのアクセス権をGrant / Revokeする対象
LakeFormationにおけるユーザ・権限管理
LakeFormationでは、IAM Userに対して各種ポリシーをアタッチしてDataLakeAdministratorとし、そのIAM UserでDataLakeの管理をしていく事になる。一般のRDBMSで言うところのroot権限の様なものと考えれば分かりやすい。具体的な手順はこのへんを参照。
Administratorへアタッチする権限は主に4つ。
LakeFormationから呼び出す関連サービス(Glue/Athena、必要な場合はCloudTrailなど)の全権限もアタッチしておく。
- AWSGlueConsoleFullAccess (AWS managed)
- AmazonAthenaFullAccess (AWS managed)
- LakeFormationおよび関連リソースの各種操作権限
- 新設したWorkflowにRoleを設定する権限
これらの権限をアタッチしたユーザを、LakeFormationにAdministrator登録することで、LakeFormationからの全操作が可能になる。
同様に、データ分析者相当のIAM Userには相応の権限を付与することになる。具体的な手順はこのへん。
利用者毎に適宜IAM Userを払い出し、Policyを付与しておく。
ざっくり使い方
- WorkflowにアタッチするPolicyを用意する
- DataLake用S3バケット(ETL処理後の集計可能なデータを入れておく場所)を用意する
- DataCatalogにDatabaseを作成する
- 作成したDatabaseのデータに対する、各ユーザの権限を設定する
- Blueprintを使って、Workflowを作成する
- ここで、以下のパラメータを指定する
- DataCatalogのDatabaseおよびテーブル(Prefix)名
- DataLakeとなるS3バケット
- 出力データフォーマット
- Workflowが用いるIAM Role
- 実行スケジュール(常時手動実行も可)
- ここで、以下のパラメータを指定する
- Workflowを実行する
- Workflowによって作成されたTableにGrant Selectする
- めでたくAthenaでクエリが叩けるようになる
所感
- 最初の諸々権限設定が結構めんどくさい
- CDKでコード管理したい
- 管理のベストプラクティスなんかが出揃うまで、もう少し時間がかかりそう
- あるいは、研究すべし
- ETLの処理、権限管理、およびデータソース、整形後データベースが一元管理できるので、上手く使えるとかなり強力そう
- Workflowのリトライやアラート処理、進捗の可視化なんかを考えると、Workflowは全部OnDemand実行にして、StepFunctionに寄せたりしたい気持ちが出てくる