データ分析とコストのジレンマに終止符──「諦めたログ」も活かすSplunk×Amazon S3活用術
「SplunkユーザーにAWSの新しい選択肢を」検証結果から見えた本当に価値のあるデータパイプライン
コストを削減して運用も楽にする新アーキテクチャとは
では、FSS3を活用する際のシステムアーキテクチャはどのように構成されるのか。酒井氏は、FSS3のデータパイプライン構築について、3つの主要コンポーネントで構成されるアーキテクチャを解説した。
第一のコンポーネントがSplunkのIngest Actionsだ。これはデータを取り込む前に様々な変換処理を行える機能で、不要なデータのフィルタリングや機密情報のマスキングといった処理を自動で行うことができる。Ingest Actionsでフィルタリング・転送されたデータはSplunkのライセンスカウント対象外となるため、Splunkのコストを大幅に削減可能だ。
第二のコンポーネントがAmazon S3。フラットな構造を持つオブジェクトストレージとして、大量のログデータを安価に保存する役割を担う。
そして第三のコンポーネントがAWS GlueのData Catalogである。Amazon S3に保存されたデータの構造を定義・管理するメタデータリポジトリとして機能し、様々なデータソースのメタデータ(スキーマ、場所など)を一元的に保存・管理することで、Splunk Cloudからの効率的なデータアクセスを可能にするものだ。

FSS3のデータパイプライン図
[クリックすると拡大します]
ただし、Amazon S3にあるデータをSplunk Cloudで検索する際は、スキャンしたデータ量に応じてSplunk CloudのオプションライセンスであるDSU(Data Scan Unit)を消費するため、スキャン対象となるデータ量を最適化することが重要となる。そこで活用されるのが、Ingest Actionsによる「パーティショニング」だ。ログのタイムスタンプを読み取り、自動的に「YYYY/MM/DD」などのプレフィックス(Amazon S3内でデータを識別するためのキー情報)を付けてデータを転送することで、検索時のスキャン範囲を絞り込める機能である。
酒井氏は、Ingest Actionsによるプレフィックスを用いたパーティショニングにより「コスト・検索の両方でパフォーマンスが向上する」と説明し、「運用面までよく考えられていて非常に優れている」と高く評価した。
Amazon S3に日々蓄積されるログデータを効率的に検索するためには、パーティショニングをいかにうまく活用するかといった戦略が重要となるが、新しいデータが追加されるたびに管理者が手作業でパーティション設定を行っていては手間がかかる。また、長期運用により蓄積されたパーティション数が増えると、検索性能が低下するという問題も生じる。膨大なパーティション数によってクエリ時間が大幅に伸びる現象が発生し、システム全体のレスポンスが悪化してしまうのだ。
これらの運用課題を解決する方法として、酒井氏はAmazon AthenaのPartition Projection機能を紹介した。これは、Amazon S3上のパーティション構造をテーブルの設定から自動で推論し、事前のパーティション登録作業を不要にする技術。これにより、日々の運用作業が軽減され、クエリの高速化にもつながる。
Partition Projection機能の実装例として、同氏はWebサーバーのアクセスログを取り上げた。アクセスログは通常、1行の長文テキストとして出力されるが、Amazon Athenaでテーブルを定義し、各ログ項目(IPアドレス、タイムスタンプ、リクエスト内容など)を列として設定することで、SQLでの検索が可能になる。ログの形式に応じて、Grokなどの正規表現ベースのパーサーを活用すれば、構造化されていないログも扱いやすくなる。
定義されたテーブルはAWS Glue Data Catalogに保存され、Partition Projectionの設定により、日付などのルールに従ったパーティションの自動管理が実現される。これにより、日々のパーティション追加や管理が不要となり、運用コストと手間を大幅に削減できるとした。

[クリックすると拡大します]
AWS側の設定ができたら、次にSplunk Cloud側でアクセス設定を行う。Splunkには、複数のインスタンスや外部のデータソースを横断して検索できる「Federated Search」という機能が備わっており、Splunkが外部データソースと連携・検索する際の“接続先”を定義した「Federated Providers」と呼ばれる構成要素を持つ。ここから、Splunk CloudがAWS Glue Data Catalogを参照し、Amazon S3にアクセスするための権限ポリシーを設定する。これによりクロスアカウントでのデータアクセスが可能になる。
また「Federated Index」の設定も必要になる。ここでは、AWS Glue Data Catalogで定義された時間フィールドをSplunk Cloudの内部時間にマッピングし、検索時にパーティションフィールドを適切に識別できるよう設定する。これにより、Splunk CloudからAmazon S3内のデータを効率的に検索できるようになる。
この記事は参考になりましたか?
- EnterpriseZine Press連載記事一覧
-
- データ分析とコストのジレンマに終止符──「諦めたログ」も活かすSplunk×Amazon...
- 三菱電機が挑むAI時代の事業創造手法:「匠Method」×「Miro」×生成AIの実践レポ...
- コロナ危機で仕込んだ「DXのタネ」が花開いた旭化成ホームズ “紙文化”残る不動産業界での奮...
- この記事の著者
-
森 英信(モリ ヒデノブ)
就職情報誌やMac雑誌の編集業務、モバイルコンテンツ制作会社勤務を経て、2005年に編集プロダクション業務とWebシステム開発事業を展開する会社・アンジーを創業した。編集プロダクション業務では、日本語と英語でのテック関連事例や海外スタートアップのインタビュー、イベントレポートなどの企画・取材・執筆・...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
提供:Splunk Services Japan 合同会社
【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社
この記事は参考になりましたか?
この記事をシェア