データ分析との連携
S3内のオブジェクトやオブジェクトの中身に対し、データ分析を行う機能がある。
S3 SelectとAmazon Athenaは、CSVやJSONのような構造化されたテキスト形式のデータに対して、SQLのSELECT文を実行するクエリ機能。
Amazon Redshift Specutrumも同じ機能だが、大量のデータを処理できる。
データ分析サービス
Amazon S3には、ログやIoT機器から収集したデータなど、後に分析したいデータも含まれるので、データ分析サービスとの連携が用意されている。
S3 SelectとAmazon Athenaは、S3バケットに格納したデータに対して分析するサービス。一方で、Amazon Redshift Spectrumは、S3バケット以外に置いたデータも分析できる。
S3 Select
S3 Selectは、S3の機能で保存されている1ファイルのデータに対して、SQLを使って、集計や検索ができる機能。
CSVファイルやJSONの他、ログに使われるApache Parquetフォーマットにも対応。
集計やマネジメントコンソールからSQLを入力することで、簡単に時効できる。
CLIやSDKにも対応していて、複雑な集計をするときはプログラムを実行できる。
Amazon AtheneとAmazon Redshift Spectrum
AthenaとRedshift Spectrumはデータ分析のサービス。
これらのS3に格納されたデータをそのまま分析できる。
S3 Selectと違い、何を対象にどのような検索をするのかを事前に構成する必要がある。その反面、複数ファイルを対象にすることができる。
また、AthenaとRedshift Spectrumの大きな違いは、分析のためのサーバーを作る必要があるかどうか。
Athenaは都度、必要に応じて分析のサーバーが自動的に作られて実行されるので、実行したときだけ費用がかかる。
一方で、Redshift Spectrumは事前に分析用のサーバーを起動して、そのサーバーを起動しておき、そのサーバーを使って分析する。処理能力に応じて、コストの低いサーバから高いサーバーまで用意する。かつ分散処理でデータ分析ができる。
大量の複雑なデータを高速に処理するときは、Redshift Spectrumを使う。
データ分析ツールの使い分け
S3 Selectは最も手軽で、CSVファイルやJSONファイルなどの1ファイルを対象に集計検索ができる。これを使うと、時間帯ごとの売り上げや製品ごとの売り上げを計算できる。
AthenaやRedshift Spectrumを使うとS3に置かれた複数のファイルを処理できる。また集計や検索方法を保存できるので、何度も繰り返し、集計・検索したいときはAthenaを使う。Redshiftは高度な分析機能を持つデータシェアハウス。集計・検索だけでなく、予測を立てたりすることができる。
余談
AWS Lambdaとの連携
このほかS3と連携できる機能として、AWS Lambdaが挙げられる。
Lambdaはイベントドリブン(イベントに応じて処理を実行する方式)でコードを実行できるサービス。
S3のバケットにオブジェクトがアップロードされたことをきっかけに、Lambdaの関数を呼び出すことができるので「特定のバケットに画像がアプロードされ、その画像のサムネイルを作成する」「ファイルがアップロードされたら通知する」などのシステムが簡単に作成できる。