LoginSignup
40
31

More than 1 year has passed since last update.

データ分析プロジェクトに使用するクラウドサービス完全まとめガイド

Posted at

この記事はNuco Advent Calendar 2022の20日目の記事です

はじめに

データ分析基盤とは?

データ分析を行うにあたってはまずデータ分析基盤の構築が必要です。データ分析基盤とは、データの収集・蓄積・加工・分析という一連の流れを行うための基盤です。膨大な量のデータを効率的かつ効果的に活用することが可能になります。
データ分析は主に以下の4要素から構成されます。

  1. データ収集
  2. データ保存
  3. データ加工
  4. データ分析・活用

データ分析基盤を構成するこれらの4要素について以下の通り解説します。
Untitled.001.jpeg

データの収集

データ分析を行うために、素材となるデータを集めることです。業務システムや顧客データ、ウェブサイト、ハードウェアからのログなど必要に応じて様々なデータ元からの収集が必要です。「生データ」と呼ばれることも多く、収集を行ったとしても、そのまま使用できないケースがままあるので、データを適切に蓄積し、用途に応じて加工する必要があります。

データの保存

多様なデータ元から収集したデータは適切に保存する必要があります。データの保存先を「データレイク」と呼びます。データ元によってはログが一時的にしか発生せず、取得を失念していると二度とログが取れなくなるというケースもあるため、活用したいデータを収集し保存しておくことでデータ分析に備えておくことができます。

  • データレイク
    https://aws.amazon.com/jp/big-data/datalakes-and-analytics/what-is-a-data-lake/
    直訳すると「データの湖」ですがイメージされる通りデータをため込む場所になります。生データを抽出したものを蓄積していったり、加工した結果のデータを毎日保存しておく先にしておけたりと多様な用途があります。

データの加工

データレイクにした生データをそのままデータ分析に使用することは難しい事が多いので、適切な形式へ加工する必要があります。分析しやすい状態に加工したデータを保存する先のことを「データウェアハウス」と呼びます。データウェアハウスに保存されたデータを抽出し、さらに用途に応じて加工したり区別したりということもあります。そういったデータを保管する場所は「データマート」と呼ばれます。データ加工の工程を「ETL」と呼びます。

  • データウェアハウス
    「データの倉庫」です。こちらもデータをため込む場所ですが、データレイクとの違いは、データウェアハウスではデータが目的に沿って定義された形に統合・格納してあり、分析やアプリケーションで利用するための最適な状態となっています。
  • ETL
    必要なデータを取り出したり(Extract)、形を変えたり(Transform)、格納したり(Load)といったことを行うことです。
    具体的な使用例としては、複数のテータ元から抽出したデータを結合して、データウェアハウスへ格納する処理だったり、生データを必要に応じて整えたうえで蓄積・データ分析・機械学習の準備が可能です。
    後述するBIツールに必要なものを作成する際に活用する場面も多く、レポートやダッシュボードの作成などの業務効率化に対応することができます。

データの分析・活用

データウェアハウスなどに保管されているのはただのデータの集合体なので、実際に戦略立案や経営判断に使用するためにはグラフや表にまとめる必要があります。そういったグラフなどを可視化するツールはBIツール(Business Intelligence)と呼ばれます。
また、整理された大量データを機械学習に活用することもできます。

クラウドサービスとは

computer_cloud_system.png

クラウドサービスとは、ソフトウェアや、コンピューティング、データストレージなど様々な機能をインターネットを通じて提供するサービスのことです。従来までPC上のソフトウェアで行っていた処理、大量のデータを物理的なサーバーを置いて保管するといったことが、ネットを通じて行えるようになります。
一定範囲無料で使えるサービスもありますが、大抵は課金が必要になってきます。

クラウドサービスを使用するメリットとデメリット

メリット

  • 低コスト
    物としてサーバー等を用意する必要がありません。安く手早く導入ができます。データセンターやインフラを準備する必要がなく、使用した分だけ支払えば済むようになります。
  • どこからでも使える
    ネット環境とID・パスワードがあればアクセスできるので時間や利用場所を限定しません。
    PCはもちろん、スマホやタブレット端末でも利用できるため、昨今の情勢に合わせたリモートワークも可能になります。
  • 最新機能が使用できる
    機能改善やバージョンのアップデートが逐次行われ、最新のインフラが保てます。特に大手サービスの場合、利用者からのフィードバックによって機能拡張が行われるなどがあり、常に改良されていくサービスを使用することができます。
  • 拡張性が高い
    使っているサービスのスペックを一時的に上げたいというケースが発生することがありますが、容易に対応が可能です。繁忙期などでシステムに負荷が高まるときだけ、高スペックに切り替えることができる拡張性があります。
  • リスク対策
    セキュリティリスク・災害リスクへの対策ができます。クラウドサービスは機密情報などの取り扱いに応じた高度なセキュリティが備わっており、自社で情報管理をするコストやリスクを削減できます。
    災害リスク面では、クラウドサービスはインターネット上でサービスが展開されているので、災害時のサーバー被害などによるデータ消失を防ぐことができます。

デメリット

  • カスタマイズできない
    利用できるのは提供されるサービスの範囲に限られており、個別のケースに応じてカスタマイズすることが難しい場合があります。
  • 悪用危険性
    IDやパスワードの管理方法に問題があると、悪意のある第三者に使用されてしまう可能性があります。
  • 提供先に依存する
    利用しているサービスで障害が発生したり、サービス終了という事態になったときに、こちらからはどうしようもないという状況になり得ます。安定したサービス継続が見込めるサービス提供者を選択する必要があります。

比較

クラウドサービスを提供する企業は数多く存在しますが、市場はAmazonの提供するAWS、MicrosoftのAzure、GoogleのGoogle Cloud Platform(GCP) が3強として地位を確立している状態です。
なので本記事においては上記3提供社からのサービスについて記載していきます。

下記は、データ分析基盤として使用される各社のサービスです。(実際にGoogleが公開している比較表を参考にしています(https://cloud.google.com/free/docs/aws-azure-gcp-service-comparison?hl=ja))

AWS Azure GCP
データ収集 IoT
Amazon Kinesis
Amazon MQ
Azure Stream Analytics Pub/Sub
Dataflow
データ保存
(データレイク)
Amazon S3
AWS Lake Formation
Azure Blob Storage
Data Lake Storage
Azure Data Share
Cloud Strage
データ加工
(ETL)
AWS Glue
AWS Data Pipeline
Lake Formation
Amazon Kinesis Data Firehose
Data Factory
Data Catalog
Azure Stream Analytics
Cloud Dataprep by Trifacta
Dataflow
Cloud Data Fusion
データ加工
(データウェアハウス)
Amazon Redshift Azure Synapse Analytics BigQuery
データ分析・活用
Amazon EMR
Amazon Athena
Amazon Kinesis Data Analytics
HDInsight
DataExplorer
Dataproc
データ分析・活用
(BIツール)
Amazon QuickSight Microsoft Power BI Looker
データ分析・活用
(機械学習)
Amazon SageMaker
Amazon EC2 P3
Azure Machine Learning
Data Science Virtual Machine
Vertex AI
Deep Learning VM Image

データ収集

【AWS】IoT

AWS IoTは、IoTデバイスを他のデバイスやクラウドサービスに接続することができます。複数のIoTデバイスをまとめて管理することで効率的にデータ収集が行なえます。
収集したデータはAWS内のストレージやデータベースへ連携が行えるため、データ分析につなげたり幅広い業務にIoTが活用できるようになります。

【AWS】Amazon Kinesis

動画・音声・アプリケーションやIoTデバイスからのログなどの、ストリーミングデータをリアルタイムで収集、処理できるサービスです。
ストリーミング動画からのキャプチャを処理し、AWSの他サービスへと連携し分析するなどの流れをリアルタイムで完結することができます。
収集したデータによるレポート作成もストリーミング中にリアルタイムで行なえます。

【AWS】Amazon MQ

Amazon MQ は、クラウド内のメッセージブローカーへの移行を容易にするマネージドメッセージブローカーサービスです。
メッセージブローカーとは、メッセージの管理や定義を行いアプリケーションと接続しメッセージを送信する機能です。
Amazon MQ は既存のアプリケーションおよびサービスと連動し、独自のメッセージングシステムを管理、運用、保守する必要はありません。

【Azure】Azure Stream Analytics

Azure Stream Analyticsは大量のストリーミングデータを分析および処理するストリーム処理サービスで、IoTデバイス上のデータを直接処理できるようになります。
複数の機器から出力された、形式が整っていないデータをAzureの他サービス(Azure IoT Hubなど)で取り込み、加工を行い、レポートをリアルタイム出力する、などの仕組みが実装できます。
販売データのリアルタイム分析などに対しても同様の仕組みが実装可能です。

【GCP】Pub/Sub

Googleが提供するメッセージングサービスです。他のサービス、特にGCPのリソースとの間でメッセージ送受信を実現する役割を果たします。データを送る側と受ける側の中間に位置しハブのような機能をもたせることができ、送り手と受け手を分けることで連携構造がシンプルになります。
またPub/Sub自身でメッセージを保存しておくことで堅固なシステム構築とデータの送受信が可能になります。

【GCP】Dataflow

Dataflowはパイプライン処理と呼ばれるデータの読込、前処理、集計、保存といった一連の処理を動作させられるプラットフォームです。
Dataflowを利用することでパイプラインの環境構築や管理に力を割く必要が少なくなります。

データの保存

【AWS】Amazon S3 (Simple Storage Service)

AWSで提供されるストレージサービスです。
従量課金制で、容量やリクエスト数などの使用量に応じて料金が算出されるため、コストを意識した利用ができます。
ストレージクラスを分析する機能があり、保存されたデータの利用頻度などから、より安価なストレージに移動するべきデータなどを確認することができます。一定時間たったら削除するなどの設定も行えるので、膨大なデータを効率よく利用できるようになります。
格納可能なデータの総量とオブジェクトの数に制限はありません。1回のPUTでアップロード可能なオブジェクトの最大サイズは5GBです。100 MBを超えるオブジェクトの場合は、マルチパートアップロード機能を使うことが推奨されています。

【AWS】AWS Lake Formation

Lake Formationは、データの取り込み、整理、カタログ化、変換、保護を容易にし、分析や機械学習に使用できるようにする統合データレイクサービスです。
AWSでのデータレイクの構築、保全、管理が簡単になります。コンソール画面からデータ取り込みジョブの稼働状況やとデータ変換および分析ワークフローをモニタリングすることができます。

【Azure】Azure Blob Storage

Azureのオブジェクトストレージサービスで、テキストや写真、動画などを、大量に格納するために最適化されています。
他ストレージサービスでオブジェクトと呼ばれるものを「BLOB」、バケットを「コンテナー」と呼びます。
扱えるコンテナー数・BLOBデータ数ともに無制限となっています。

【Azure】Data Lake Storage

ビッグデータ分析用のスケーラブルで費用対効果の高いストレージを提供する、安全なクラウドプラットフォームです。
上記のAzure Blob Storageと比べるとよりビッグデータ分析用に特化した機能をもっており、データ解析の際に高いパフォーマンスを発揮します。

【Azure】Azure Data Share

Azure Data Shareはデータ共有サービスで、組織や会社を超えたデータのやりとりを安全行うことができます。共有したデータが常に管理下に置かれるため、どのデータが、いつ、誰によって共有されたかを簡単に管理し、監視することができます。
データを共有する際に起こりがちな「以前に送ったはず」「送ってもらったが、埋もれてしまった」といったリスクの対策ができます。

【GCP】Cloud Storage

ストレージサービスです。保存できるデータ量に制限はなく必要に応じて何度でもデータを取得できます。画像ファイル・動画ファイルなどのサイズが大きいファイルの保存、利用頻度の低いデータのバックアップや、システム間のデータの受け渡し場所としての利用ができます。

データ加工(ETL)

【AWS】AWS Glue

サーバーレスで分析や機械学習、アプリケーション開発に必要なデータを抽出、移動、統合できます。ジョブやトリガーを組み合わせたワークフローが作成できるので、複雑なデータ加工を毎日自動でやってくれるような仕組みがつくれます。

【AWS】AWS Data Pipeline

指定された間隔で、AWSのさまざまなコンピューティングサービスやストレージサービスなどの間でデータ処理やデータ移動を行うことを支援するサービスです。

【AWS】Lake Formation

すでにAWSにあるデータベースからデータを新しいデータレイクにインポートしてくれるサービスです。AWSでデータ加工に使用する他サービス(上記Glue・S3やIAMと呼ばれるアクセス管理サービスなど)の機能を包含しています。
GlueやS3を個別に使用してデータレイクを構築することもできますが、Lake Formationはよりデータレイクの構築と運用に特化したサービスで、独自に権限管理が行えるようになっています。

【AWS】Amazon Kinesis Data Firehose

ストリーミングデータをキャプチャおよび変換し、S3やRedShift、Elasticsearchなどのデータレイク、データストア、および分析サービスに配信する、抽出、変換、ロード (ETL) サービスです。

【Azure】Data Factory

Data Factoryはデータ統合サービスです。データの移動と変換を大規模に制御するワークフローを作成できます。GUI上で視覚的にデータ同士を組み合わせて、コードを書くことなくETLのシステムを簡単に構築できます。(コードを書くこともできます)
その後、統合されたデータを Azure Synapse Analytics に連携して、ビジネスの分析情報を得ることができます。
クラウドのデータ結合だけでなく、オンプレミスとクラウドと併せてデータの統合ができます。

【Azure】Data Catalog

データカタログサービスです。組織で持つデータをカタログ化することで有効活用することができます。

【Azure】Azure Stream Analytics

多様なソースからの1秒あたり数百万件のデータを同時に分析および処理できるサービスです。入力、クエリ、および出力で構成され、入力されたデータをクエリで加工し、レポート画面に表示したり他のサービスへの連携が可能です。

【GCP】Cloud Dataprep by Trifacta

Cloud Dataprepは分析、レポート、機械学習に使用するデータをきれいな形に整えることができるサービスです。コードを書くことを必要とせず、画面操作だけでデータの探索と整形を行うことができます。データ型の違うものや異常値などを自動的に検出することも可能です。

【GCP】Dataflow

DataflowもGCPのETLツールで、コード不要でさまざまなパターンのデータ処理を実現できます。サービスの仕組みや、コスト面から、ストリーミング処理など、流動的なデータを継続的に処理したいというケースでの使用に向いています。

【GCP】Cloud Data Fusion

データパイプラインを迅速に構築し管理するためのデータ統合サービスです。難しいコードを使う必要がなく、GUIで簡単に扱える点が特徴です。
Dataprepよりも接続できるデータソースが多く、コネクタを使用してGCP外のサービス、AWSやAzureと連携が可能です。

データ加工(データウェアハウス)

【AWS】Amazon Redshift

データウェアハウスサービスです。SQLを用いて簡単にデータ取得が行えるほか、コンソール内でクエリを実行したり、SQL クライアントツール、ライブラリ、または QuicksightやJupyter Notebookなどのデータサイエンスツールに接続したりできます。
従来のデータベースとは異なりデータを列で管理しており、データの圧縮率が高いこと、データの処理を複数のノードによって並列処理していることによって高いパフォーマンスを実現しています。
大規模な処理に対しては柔軟にスケールアップやスケールアウトを行う、といったスケーラビリティも確保されています。

【Azure】Azure Synapse Analytics

Synapse AnalyticsはAzureが提供しているデータ分析のための統合プラットフォームです。その一部としてデータウェアハウスの機能も備わっています。
Synapse Analytics自体はデータ分析の一連の流れ(収集・保管・加工・分析)の機能をオールインワンで提供しています。そのため、収集したデータをETLによって処理し、機械学習の「Azure Machine Learning」とBIツールの「Power BI」を連携。データ分析を行うといったことがスムーズに実現できます。
また、他のAzureサービスと緊密に連携し、それらの長所を最大限に発揮できるようになっています。データ容量はペタバイト単位であり、リレーショナルと非リレーショナルの両方の大規模データに対してクエリを発行することができます。

【GCP】BigQuery

GCPにおけるビッグデータの分析処理が行えるサービスです。膨大な量のビッグデータを高速で分析できます。クラウド上の高性能サーバーで膨大な量のクエリを処理できるため、例えばリアルタイムでユーザーのアクセス内容を分析しながら、最適な広告表示を行うといったことが可能です。特徴としてあげられるのは、こちらも列指向型であることのほか、ツリーアーキテクチャという並列でデータ処理が行われる仕組みを備えていることです。
クエリを実行するときのみサービスが起動し、検索などの操作を行えます。料金はサービスを起動している間のみ発生するため、他のサービスより比較的コストパフォーマンスのよい料金体系であるといえます。

データ分析

【AWS】Amazon EMR

ビッグデータ処理・分析用ツールです。機械学習や大規模なデータ変換、リアルタイムストリーミングなどを目的に利用ができます。Apache HadoopやApache Sparkなどのオープンソースツールを利用した、ビッグデータの分析が可能です。

【AWS】Amazon Athena

S3と呼ばれるデータレイクに蓄積データに対し、SQLでクエリが実行できるサービスです。サーバーレスなので、インフラの管理が不要なので手軽です。実行したクエリに対してのみ料金が発生するようになっています。
初期状態で AWS Glueデータカタログと統合されており、テーブル定義などが編集できる他、バージョニング保持が可能です。

【AWS】Amazon Kinesis Data Analytics

Amazon Kinesis Data AnalyticsはS3やKinesis Data Streamからのストリーミングデータを、SQLやJavaを用いてリアルタイムで変換および分析できるサービスです。リアルタイムなデータをダッシュボードへ反映させたりすることができます。

【Azure】Azure HDInsight

Azure HDInsightは、ビッグデータの処理に必要な分散データ処理基盤を利用できるサービスです。Azure環境でApache Spark、Hadoopなどのオープンソースフレームワークを使用できます。あらゆる形式の構造化データや非構造化データにクエリをペタバイト規模で実行することができます。出力したデータをBIツールに接続するモデルを作成することも可能です。

【Azure】Data Explorer

Azure Data Explorerは、ログやストリーミングデータなど大量データに対応したデータ探索サービスです。
データの探索にはKQL (Kustoクエリ言語)と呼ばれるクエリをシンプルに書くことができる言語が使用できます。
IoT機器が出力する時系列データなどをリアルタイムに分析するなどのケースに向いています。

【GCP】Dataproc

Dataprocは、オープンソースのデータツールを利用してバッチ処理、クエリ実行、ストリーミング、機械学習を行えるサービスです。Dataprocの自動化機能を利用すると、クラスタを速やかに作成し、簡単に管理することができ、不要な場合には無効にして費用を節約できるなど管理にかかる手間やコストを削減できます。

BIツール

BIはビジネス・インテリジェンスの略で、データを表やグラフで表示できるサービスです。代表的な機能としてダッシュボードがあります。
上記のETLサービスによって作成し、格納したデータを表示するといった使い方ができます。
AWSで具体例をあげるとGlueで抽出・加工し、S3へ格納、QuickSightで表示するという一連の流れによって、毎日の資料作成を自動化するいったことが可能です。

【AWS】Amazon QuickSight

AWSクラウド内のデータに接続し、さまざまなソースのデータを結合してデータダッシュボード作成が行えるサービスです。
また、AWSだけでなく様々なクラウドおよび自社サービス上のデータソースにも対応しています。

【Azure】Microsoft PowerBI

Excelスプレッドシートから、クラウド上のデータ、自社サービス上のデータなどさまざまなデータを使用してデータの可視化が行えるサービスです。

【GCP】Looker

GCPのBIツールです。GCP内のサービスだけでなくAWS内にもデプロイでき、さまざまなクラウドサービスに接続できます。

機械学習

いずれのサービスも上記機能と連携した予測分析や機械学習が可能です。機械学習の経験がなくても、SQLを書くことができれば機械学習モデルを構築、学習、デプロイすることができます。

【AWS】Amazon SageMaker

トレーニングデータの前処理、教師データの作成、機械学習モデルの構築・学習、学習済みモデルをデプロイするといった一連のプロセスを行う機能が一貫して提供しているフルマネージド型サービスです。Jupyter Notebookをインターフェイスとしてインスタンス作成からモデル構築、学習、デプロイまでを実施することが可能です。
TensorFlowなどの機械学習フレームワークに対応しており、Dockerコンテナで実行するように事前に構成されているという特徴があります。

【AWS】Amazon EC2 P3

機械学習トレーニングに特化したコンピューティングを提供するサービスです。ディープラーニングの学習に必要な高性能GPUを提供しており、初期投資なしで使用できます。

【Azure】Azure Machine Learning

クラウドベースの機械学習プラットフォームサービスのことです。 Azure MLでは、機械学習モデルのトレーニング、計算資源の管理、Webサービスのデプロイ、学習や推論処理の自動化、モデル管理など、機械学習を活用したサービスを構築する際に必要となる様々な機能が提供されています。

【Azure】Data Science Virtual Machine

AI開発のために予め構成された環境や仮想マシンを提供するサービスです。GPUにもとづくハードウェアで深層学習アルゴリズムを活用することができます。
Machine Learningと連携したりトレーニング実行およびAzureMLパイプラインのコンピューティング先として使用することもできます。

【GCP】Vertex AI

Google Cloudの機械学習関連のサービスを統合したプラットフォームです。データ収集から分析・予測までの工程を内包しておりプログラミングを用いること無く学習が行なえます。
モデル作成にはAzure ML StudioのAutoMLという機械学習サービスの仕組みを利用することもでき、学習データをアップロードするだけでモデルの作成を行うことも可能です。

【GCP】Deep Learning VM Image

データサイエンスと機械学習タスク用に最適化された仮想マシンイメージです。すべてのイメージに主要な MLフレームワークとツールが事前にインストールされています。

実際のユースケース(公式より)

IoT デバイスデータ収集・解析(AWS)

IoT デバイスのデータ測定結果の収集・保存・分析・監視を行うために AWS IoT Core を使って構築する例です。
diagram_iot-device-telemetry_v3.1fc517a15652c4c183dcac9303fbbf88845192cb.png

大量デバイスからのテレメトリーデータを AWS IoT Core 経由で収集し、加工・保存を行ったあと分析に使用する仕組みです。BIツールであるAmazon QuickSightへ連携し、デバイスの状況を可視化することができます。

IoT およびデータ分析(Azure)

Screen Shot 2022-12-19 at 10.50.43.png

機器のセンサーデータを収集し、IoT HubからAzure Blob Storageに保存し分析に利用するシステムです。
収集されたデータは、Azure Stream Analyticsジョブにてリアルタイムで処理され、Azure SQLデータベースに格納されます。

出前館:データ ウェアハウスを BigQuery に移行し、データ分析のパフォーマンスが大幅に向上

Screen Shot 2022-12-19 at 11.21.03.png

アクセスログや注文データの分析を行うために、AWSからデータ取得、GCPへ連携している例です。
取得したWebサイトのアクセスログやモバイルアプリのログをBigQueryへ格納し、加工を行うと行った処理の仕組みに利用されています。

他のユースケースは以下に豊富にまとめられています。

データレイクと分析 (AWS)

事例集 (Azure)

顧客事例 (GCP)

おわりに

計画・目的に合ったサービスを選択しましょう

現状、クラウドサービスのシェアはAWSが優位に立っており、利用例や活用方法、また困った際の解決手段などもネットを探せばかなり多く転がっており、使いやすいといえます。
一方で、Azureは他のMicrosoft製品と連携ができるので、既存の業務環境から移行しやすかったり、
GCPはGoogle検索やYouTubeを使用する企業にとっては価格面で優位性があるといった場合があります。
目的に合ったサービスを選んで利用しましょう。

弊社では、経験の有無を問わず、社員やインターン生の採用を行っています。

興味のある方はこちらをご覧ください。

40
31
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
40
31