Google Dataflowを使って、Google Cloud StorageからElasticに直接データをインジェストする

blog-thumb-cloud-gcp.png

Elasticは本日、GCS(Google Cloud Storage)からElastic Stackへ、Google Dataflowを使ったダイレクトなデータインジェストのサポートを開始したことを発表しました。このサポート開始に伴い、開発者やSREs(Site Reliability Engineers)、セキュリティアナリストなどのユーザーは、Google Cloud Consoleを数回クリックするだけでGCSのデータをElastic Stackにインジェストできるようになりました。

Google Cloud上のアプリやインフラが生成するログとイベントの格納にGCSを使用し、トラブルシューティングや監視、セキュリティ上の異常の確認にはElastic Stackを使用するという開発者やSRE、セキュリティアナリストは少なくありません。 GoogleとElasticはこの2つのソリューションのエクスペリエンスを強化する目的で協働し、GCSに格納されたログとイベントをElastic Stackにインジェストする、ストレスフリーで使いやすい手法の提供を実現させました。この手法はデータパイプラインアーキテクチャーをシンプル化するほか、運用上の手間を省き、トラブルシューティングの所要時間を短縮できるといったメリットをユーザーにもたらします。Google Cloud Consoleを数回クリックするだけで済み、カスタムのデータプロセッサーを作成する必要はありません。

本ブログ記事では、Google Dataflowを使って、エージェントを経由せずにGCSからElastic Stackにデータをインジェストする方法をご紹介します。

GCSからのデータインジェストを最適化する

GCS(Google Cloud Storage)は、Amazon S3やAzure Blob Storageともよく比較されるオブジェクトストレージソリューションです。GCSはその魅力的な価格から、ストリーミング要件のないデータのバックアップやアーカイブ、データ分析に加え、シンプルなWebページやアプリのホスティングにもよく利用されています。開発者やSREs、セキュリティアナリストなどのユーザーは、バックアップやアーカイブのためにアプリやインフラのログとイベントをGCSに格納することがあります。また、Google Cloudユーザーのデータパイプラインが、すべてのデータをElastic Stackにインジェストする設定にはなっていないケースもあります。つまり、データの一部がGCSに格納され、後で必要な場合に分析できるように保持されているというケースです。

ログがGCSに送信された後、そのログをElasticのようなサードパーティの分析ソリューションにインジェストするメソッドは、ユーザーが決定しなくてはなりません。もしGoogle Cloud Consoleを数回クリックするだけでGCSのデータを直接Elastic Stackにインジェストすることができれば、理想的なメソッドとなります。実は現在、Apache Beamをベースとする人気のサーバーレスデータ処理製品、Google Dataflowのドロップダウンメニューからこのメソッドを実行することが可能になっています。Dataflowは実質的に、GCSからログとイベントをElastic Stackにプッシュします。現時点でサポートされているファイル形式はCSVですが、Elasticは近日、JSONのサポート開始を予定しています。

以下に、データインジェストのフローを示します。このインジェストフローは、Elastic CloudのElastic Stackから、Google Cloud MarketplaceのElastic Cloud、セルフマネージド環境まで、すべてのユーザーに共通です。

Dataflow

 

使い始める

GCSからのインジェスト機能を理解する最適な方法は、事例のデモンストレーションを見ることです。ここからは事例として、アメリカ地質調査所から取得した地震データを分析してみます。アメリカ地質調査所はリアルタイムの地震情報と震度統計データを提供しています。先月、アメリカ地質調査所がマグニチュード2.5以上を観測した地震のCSVファイルを使用します。このファイルの冒頭5行は次のようになっています。どのようなデータなのか、おおよそのイメージを掴めると思います。

データファイル

 

Google Cloud Consoleの[Dataflow]ページで、[GCS to Elasticsearch template](GCS-Elasticsearchテンプレート)を選択します。このテンプレートは、次のいずれかを使用してJSONドキュメント向けのスキーマを作成します。

  1. Javascript UDF(該当する場合)
  2. JSON schema(該当する場合)
  3. CSVヘッダー*(デフォルト)

UDFまたはJSONスキーマのいずれかに該当する場合は、CSVヘッダーに代わってそれを使用します。

クラウドステージング

 

フォームの最初のフィールドに、GCS内のファイルの場所を示すパラメーターを入力します。 Cloud IDは、下の画像に示すようにElastic Cloud UIで見つけることができます。API Keyは、Create API key APIを使って作成することができます。
API Key

 

We're hiring

Work for a global, distributed team where finding someone like you is just a Zoom meeting away. Flexible work with impact? Development opportunities from the start?