Smile Engineering Blog

ジェイエスピーからTipsや技術特集、プロジェクト物語を発信します

AWSでデータ分析基盤を構築してみよう

今回は、AWSAmazon Web Services)が提供するクラウドコンピューティングサービスを利用したデータ分析基盤の構築例と関連するいくつかのサービスをご紹介したいと思います。

まずは、データ分析基盤とは何かを簡単にご説明していきます。

データ分析基盤とは

データ分析基盤とは、データを収集、蓄積、加工、分析・可視化するための基盤です。

図1 データ分析基盤

  • AWS IoT Core: IoTデバイスからのデータを収集

  • AWS TransferFamily:SFTP転送プロトコルを利用した収集、転送

  • Amazon S3:データレイクとしても利用できるストレージサービス

  • AWS Lambda:サーバーレス環境でデータ処理が可能

  • Amazon Redshift:データウェアハウス

  • AWS Glue:データのETL(抽出、変換、ロード)を行う

  • AWS Athena:S3に保存されたデータをSQLクエリで参照できる

  • Amazon QuickSight:ダッシュボードやデータ分析を行うBIツール

AWSには上記以外にも200以上のさまざまなサービスが用意されており、これらのサービスを組み合わせることで、要件にあったデータ分析基盤を構築することができます。

データ分析基盤の構成例に入る前に、データを蓄積するデータレイクについて、関連するデータウェアハウス、データマートと一緒に整理しておきます。

データレイク、データウェアハウス(DWH)、データマートの比較

データレイクは、大量のデータをそのままの形式で格納・保管するデータストレージで、AIモデルの学習や予測のためにも使用されます。 CSV形式のような構造化データはもちろん、JSONXML、画像、音声、動画など様々な形式のデータを時系列に蓄積していくため、大容量のストレージが必要となります。
また、データレイクに格納するデータは、必ずしも利用目的が明確になっている必要はありません。

対して、データウェアハウスには利用目的に合わせた構造化データとして保管し、さらに特定の目的に合わせて最適化したデータがデータマートとなります。

図2 データレイク/DWH/データマートの比較

AWSで構築するデータ分析基盤の構成例

データレイク、データウェアハウス、データマートをAmazon S3で実現するシンプルな構成例です。
データ加工は、AWS LambdaやAWS Glue、データの可視化、分析はAmazon QuickSightを利用します。

図3 AWSで構築するデータ分析基盤の構成例

以降で、使用しているAWSサービスの特徴をみていきます。

Amazon S3

Amazon S3には、以下のような特徴があります。

  • 容量が無制限
  • 低コスト(0.023USD/GB) ※東京リージョン、標準ストレージ
  • イレブンナイン(99.999999999)の耐久性
  • 99.9%の可用性
  • AWSサービスとの連携が容易
  • 暗号化によるセキュリティ強化

これらの特徴より、Amazon S3はデータレイクとして非常に適したサービスと言えます。

AWS Lambda

AWS Lambdaには、以下のような特徴があります。

  • サーバレス
  • マルチリージョンで高可用性を維持
  • オートスケーリング
  • 従量課金
  • 15分を超える処理は実行できない

サーバー構築やアプリケーションのインストールといった環境構築は不要で、PythonなどのコードでLambda関数を作成するだけで、簡単に作成した処理を実行することができます。ただし、15分以上の処理を実行したい場合は、次に紹介するAWS Glueなどの別サービスを検討する必要があります。
また、Amazon S3のイベント通知やAmazon EvnetBridgeと組み合わせることで、特定のイベントが発生したタイミングでLambda関数を実行させることが可能です。

AWS Glue

AWS Glueには、以下の4つの機能があります。

Glueジョブ

データの抽出、変換、ロードを行います。 AWS Glue Studioを利用しノーコードでジョブを作成することができますし、Python、またはScalaで処理を書くこともできます。

データカタログ

データカタログは、データベース、テーブル、スキーマ情報で構成されています。

クローラー

Amazon S3などのデータストアに格納されているデータからデータカタログを作成します。

ワークフロー

GUIクローラー、ジョブ、トリガーと呼ばれるノードを組み合わせ、ワークフローを定義することができます。
トリガーには、ワークフローの起動条件となる開始トリガーとGlueジョブやクローラーの開始条件を定義するトリガーがあり、例えば、毎日00:00時にワークフローを起動し、クローラーAとクローラーBの処理が完了したらジョブABを実行させるといった定義を行うことが可能です。

Amazon QuickSight

Amazon QuickSightには、以下のような特徴があります。

  • フルマネージドのBIサービス
  • ユーザーロール種類
    • Admin(管理者):QuickSightのアカウントや、QuickSightのユーザーに関連する権限を持つ。
    • Author(作成者):データセットダッシュボード、分析データを作成する権限、共有フォルダの作成やアクセス制御の権限を持つ。
    • Reader(閲覧者):ダッシュボード、分析データを参照のみの権限を持つ。
  • SPICEと呼ばれるインメモリを持つ
  • 料金
    • Admin、Author:24USD/月(SPICE容量10G無料枠付き)
    • Reader:セッション数による従量課金(最大5USD/月)
  • アセット(データソース、データセットダッシュボード、分析)のアクセス管理機能

データソースとしてAWS Athenaを利用し、Amazon S3のデータをSQLクエリで操作した結果を取り込むこともできます。

AWS TransferFamily

AWS TransferFamilyには、以下のような特徴があります。

  • フルマネージドサービス
  • SFTPサーバーサーバ、FTP/FTPSサーバを構築できる
  • SFTP、FTPS、FTPプロトコルを使用した転送を行えるサーバを構築できる
  • Amazon S3Amazon EFSにファイルを転送することができる
  • ワークフロー機能を利用し、データが転送されたタイミングの処理を定義することができる

今回は、SFTPプロトコルを利用した公開鍵認証を使った転送を行いました。SFTPクライアントとしてはWinSCPCyberduck などが利用可能です。

まとめ

AWSを利用するメリットとしては、すぐに始められるところだと思います。
要件が確定していない場合でも、最初はスモールスタートで構築し、必要に応じてサービスを追加、または変更していくことをお勧めします。
注意点としては、AWSの多くのサービスが従量課金ということです。利用するサービスの料金体系については、AWSのドキュメントやコスト見積ツール(AWS Pricing Calculator)を利用するなど、事前に確認したうえで構築を始めていきましょう。 calculator.aws