COLUMN誰でもわかる!お役立ちコラム

AWS活用支援コラム

AWSでデータレイクを構築するには?

データレイクとは何か?

データレイクとは、企業活動で生じる様々なビッグデータを生データのまま格納できるストレージのことです。データ分析においては、様々なデータを組み合わせることで様々な洞察を得ることができるため、データをためておくことは将来思わぬ価値を生む可能性があります。

したがって、データレイクには保存の目的がまだ明確ではなく、「あとで使うかもしれないからとっておこう」というような動機でデータが保存される場合も少なくありません。本記事では、データレイクの必要性や、どのように構築をしていくかについて、記載していきます。

データの種類とは?

データレイクについて解説する前に、データについて触れておきましょう。データには、『構造化データ』と『非構造化データ』の2種類があります。それぞれどのような特徴なのか、解説します。

  • 構造化データとは
    構造化データとは、エクセルのように「列」「行」があり、それぞれ関係性を持っているデータのことです。例えば、駅などで記載されている時刻表を思い浮かべてみて下さい。時刻に応じて、どんな電車が何時に何本来るかが、「列」または「行」で記載されていると思います。このように、列または行に関係性があり、「どこに何があるか」が決められているデータのことを、構造化データといいます。関係性が事前に定義されているため、特殊なツールを使わなくても、簡単に分析が行えるのが特徴です。
  • 非構造化データとは
    非構造化データとは、構造化データ以外のすべてのデータを指します。具体的にはパワーポイントやワードで作った書類、画像や音楽データなど、日々の業務や生活で作成された雑多なファイルのような、それぞれのデータ間に関係性がない(または、関係性が極端に薄い)データのことを指します。世の中のデータの大半は非構造化データであるため、非構造化データの容量は非常に大きなものになります。

そもそもデータを活用するためには?

企業としてデータを活用するためには、コンピュータで扱える形式でためておく必要があります。例えば、書類などのアナログなデータは、PDFファイルにデジタル化しておく、音楽などは録音して符号データとして保存しておく、といった形です。データを活用するために、とりあえずデータをためておく場所がデータレイクです。

そのため、データレイクには、データをためる機能と、取り出しを行う機能が必要です。また、蓄積するデータの大半は非構造化データであるため、保存できる容量が巨大である必要があります。数百ペタバイトにおよぶデータ量に達することもあるため、それに耐えうるストレージが必要になります。

加えて、保存しているデータがいざというときに欠損しているなどということが無いように、データの耐久性を保証する仕組みも必要になります。データの耐久性や大容量を保存するストレージをオンプレミス上に構築することは現実的ではなありません。したがって、データレイクの構築にはAWSなどのパブリッククラウドで利用できるストレージサービスを利用するといいでしょう。

高速、低コストで実現するスタイルズのAWSによるBI・DWH・データレイク構築サービスはこちら→

データウェアハウス、データマートの違いとは

データ分析を行うためにデータをためておく場所としては、主に下記の3つがあります。

  • データウェアハウス
  • データマート
  • データレイク

データマートとデータウェアハウスは、データレイクとどのような違いがあるのでしょうか。

データウェアハウスとの違い

データレイクとデータウェアハウスは、目的が大きく異なっています。データレイクは保存が主な目的になっており、データウェアハウスは分析が主な目的となっています。データウェアハウスは、データをすぐに取り出して分析できるように、整理し、保存しておく場所のことです。そのため、保存されるデータは主に構造化データや、JSONなどの一定の形式に従ったデータ(半構造化データ)になっています。

データマートとの違い

データマートはデータウェアハウスと同様にデータ分析を目的としたデータの補完形式です。したがって、データ保管を目的としたデータレイクとは目的が異なっています。データマートは、分析を目的とするために、データウェアハウス上のデータを細分化したものと考えるといいでしょう。

AWSでデータレイクを構成する

AWSでデータレイクを構成するには、先述の通りS3を利用すればOKです。Amazon Simple Storage Service (S3) は、構造化データと非構造化データ向けの最大級かつ最もパフォーマンスに優れたオブジェクトストレージサービスであり、データレイクの構築に最適のストレージサービスです。Amazon S3 を使用すると、99.999999999% の耐久性でデータを保護する安全な環境で、あらゆるサイズのデータレイクを安価に構築でき、更に大容量にスケールすることができます。ただし、ただ単にS3バケットを構築するだけでは運用フェーズにおいて苦労をすることになります。S3に加えて以下の2点について考慮が必要になります。

  • メタデータの設定
  • セキュリティの設定

どのように設定をしていけばいいのか、具体的に見ていきましょう。

メタデータの設定

メタデータとは、『保存しているデータの説明書』と考えるといいでしょう。様々なデータ形式を保管することがデータレイクの役割となりますが、ただ保管出来れば良いわけではなく、保存されているデータがどのようなデータなのか、どこに何が保管されているのかを管理しておく必要があります。

そのためにはメタデータの設定が必要です。S3のタグ機能でメタデータを設定することが可能ですが、保存するデータがより大容量かつ、多種多様になった場合には、データの構造(列や型など)やアクセス方法を定義し検索可能にする「データカタログ」の用意も必要です。データカタログの作成にはAWS Glueを活用します。AWS Glueには、クローラと呼ばれる機能があり、自動でファイルやデータ形式を識別して、データカタログを作成・更新することができます。

AWS Glue はデータストア間でデータ連携する際に取り出し(Extract)、変換(Transform)、ロード(Load)を行うETLのジョブを分散実行可能なサーバーレスのサービスであり、AWS Glueを有効活用することで、データレイク構築の工数を大幅に削減することができます。

セキュリティの設定

データレイクに格納されたデータには、個人情報や機密情報など、漏洩させてはいけないデータが格納される可能性もあります。そのようなデータの漏洩を防ぐためには、監査のために操作ログを保存するCloudTrailを有効化したり、AWS Key Management Service(AWS KMS)などでデータの暗号化を行う必要があります。

加えて、AWSの認証認可のサービスであるIAMをきめ細やかに設定することで、必要なデータを最小限のメンバーのみに絞って見せる必要があります。ただし、データレイクは多種多様なデータが格納されるため、いちいちフォルダやオブジェクトごとに権限を設定するのは非常に工数がかかります。そういう場合は、データレイクの権限管理に特化したAWS Lake Formationを利用するといいでしょう。AWS Lake Formationについて、どのような機能を持っているサービスなのかは、以下に記載します。

高速、低コストで実現するスタイルズのAWSによるBI・DWH・データレイク構築サービスはこちら→

AWS Lake Formationの活用

AWS Lake FormationはAWSでデータレイクを構築・運用するためのサービスです。AWS Glueの拡張のようなものでAWSでデータレイクを構築・運用するためのマネージドサービスで、安全なデータレイクを数日でセットアップ出来るのが特徴になります。データの移動や保管、クリーニング処理を素早く行うことが出来ます。実体はAWSの各種サービスをラップしたものになります。具体的には、下記の機能が存在します。

  • データレイク構築機能
    AWS Lake Formationを利用することにより、データの「移動」「保存」「消去」「メタデータ作成(カタログ化)」を簡単に構築し、データレイクとして機能する環境を簡単に構築することが可能になります。具体的には「ブループリント」と呼ばれる機能を利用することで、データを取り込むためのフォーマットのようなものを作成することが可能です。
  • セキュリティ設定・管理機能
    AWS Lake Formationを使用することによって、セキュリティ、ガバナンス、監査のポリシーを一元的に一貫して定義・適用できます。例えばCloudTrailに相当する監査ログの保存機能はコンソールによる直近のアクティビティの詳細が確認可能になっています。

    また、IAMで実施する権限管理は、事前に定めたデータカタログに対してSQLのように権限管理を設定することが可能です。データレイクのセキュリティについて、最終的に個別にサービス(IAM、KMS、CloudTrailなど)を組み合わせるか、AWS Lake Formationで管理するかは、要件による判断とはなりますが、将来的にデータレイクの規模が大きくなる見込みであれば、AWS Lake Formationによる管理を行うことで、管理工数を大幅に削減することができます。

S3上のデータレイクを分析するには

S3上に配置されたデータレイクをAWSで分析するには、S3に保存されているデータに直接クエリを実行できるAmazon Redshift Spectrum、Amazon Athena、Amazon EMRなどを利用します。Amazon Redshift Spectrum、Amazon Athenaについては別コラムにまとめていますのでそちらをご覧下さい。

まとめ

データレイクは大規模なデータを経営に生かすために重要なシステムです。一方で、データレイクの構築・運用は非常に地道な作業であり、工数も非常にかかる場合があります。AWS Lake Formationを利用することで効率的なデータレイクの運用が可能になります。ぜひ利用してデータ分析を効率化しましょう。