AWS Lake Formation
# AWS Lake Formation
https://d1.awsstatic.com/webinars/jp/pdf/services/20191001_BlackBelt_LakeFormation_A.pdf
## データレイクとは
- データから価値を見出す業務が増え、データは年々増えていく
- データにアクセスする人々も増えている
- 分析対象のデータに対する要件も増えている
- データレイクとは
- 全ての構造化データと日構造化データを保存できる一元化されたリポジトリ
- データをそのままの形で保存できるため、データを構造化しておく必要がない
- ダッシュボードや可視化、ビッグデータ処理、リアルタイム分析、機械学習など様々なタイプの分析を実行できる
- 分析の結果、意思決定を行える
- なぜデータレイクが必要か
## AWS Lake Formation 登場の背景
- データレイクを構築するには(数ヶ月単位の準備が必要)
- ストレージのセットアップ
- データの取り込み
- クレンジング、整形、データのカタログ化
- セキュリティの設定と適用
- 分析にデータを活用できるようにする
- AWS Lake Formation の概要
- データの取り込みと構造化(ブループリント)
- データ管理のテンプレートを提供
- Glue のトリガー、ワークフロー(一連のETL処理を行う)、クローラー、ジョブを自動で作成
- 自動的にデータ取り込み
- データベースからのバルクロード
- ログをインクリメンタルロード
- 整形、暗号化
- S3バケットに保存&アクセス(IAM)
- アクセスを行う対象のS3パス(Data Lake Location)
- Data Lake Location に登録したパスに対するアクセス許可(Data Location)
- データベースやテーブルの作成ができるようになる
- 以前は様々なサービスに対して設定を行わなければならず、辛かった
- セキュリティ&コントロール(パーミッション)
- ユーザーはAWSサービス(Amazon Athena, AWS Glue, Amazon Redshift, Amazon EMR)を通してアクセス。管理者はLake Formation 上でユーザーのアクセス制御を設定
- SQLライクなGrant / Revoke でシンプルなアクセス制御を実現
- 適切なユーザ、グループに正しいデータへのアクセス制御を定義
- データベース、表、列の単位の粒度で制御可能
- パーミッションの種類
- 協調&利用(データカタログ)
- メタデータカタログを利用した検索と定義確認
- 全てのアクセスはIAMポリシーによりチェック
- 新しいデータが取り込まれたり、ツールが変更されてもポリシーにより保護可能
- アクセス時の連携
- 監視&監査(ロギング)
- アクセス要求や発生したポリシー例外を記録
- アクティビティ履歴で変更ログやログデータの入手経路をレビュー
- CloudTrail
- Lake Formation とAWS Glue の関係
- Glue はETL(抽出・変換・ロード)を行うジョブとデータカタログを持つマネージドサービス
- Lake Formation はAWS Glue の拡張版とも言える
- Lake Formation はGlueとデータカタログを共有している
- Lake Formation のジョブとクローラーはGlue のジョブとクローラを呼び出している
- セキュリティ強化やブループリントによるデータ取り込みなどでより便利にGlueの機能を使えるようになっている
- AWS Glue からLake Formation への移行
- AWS Glue ではアクセスの権限管理をIAMを介して行なっている
- 対してLake Formation では自身で権限管理をしている
- 移行の際にはアクセス許可モデルの移行が必要になる
- IAMAllowedPrincipals という平行稼働時の運用をサポートするツール(移行後はOFFにすることを推奨)
## 雑感
後ろでAWS Glue を利用しているが、より一連の操作を行いやすくし、AWSでデータレイクを構築・運用するためのマネージドサービス。データのETL処理や権限管理をメインで行ってくれる。利用料金自体はかからず、分析サービスやデータストアの料金のみがかかる。シンプルになるのであればAWS Glue を利用すればいいが、そうではない場合はAWS Lake Formation を利用する感じだと思う。
一番のメリットは散らばりやすいIAMの管理がLake Formation にまとめられ、管理がしやすくなることだと思う(もしGlueをすでに利用している場合でも移行パスは提示されている)。また、ブループリントによりETL処理が楽になる部分があるかと思うが、(これ自体はGlueで提供されている機能かもしれないので)確認してみる。
テーブルレベルではなく、行単位で権限管理ができるのはすごいと思った。分析者に見てはいけないデータを見させないためのモノであるとは思うが、ちょっと権限管理が面倒になるかな、とも思った。
公式(モヒカン)漫画もあった。