AWS Lake Formationを構成する機能群について #reinvent
AWS re:Invent 2018で行われた「Keynote with Andy Jassy」セッション内で発表された、安全なデータレイクを簡単に設定できる新サービス「AWS Lake Formation」。
AWS Lake Formation (coming soon) builds up a secure data lake in days. Ingest, catalog, clean, transform & secure your data. Combine analytics with EMR, Redshift, Athena, Sagemaker & QuickSight! #reInvent https://t.co/hZEEfpUGH4 pic.twitter.com/HahQ65NL7d
— Amazon Web Services (@awscloud) 2018年11月28日
AWS Lake Formationが発表されました!これは従来数ヶ月かかったデータレークの構築を数日で実現するものです。#reInvent pic.twitter.com/98DfboMVb0
— AWS / アマゾンウェブサービス (@awscloud_jp) 2018年11月28日
現状、利用開始にはプレビュー版申請を行った後申請が通るのを待つ形となりますが、機能詳細について言及しているドキュメントは既に用意されているようです。当エントリではその内容について把握してみたいと思います。
データレイクを迅速に構築
AWS Lake Formationは、これまで数ヶ月は掛かっていたであろう「データレイクの構築」を、数日で安全かつ簡単に作成出来るサービスです。作成後の管理も簡素化されたものとなるようです。
既存AWSデータベースからデータをインポート
- 既存データベース及びアクセス情報を指定すると、Lake Formationはデータとメタデータ(スキーマ)を読み込み、データをインポート&データカタログにメタデータを記録。
- Lake Formationを使う事で、RDSで稼働している各種DB(MySQL, PostgreSQL, SQL Server, MariaDB, Oracle)からデータをインポートしたりEC2でホストしたり出来る
- バルクロード、インクリメンタルデータロードをサポート
外部リソースからデータをインポート
- JDBC接続を使ってオンプレDBからデータを移動可能に
- 指定対象外のデータベースからのデータインポートにはAWS Glueを使ってカスタムETLジョブを作成する事で対応可能
他AWSサービスからのデータインポートも可能に
- Amazon S3バケットを識別、データレイクにコピーするデータを指定可能
- AWS CloudTrail, AWS CloudFront, Detailed Billing Reports, ELB等のサービスで生成されたログも収集、整理が可能
- カスタムジョブを使用してAmazon KinesisやAmazon DynamoDBでデータレイクにデータロードも出来るように
データのカタログ化とラベル付け
- データソースをクロールして読み込み、利用可能なデータセットを検出
- また、独自のカスタムラベルをデータに追加して、ユーザーが分析に必要なデータを素早く見つける事が可能に
データの変換
- 変換テンプレートを作成し、分析のためのデータ準備を行うジョブをスケジューリング
- AWS Glueが用いられ、ParquetやORC等の形式で出力
- AWS GlueやApache Sparkを使って特定要件に合わせたカスタム変換ジョブを作成可能
データクレンジングと分類
- 重複排除・一致レコードの検索用途に用いる機械学習(ML変換)機能によって、分析のためのデータクレンジングがもっと便利に
- トレーニング用とテスト用のデータセットを指定し、必要となる変換ルールの例・精度・チューニングを検証し、新しいモデルを本番環境に反映する事でデータ品質を向上させる事が可能
パーティションの最適化
- S3データ分割を最適化し、パフォーマンスを向上・コストを削減
セキュリティ管理の簡素化
Lake Formationではセキュリティ面についても諸々考慮が為されているようです。
暗号化を強制
- AWS Key Management Service(KMS)によって管理される、キーを使用したサーバ側の自動暗号化を提供
- S3でデータをリージョン間転送する際、転送中のデータは暗号化される
- 暗号化機能を使う事で、データレイク内に安全な基盤を提供可能となる
アクセス制御の定義・管理
- AWS IAMとの統合により、ロール別にユーザー及びアプリケーションに対してセキュリティポリシーベースのルールを定義可能
- 以下サービスのユーザーに対して、テーブル及び列レベルでのアクセス制御を実施可能に
- Amazon Redshift Spectrum
- Amazon Athena
- Amazon EMR(Apache Spark)
- AWS Glueアクセスはテーブルレベルで実施される
- Apache SparkのEMRユーザーについては、Active Directory(AD)認証も可能に
監査ログの実装
- CloudTrailで監査ログを有効化する事でアクセスを監視し、定義されたポリシーに準拠してるかを確認可能に
- データレイク内のデータを読み取る分析及び機械学習サービスでアクセス履歴を監査
データへのセルフサービスアクセスを簡単・安全に実行
データレイク上での分析を行う上でのポイントとなる「セルフサービスアクセス」についても、ユーザが使いやすい形で様々な機能が提供される模様です。
メタデータにラベル付け
- テーブルプロパティにカスタム属性としてフィールドを追加し、データ所有者を指定可能に
- 適切なユースケースを指定、Lake Formationでセキュリティ及びアクセスコントロールを実施してデータの機密性を高める事が出来る
セルフサービスアクセスの有効化
- 様々な分析ユースケースにおいてユーザーにデータレイクへのセルフサービスアクセスを提供するために、データセットに対するリクエストやアクセスの制御が容易に行えるようになっている
- データカタログで定義されたテーブルに対するアクセス許可を指定・付与・剥奪が可能に
- 複数のアカウントやグループ、サービスで同じデータカタログを共有する事も可能に
分析のための関連データ探索
- データカタログに記録されたデータセットに対し、オンラインでテキストベースの検索、フィルタリングが可能に
- 定義したカスタムラベルで関連データを検索
より多くのインサイトを得るために分析手法を組み合わせる
- Lake Formationを使う事で、分析ユーザーはAthena, Redshift, Apache Sparkなどのデータセットをダイレクトに照会可能に
- Lake Formationにこれらのサービスをポイントすることで、利用可能なデータセットがカタログに表示され、一貫したアクセスコントロールを持った形で分析手法をユーザーが簡単に結合出来るようになる
まとめ
という訳で、AWS Lake Formationの機能群について、その内容をざっとではありますが確認してみました。列挙された特徴や機能群を良い感じで実現するには文字通り「数ヶ月レベル」の期間が必要となることでしょう。そんな環境が「数日で」構築・利用出来るようになるというのは非常に魅力的に映ります。早く実際に触ってみたいものですね。