今回は、AWS(Amazon Web Services)が提供するクラウドコンピューティングサービスを利用したデータ分析基盤の構築例と関連するいくつかのサービスをご紹介したいと思います。
まずは、データ分析基盤とは何かを簡単にご説明していきます。
データ分析基盤とは
データ分析基盤とは、データを収集、蓄積、加工、分析・可視化するための基盤です。
Amazon S3:データレイクとしても利用できるストレージサービス
AWS Lambda:サーバーレス環境でデータ処理が可能
Amazon Redshift:データウェアハウス
AWS Glue:データのETL(抽出、変換、ロード)を行う
AWSには上記以外にも200以上のさまざまなサービスが用意されており、これらのサービスを組み合わせることで、要件にあったデータ分析基盤を構築することができます。
データ分析基盤の構成例に入る前に、データを蓄積するデータレイクについて、関連するデータウェアハウス、データマートと一緒に整理しておきます。
データレイク、データウェアハウス(DWH)、データマートの比較
データレイクは、大量のデータをそのままの形式で格納・保管するデータストレージで、AIモデルの学習や予測のためにも使用されます。
CSV形式のような構造化データはもちろん、JSON、XML、画像、音声、動画など様々な形式のデータを時系列に蓄積していくため、大容量のストレージが必要となります。
また、データレイクに格納するデータは、必ずしも利用目的が明確になっている必要はありません。
対して、データウェアハウスには利用目的に合わせた構造化データとして保管し、さらに特定の目的に合わせて最適化したデータがデータマートとなります。
AWSで構築するデータ分析基盤の構成例
データレイク、データウェアハウス、データマートをAmazon S3で実現するシンプルな構成例です。
データ加工は、AWS LambdaやAWS Glue、データの可視化、分析はAmazon QuickSightを利用します。
以降で、使用している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サービス
- ユーザーロール種類
- SPICEと呼ばれるインメモリを持つ
- 料金
- Admin、Author:24USD/月(SPICE容量10G無料枠付き)
- Reader:セッション数による従量課金(最大5USD/月)
- アセット(データソース、データセット、ダッシュボード、分析)のアクセス管理機能
データソースとしてAWS Athenaを利用し、Amazon S3のデータをSQLクエリで操作した結果を取り込むこともできます。
AWS TransferFamily
AWS TransferFamilyには、以下のような特徴があります。
- フルマネージドサービス
- SFTPサーバーサーバ、FTP/FTPSサーバを構築できる
- SFTP、FTPS、FTPプロトコルを使用した転送を行えるサーバを構築できる
- Amazon S3、Amazon EFSにファイルを転送することができる
- ワークフロー機能を利用し、データが転送されたタイミングの処理を定義することができる
今回は、SFTPプロトコルを利用した公開鍵認証を使った転送を行いました。SFTPクライアントとしてはWinSCP、Cyberduck などが利用可能です。
まとめ
AWSを利用するメリットとしては、すぐに始められるところだと思います。
要件が確定していない場合でも、最初はスモールスタートで構築し、必要に応じてサービスを追加、または変更していくことをお勧めします。
注意点としては、AWSの多くのサービスが従量課金ということです。利用するサービスの料金体系については、AWSのドキュメントやコスト見積ツール(AWS Pricing Calculator)を利用するなど、事前に確認したうえで構築を始めていきましょう。
calculator.aws