これだけは知っておきたい、AWSでデータ分析を実現する方法

高まるデータ分析の重要性とそれを支えるAWS

データ駆動型経営の時代

昨今、データドリブンビジネス、ないしはデータ駆動型経営という言葉が語られるようになって久しい時代です。インターネット、そしてスマートフォンの発達に後押しされたソーシャルネットワークの高度な発展により、多くのユーザーはより自由にそしてより気軽に意見を発信できるようになっています。

これにより、企業が関与しないところで様々なサービスや商品が評価され続け、SNSに投稿されたその評価は暗黙的に別のユーザーの購買行動に影響を与え続けています。またそれと同時に、公的な人格、私的な人格等、複数人格をユーザーが使い分けた際の可視化も可能となり、ユーザーの購買行動は細分化を続ける一方です。

このような背景を踏まえて企業のマーケティング活動は、従来の作りこんだ販売戦略型から、オーガニックグロースと言われるユーザーがユーザーを呼び込む行為を促進させる方向へシフトしつつあります。このために必要なのは正しい現状把握です。複雑になる一方の世界を正しく把握するためにはデータと向き合う以外ありません。これこそが、データ駆動型経営が重視されるその背景なのです。

2006年3月に誕生したクラウドコンピューティングサービス、Amazon Web Services(AWS)は現在200を超えるサービスを提供しています。その中にはデータ分析、可視化、機械学習等データ駆動型経営を行うのに必要なツールが一式そろっています。それらを特定テクノロジースタック毎に解説することを目的として本連載を執筆していきます。第1回のこの記事では、サービスの全体像を理解するためのコンセプトの整理やサービスの概要紹介を行います。

データレイクの構築

AWSのデータ分析基盤において最も重要と言えるのがデータレイクの構築です。

データというのは1つ1つは小さいものですが、すぐ積み重なり、しかも減ることがないため意外とコストが重たくなります。またデータの分析を行うために、分析基盤であるデータウェアハウスや機械学習基盤などに保存されます。いくらクラウドを用いたところでこれらの基盤は総じて高価であり、データの肥大化とともにパフォーマンスが課題となり、時間とともに必要となるスペックも肥大化していきます。分析基盤へデータを投入する際には後から分析しやすくするために、データを加工整形することで一部のデータが切り捨てられるケースもあります。しかし、進化し続けるデータ分析手法を考慮した際に、切り捨てたデータが将来的に意味をもたらす可能性も否定できません。

データレイクはこれらの問題を解決します。AWSは2006年3月にリリースされていますが、最初に一般提供が開始されたサービスはAmazon S3というオブジェクトストレージです。イレブン9のデータ堅牢性を持ち、3つ以上のデータセンター群にデータを分散して保存します。コストもAWSが提供するストレージサービス群の中では最も安い部類にはいります。

まずはすべてのデータをオリジナルのフォーマットのままS3に保存します。その後、必要に応じデータを取り出し、より高価なデータ分析基盤に投入します。その高価な基盤が必要なくなれば、その場で利用を停止し課金を止めることができます。データレイクにオリジナルデータが残っていればいつでもデータ分析基盤を復元できる、といった算段を取れるわけです。

このデータレイクの考え方に基づき、AWSのデータ分析関連サービスはすべてがS3と連携するように設計されています。その代表格は次のようなサービスです。

  • データウェアハウスサービスのAmazon Redshift
  • インタラクティブにクエリを直接S3へ発行可能なAmazon Athena
  • 必要に応じてデータの整形(ETL)を行うAWS Glue

この連載記事では次回以降、これらのサービスについて解説していきます。

データの民主化

データレイク構想と連携し、データ駆動型経営の実現に必要となるのが複数視点、複数事業間でのセキュアなデータ共有を実現させることです。つまりデータの民主化です。ビジネスにおいてデータ分析が重要となるにつれて、様々な多角的な視点による分析が必要となります。ここでは2つの例を提示します。

デジタルマーケティング戦略の立案

SNSを有効活用したいと仮定します。一般的には中高年にはFacebook、Twitterが有効に機能し、若年層にはInstagram、TikTok等がリーチが高いと言われています。この細分化を続けるユーザーを正しく分析するためには、複数視点での分析を掛け合わせることが有効となります。しかし、単一のチームでその複数視点の実現させるためのリソースが充足されているケースは多くありません。この場合、一時的に他部署のリソースなどを有効活用しデータ分析を行うことで、新しい知見を得られる可能性が高いと言えるでしょう。

機械学習による分析

さらに企業が複数事業を営んでいる場合、これらの個別に存在しているデータを掛け合わせることで、今まで把握できていなかった新しいユーザーの購買行動が見えてくる可能性もあります。このようなことを考慮した場合、いかにデータを効率よく共有していくかが、データ分析の成功確率を高めることになります。しかしながら問題となるのはセキュリティです。時として分析対象データはユーザーの情報、ないしはユーザーを特定しうる一意性の高い情報を含みます。

AWSではこの問題を解決するために、データレイクと連携しデータ共有時に高いセキュリティを実装し、なおかつ権限の一元管理を実現させるAWS LakeFormationというサービスを提供しています。このサービスを用いることで、データレイクに保存されたデータをコピーすることなしに、複数の異なる権限を単一データソースに付与できます。これによりデータの民主化を実現させることが可能となるわけです。このLake Formationについても本連載で触れる予定です。

ストリームデータとは?

AWSのデータ分析系基盤に関する資料やドキュメントを眺めていると「ストリームデータ」という言葉が時折出てくるため、混乱される方がいるかもしれません。ストリームと言えば、動画や映像などのデータをイメージしていまいがちです。AWSが言うストリーㇺデータとは、雑多な環境から連続的に送出される一連のデータのことを言います。例えばとあるアプリケーションが出力し続けるログであったり、ウェブサイトにおけるユーザーの行動(どのリンクをクリックした等)などがデータとして流れてきます。後者は「クリックストリーム」と言われる時もあります。

これらの情報はリアルタイム性が高くユーザーの行動などを写し取っており、データ価値が高い反面、売り上げデータなど異なりかなり流動性が高くなっています。またデータ量が多く、24時間データを収集し続けないといけないません。そのため、データ収集基盤の構築が必須となることも特徴の一つです。汎用性の高いLinuxOSを起動しデータ収集アプリケーションを構築することも可能ですが、その場合OSへのパッチ適応や機能をつかさどるミドルウェアのバージョンアップ、障害を考慮した基盤の2重化、障害時においてはデータをロストすることなくシステムが待機系に切り替わる仕組みなど、考えるべきことは山積みです。

AWSではストリームデータを収取する専用の次の基盤も提供しています。これらをうまく活用することで、リアルタイム性の高い貴重なデータを安定して収集し、エンジニアの皆さんはデータ解析にその労力をフォーカスさせることが可能です。

  • Amazon Kinesis
  • Amazon MSK (Managed Service for Apache Kafka)

前者がAWSネイティブなものでありアプリケーションをAWSで動かすのであれば高い親和性を持ちます。一方後者は非AWS環境でよく用いられるApache KafkaをAWSが基盤のメインテナンスが不要となるようにサービス化したものです。⁠エンジニアの皆さんに多くの選択肢を提供し、使いやすい方を使えるようにする」というのはAWSのサービス開発における重要なポリシーなのです(現在、AWSのサービスは200を超えています⁠⁠。

またAWSが提供しているデータベースサービスも、データ変更(更新や追加)があったタイミングでストリーㇺデータを発生させプログラムのリアルタム起動を促す機能などがついてます。主なデータベースとして、次のものがその代表格です。

  • NoSQLのAmazon DynamoDB
  • リレーショナルデータベース (MySQL or PostgreSQL互換) の Amazon Aurora

この機能により、リアルタム性の高い重要なイベント(ユーザーの新規登録や何かの購入)などに関するレコードがDBに対して発行されたイベントをストリームデータとして出力し、後続の処理につなげることができます。これにより従来バッチ処理を行っていたものをイベントドリブン型準リアルタイム処理に切り替え、よりユーザーが望む機能を実装していくことができます。

機械学習基盤との連携

冒頭でも少し触れましたが、データ分析と機械学習基盤は、⁠大量の蓄積されたデータから有益なパターンを見出し考察を得る」というプロセスにおいて全く同じ背景を持ちます。このため、ここ数年この2つの技術領域は急速に融合をしているのが現実です。当該プロセスを経て得られた考察をさらに汎用化し自動化したものがAIと言われます。

AWSでは大きく2種類の機械学習サービスを提供しています。一つが機械学習基盤のサービス、もう一つがAIのサービスです。

機械学習基盤のサービスではデータサイエンティスト向けに、モデルと言われるAIの卵を生成するための様々な機能が備わっています。一般的な機械学習基盤はTensorFlowやMXNetなどのフレームワークを用いますが、AWSのAmazon SageMakerという機械学習サービスを利用すると、これらの主要フレームワークがインストール済の環境が起動できます。これにより、エンジニアの皆さんはデータとの格闘に集中できます。また、大量のデータをもとに学習を行う際、時には複数台の専用マシンを起動する必要がありますが、これらのマシンは学習が終わったのちは不要です。SageMakerでは必要な時に必要な分だけマシンを起動し、学習が終わりモデルが生成されたのちはそのモデルに対してAPIを作成し、学習に使用した高価なマシンを停止させ課金を自動で止める機能などもついています。

ノーコードでcsvデータに対して機械学習を実現可能なSageMaker Canvasという機能もリリースされています。さらにSageMaker AutoPilotという機能は、RedshiftやAthena等SQLベースの分析系サービスから直接呼び出すことができ、構造化データに対する機械学習のモデル作成や推論処理がSQLのみで実現可能となっています。

一方AIサービスは事前のデータ準備や機械学習の知識不要でいつでも利用可能なAPIサービス群です。画像や動画認識、自然言語解析処理、等多くの機能が提供されています。このサービス群の特徴はAWSが学習済のものを提供しますので、だれでもすぐ同じAIを実装できることです。

皆さんが保有しているデータが業界的にもユニーク性等の高い価値を保有しているならば、SageMakerを用いて自前のモデル開発に挑戦することをお勧めします。一方そこに高い付加価値はなくあくまでユーザーインターフェースをさらにいいものにすることに注力するのであればAIサービス群をまずは検討していただく流れになります。

次回に続く

次回以降は弊社ソリューションアーキテクトが各テクノロジー領域や各サービスのテクニカルな細かい説明となります。ぜひ皆さん、本連載を楽しんでいただければ幸いです。

おすすめ記事

記事・ニュース一覧