AWS Lake Formation

# AWS Lake Formation

https://d1.awsstatic.com/webinars/jp/pdf/services/20191001_BlackBelt_LakeFormation_A.pdf

## データレイクとは

  • データから価値を見出す業務が増え、データは年々増えていく
  • データにアクセスする人々も増えている
  • 分析対象のデータに対する要件も増えている

 

  • データレイクとは
    • 全ての構造化データと日構造化データを保存できる一元化されたリポジトリ
    • データをそのままの形で保存できるため、データを構造化しておく必要がない
    • ダッシュボードや可視化、ビッグデータ処理、リアルタイム分析、機械学習など様々なタイプの分析を実行できる
    • 分析の結果、意思決定を行える
  • なぜデータレイクが必要か
    • 構造化、反構造化、非構造化データの取り扱い
    • ペタバイト、エクサバイトに渡る拡張性
    • 様々な分析および、機械学習ツールとの連携
    • データの移動を伴わずにデータを処理
    • 低コストなデータの保存と分析

 

## AWS Lake Formation 登場の背景

  • データレイクを構築するには(数ヶ月単位の準備が必要)
    1. ストレージのセットアップ
    2. データの取り込み
    3. クレンジング、整形、データのカタログ化
    4. セキュリティの設定と適用
    5. 分析にデータを活用できるようにする

 

  • 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 でシンプルなアクセス制御を実現
      • 適切なユーザ、グループに正しいデータへのアクセス制御を定義
      • データベース、表、列の単位の粒度で制御可能
      • パーミッションの種類
        • データロケーションのアクセス許可
          • 登録されたS3にデータベースまたはテーブルを作成するため
        • データカタログのアクセス許可
          • データカタログには、基となるデータに関するメタデータが格納される
          • メタデータはテーブルとその集合であるデータベースとして編成されている
          • データカタログのアクセス許可は、データベースとテーブルを作成、編集、削除する権限を Grant / Revoke で与える
        • データアクセス許可
          • ユーザーに対してテーブル、列単位の権限付与
        • 暗黙的なアクセス許可
          • 何かを作成した場合、暗黙的に作成したモノに対しての権限が与えられる
    • 協調&利用(データカタログ)
      • メタデータカタログを利用した検索と定義確認
        • Apache Hive(Athena) メタストアで行うのと同じ方法で、AWS メタデータを保存、解釈付け、共有できるマネージドサービス
      • 全てのアクセスはIAMポリシーによりチェック
      • 新しいデータが取り込まれたり、ツールが変更されてもポリシーにより保護可能
      • アクセス時の連携
        • ユーザーは各種AWS分析サービスに対してクエリを投げる
        • AWS サービスはLake Formation に対してS3バケットに対してのアクセス権限を要求
        • Lake Formation から取得したクレデンシャル(取得できる範囲を制限)を利用してS3のオブジェクトへリクエストを投げる
    • 監視&監査(ロギング)
      • アクセス要求や発生したポリシー例外を記録
      • アクティビティ履歴で変更ログやログデータの入手経路をレビュー
        • 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で提供されている機能かもしれないので)確認してみる。

テーブルレベルではなく、行単位で権限管理ができるのはすごいと思った。分析者に見てはいけないデータを見させないためのモノであるとは思うが、ちょっと権限管理が面倒になるかな、とも思った。

公式(モヒカン)漫画もあった。

aws.amazon.com