« AWS Black Belt Online Seminar「AWS CloudFormation」「AWS reInvent 2016 で発表された新サービス・新機能の紹介 パート 1」資料およびQA公開 | メイン | Amazon Redshift テーブル設計詳細ガイド:Part 2 分散スタイルと分散キー »

AWS上のデータレイクソリューション入門

Nick CorbettはAWS Professional Servicesのシニアコンサルタントです。

私たちのお客さまの多くが、AWS上でデータレイクを構築しています。それは大量の多様なデータを扱うときに、柔軟性があり従量課金制のクラウドモデルが理想的なためです。お客さま自身でデータレイクを構築する場合がある一方で、さまざまなパートナー製品を活用して構築されるお客さまも数多くいらっしゃいます。

私たちは今日、お客さまがAWS上でデータレイクを構築するための新たな選択肢として、データレイクソリューションをご紹介します。ソリューションはAWS CloudFormationスクリプトとして提供いたしますので、そのままお使いいただくことだけでなく、お客さま独自のデータ管理・検索・処理の必要性に応じて、リファレンス実装としてお使いになることもできます。

このエントリーではソリューションの紹介をするとともに、なぜAWS上のデータレイクが分析における柔軟性と素早さを増すのかについてご説明します。

O_datalake_1

データレイク概要

データレイクの背後にあるコンセプトは、すべてのデータを生のフォーマットで安全に貯めておき、利用する際にスキーマを付与するというシンプルなものです。データマートが「ろ過・パッケージングされ簡単に消費できる状態になった、ボトル入りミネラルウォーターのケース」に例えられるのに対して、データレイクは「大量の生水」と表現されたりもします。

データレイクは未来の不確実性に対してベットすることだ、といいかえることができます。どのような分析を行いたいかを、分析する前に完璧に把握することはできません。よって、どのような要望がでてきたとしても対処できるようにするために、すべてのデータを貯めておく必要がありますよね?

もしデータレイクについてすでにご存知であれば、「データスワンプ(データの沼地)」という言葉が頭に思い浮かぶでしょう。自分たちのデータレイクが、管理されていない意味不明なデータで満ちているという状態を指します。データレイクがデータスワンプになってしまうことを防ぐのは、不可能に思えるかもしれません。どうやって自分たちの会社で生じるすべてのデータを収集し、管理しつづけることができるでしょうか? どうすればデータレイクを綺麗なままに保つことができるでしょうか?

Amazonでは、プロダクトやサービスを開発する際に working backwardsというアプローチを使います。まずお客さまが何を望んでいるかから始め、その要望を満たす最小限のプロダクトができてから表に出す、というものです。このアプローチは、データスワンプではなくデータレイクを構築するための、ひとつの手段になります。

あなたがデータレイクの構築をおこなう際の顧客は、データを使ったり分析をおこなったりする、社内のビジネスユーザになります。ユーザがもっとも重要視するものは、素早さとイノベーションです。データレイクにデータが貯まっているならば、顧客が新しいプロジェクトを始めたときにすぐデータを活用することができます。

データレイクが成熟してきたら、レポーティングシステムやエンタープライズデータウェアハウスと呼べるような、多様なデータマートを提供できるようになるでしょう。特定のビジネスシステムのためのソースとしてデータレイクを用いるのは、すばらしいやり方のように思えるかもしれません。しかしそれだけが目的ならば、そもそもデータレイクは必要ないでしょう。

既存システムに適用するのであれ、新しいシステムを構築するのであれ、なにがしかの変化をもたらすプロジェクトが立ち上がったときにこそ、データレイクは真価を発揮します。そういったプロジェクトは、データレイクがほかの手段より優れていることを示す機会にもなりますが、その一方で可能な限り素早く使えることが求められもします。データレイクの利用者が要求するのは素早さです。彼らはプロジェクトの成否を、素早く安価に判断したいと考えているのです。

AWSのデータレイクソリューションは、データに加えてメタデータも管理することで、これらの課題を解決するようにデザインされています。メタデータを用いることで、蓄積しているデータについて豊富な説明を付与することができます。データレイクは生データを蓄積するため、データの質は必ずしも十分ではありません(もしデータの質を改善していくのであれば、もはや生データを保管していないことになります)。とはいえデータの発生源やつながり、欠陥などを把握するためにメタデータを使うことによって、ユーザが自身のプロジェクトに必要なデータを素早く見つけられるような、管理されたデータレイクを提供できるでしょう。

 

データレイクのコンセプト

データレイクソリューションのメインコンセプトは、パッケージです。つまり、複数のファイルを格納できるコンテナということです。さらに後から探しやすくするために、パッケージにメタデータという形でタグをつけることもできます。

O_datalake_2

ここでは例として,広大なネットワークの先にある気象観測所から、保存したいデータが送られてくる場合を考えます。各観測所は、5分おきに測定されるセンサデータを含んだ、複数のファイルを送信します。この場合、観測所が送ってくるデータごとにパッケージを作成します。パッケージにはすべてのセンサデータが含まれるとともに、観測所の場所、センサデータが測定された日時といったメタデータが付与されます。すべてのパッケージにメタデータを付ける形で、データレイクソリューションを構成することも可能です。メタデータのおかげで、データレイクの視認性を保ち続けることができます。

 

データレイクの導入と設定

インストールガイドに従ってCloudFormationスクリプトを実行することで、自分のAWSアカウントにデータレイクを構築することができます。構築されるサーバサイドアーキテクチャの構成図は、以下のようになります。

O_datalake_3

このアーキテクチャはサーバレスですので、Amazon EC2インスタンスを管理する必要はありません。すべてのデータはAWSのマネージドサービスに保存され、データ処理はAWS Lambdaにより実装されたマイクロサービスレイヤーで行われます。

データレイクソリューションをインストールする際に、ご自身の名前と電子メールアドレスを、CloudFormationスクリプトに引き渡す必要があります。インストールの最中に、AWS Cognitoユーザプールが作成されます。先ほどの情報がユーザプールに登録されることにより、アクティベーションメールが送られてきます。メールの中には、データレイクWebコンソールへのリンクが含まれています。データレイクのコンソールは、CloudFormationのテンプレートによりインストールされるもので、Amazon S3バケットにホストされた静的ウェブサイトになります。

管理者としてデータレイクのコンソールにログインしたら、まずパッケージについてガバナンスの設定を行います。左ペインのSettingsをクリックしてGovernanceタブを選択することで、すべての新しいパッケージに適用させる、最小限のメタデータタグを設定することができます。

下に示したダイアログでは、気象データの例で用いる設定を確認することができます。すべてのパッケージには場所、リージョン、日付、時刻がタグ付けされます。新しいパッケージを作成した際には、追加で別のメタデータを付与することができます。さらにルールの一貫性を示すために、常に存在するわけではないメタデータについては、オプショナルなタグとして設定することができます。

O_datalake_4

管理者は組織内のほかの人たち向けに、追加のデータレイクアカウントを作成することができます。左ペインのUsersをクリックして、追加の管理者またはユーザアカウントを作成します。ユーザアカウントはガバナンスの設定を変更したり、ほかのユーザアカウントを作成したりすることはできません。

データレイクの設定を終えることで、最初のパッケージを作成する準備ができました。左ペインのCreate a Packageをクリックして、表示されるフィールドを埋めることでパッケージ作成を行います。

O_datalake_5

先ほどガバナンス設定で指定したメタデータタグが、パッケージを作成する際に必須項目となっているのが確認できます。パッケージを作成したら、ファイルを追加していきます。ローカルマシンにあるファイルをアップロードするか、すでにS3に保存されているデータへのリンクを貼ることができます。

O_datalake_6

現実問題として、山ほどのパッケージを作成する場合には、コンソール上で逐一作業を行いたくはないでしょう。その代わりデータレイクのコマンドラインニンタフェース(CLI)を利用するか、Amazon API Gateway上に構築されたREST APIを直接叩くことで、パッケージを作成することができます。

 

データの保存

パッケージを作成すると、データはS3に、メタデータはAmazon Dynamo DBAmazon Elasticsearch Service (Amazon ES)に保存されます。S3にデータを保存することには多くの利点があります。どのようなフォーマットであっても安全にデータを保存することができます。S3は冗長性があり非常にスケーラブルで、実際に使ったストレージ分の料金だけを支払えばよいサービスです。S3にデータを保持することで、ほかのサービスとの連携ができるようになります。S3上のデータをAmazon EMRクラスターで処理したり、Amazon RedshiftにロードしてAmazon QuickSight経由で可視化したり、Amazon Machine Learningを使って機械学習のモデルを構築したりすることができます。

さまざまなツールとS3の連携は、アジャイルな分析環境の構築においてキーとなってきます。S3連携を活用することで、プロジェクトが立ちあがったときに、もっとも直近の業務遂行に役立ち、ビジネスユーザのスキルにマッチしたシステムに対して、データを用意することができます。例えばSQLのスキルを持ったユーザは、データをAmazon RedshiftかAmazon Auroraにロードすることを望むでしょう。またデータサイエンティストであれば、Rを使ってデータ分析をしたいと思うでしょう。

 

データの処理

ストレージとコンピューティングの分離も、データレイクのコスト削減に役立ちます。データ分析を実際に行うまでは、S3に保存したデータの料金を支払うだけでよいのです。このモデルによって、個々のプロジェクトにどの程度コストがかかっているかを把握しやすくもなります。適切にタグ付けがされていさえすれば、各分析プロジェクトが使ったインフラをもとにして、かかったコストを割り当てることができます。ひいてはどのプロジェクトが、組織に対してもっとも価値を生み出しているかを判定できるでしょう。

データレイクはメタデータをDynamo DBとAmazon ESの両方に格納します。Dynao DBは記録のためのシステムとして使用されます。メタデータに対するすべての変更が保存されるため、パッケージがどのように変更されたかについて、長期間にわたる完全な監査証跡を得ることができます。コンソール上でパッケージの中にあるHistory ビューを選択すれば、実際に確認することができます。

O_datalake_7

最新バージョンのパッケージメタデータもまたAmazon ESに書きこまれるため、Amazon ESでメタデータタグを検索することにより、素早く必要なデータをみつけることができます。例えば2016年11月11日に、アメリカ中西部の気象観測所で作られたパッケージをすべて取得したいのであれば、以下のように打ち込んで検索します。

O_datalake_8

目的のパッケージを見つけたら、ショッピングサイトみたいに、カートに入れることができます。左ペインのCartを選択すると、中身を確認することができます。

O_datalake_9

カートの中身に問題がなければ、続いてパッケージ内のデータにアクセスするために、Generate Manifestボタンをクリックします。これにより、各オブジェクトが保存されているS3バケットとキーか、署名済みURLを含んだマニフェストファイルが作成されます。署名済みURLから、データのコピーをダウンロードすることができます。

ただし、コピーを作成するのが常に最善のやり方とは限りません。別の方法としてバケットとキーを指定し、S3にデータの有無を問い合わせることもできます。このときに大事な点として、S3の当該オブジェクトを取得するためには、オブジェクトへのアクセス権を持ったIAMユーザまたはロールが必要ということがあります。パッケージの作成処理と同様に、パッケージ検索、結果のカートへの追加、マニフェストファイルの作成といった作業はCLIやAPI経由で行えるため、レイクからのデータ取得処理は完全に自動化することができます。

 

サマリー

データレイクを成功に導くためには、上手にバランスを取る必要があります。データレイクによりデータが利用しやすくなり、組織的における巨大なデータアーカイブを構築することができますが、その一方でデータが管理された状態を保ち続けなければいけません。つきつめると、あなたの顧客であるビジネスユーザが必要なデータを素早く集めることができ、それによってプロジェクトの費用対効果を最大化できるようにするために、データレイクは存在するのです。

データとメタデータをどちらも取り扱うことで、AWS上のデータレイクソリューションではデータの中身を管理することができるようになります。Amazon S3を使うことで、安全に冗長性を保ちながら、低コストでデータを保存することができます。S3はAWSのそのほかの膨大なサービス群や、サードパーティーツールと連携可能なため、データレイクの顧客はタスクに応じて適切なツールを選択することができます。

データレイクソリューションは今日からでもお使いになることができます。私たちはこのソリューションへのフィードバックをお待ちしていますので、下のコメント欄に記入するか、AWSソリューションフォーラムをみていただきディスカッションにご参加ください。

著者について

Corbett

Nick Corbett は AWS Professional Services のシニアコンサルタントです。彼はビッグデータに関してリーダーシップを発揮して、お客さまがAWSを使って価値を生み出すまでの時間を短縮する手助けをしています。休みの日はユルゲン・クロップ監督を応援しています。

(翻訳: SA志村,原文: Introducing the Data Lake Solution on AWS)

コメント

Twitter, Facebook

このブログの最新情報はTwitterFacebookでもお知らせしています。お気軽にフォローください。

2018年4 月

1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30