ちょっと話題の記事

安全なデータレイクの構築が容易になる AWS Lake Formation がついにリリースされました

2019.08.09

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

昨年のre:Invent2018で紹介されたAWS Lake Formation がついにリリースされました。東京リージョンでもリリースされましたので、早速、試してみたいと思います。

Jeff Barさんよりも、大薗さんの方が情報早かったw

AWS Lake Formation とは

AWS Lake Formation は、データソースとターゲットのS3とターゲットのデータベースを指定すると、データレイクに最適化したデータファイルに変換して、データベース上のテーブルとしてクエリができる状態にするサービスです。データの変換や重複排除などを自動的に行う機能を備え、データベース・テーブル・カラムレベルでのアクセスコントロールやアクセス状況を把握できます。AWS Lake Formation は、裏側で、AWS Glue のクローラやジョブを自動生成、実行して、これらの機能を実現しています。

サービスの概要については、以下のグログをご覧ください。

[新サービス] 安全なデータレイクを簡単に設定できる!AWS Lake Formation が発表されました! #reinvent

ANT396 : [NEW LAUNCH!] AWS Lake Formation の紹介 – セキュアなデータレイクを構築する #reinvent

AWS Lake Formation を試してみました!

AWS Lake Formation の Blueprintを使って、Cloudtrailのログからデータベース上のテーブルとしてクエリができる状態にする手順を解説します。

AWS Lake Formation の設定できる権限のIAMユーザー/IAMロール付与

初めてマネジメントコンソールからAWS Lake Formationの画面にアクセスすると、AWS Lake Formation の設定できる権限の付与を促すダイアログが表示されます。

この権限の付与は、左の[Permissions]-[Admins and database creators]を選択して、Data lake administratorsの[Grant]ボタンを押すと以下のダイアログは表示されます。なお、AWSの管理者権限があるユーザーで登録します。

AWS Lake Formationが実行するためのIAMロールに権限を付与する

Lake Formation関連の権限を付与してみました権限エラーとなったため、今回は最終的にAdministratorAccessを付与としました。下記の設定は推奨設定ではありません。

BlueprintでWorkflowを作成する

Blueprintの AWS CloudTrail

AWS CloudTrailのBlueprintを選択して、以下の設定項目を埋めていきます。Import SourceはDefault、取り込み開始日を指定します。

Target database に事前にAWS Glueで作成したcm-lakeformationデータベース、Target storage location に変換後のファイルを出力するS3パスs3://cm-lakeformation-vgを指定します。Data formatは、カラムナファイルフォーマットであるParquetを指定します。

IAM roleは、AWS Lake Formationが実行するための権限を付与したIAMロールを指定します。最後に[Create]を押すと登録されます。

Workflowの実行

登録すると、以下のメッセージが表示されます。Start it now?リンクを押して実行を開始します。

WorkflowのStateは、RUNNING => Discovering => Importing の順に推移します。(Completedではない)

最初は、RUNNINGです。内部的にはGlueのクローラやジョブが自動生成するまでです。

Discoveryは、Glueのクローラが指定したデータファイルの推測して、データソースをGlueデータカタログに登録します。

Importingは、Glueのジョブが指定したデータファイルの変換して、データtargetをGlueデータカタログに登録してクエリできる状態になります。Completedにならないなと思っていたら、すでにクエリできる状態になっていました。

なお、上記のWorkflowのStateは、[View graph]ボタンもしくは、Run ID のクリックするとGlueのジョブの実行状態を参照できます。

クリックすると、以下のGlueのジョブの状態と Workflowを参照できます。GlueのWorkflowを見ただけで、現在の実行状態を視覚的に把握できて大変便利です。

Amazon Athenaからテーブルの結果を確認

cm_lakeformationデータベースの下に2つのテーブルが作成されています。_cloudtrail_logs_cloudtrailは、データソースとなるテーブルです。cloudtrail_logs_cloudtrailは、データターゲットつまり変換後のファイルを参照しているテーブルとなります。

まとめ

AWS Lake Formation を用いることで、非常に簡単にデータレイクが構築できることがご理解いただけたと思います。どこまでご紹介するか迷いましたが、今回は素早く簡単であるということにフォーカスして解説しました。AWS Lake Formationは、Glueのスクリプト開発やS3ファイルの煩雑な作業を自動化し、その他にもきめ細かいアクセス制御やMLを用いた重複排除など優れた機能を持ち合わせています。今後も個々の機能についてご紹介します。

合わせて読みたい

AWS Lake Formationを構成する機能群について #reinvent

AWS Glue ETLワークロードをGUIでオーケストレーションする『Workflows』を実際に試してみました