ウェブエンジニア問題集
第15章

データ取り込みと分析 — Kinesis・Glue・Athena・OpenSearch・DataSync

10
この章の目次開く
データ活用のアイデアを考えるイラスト
学習者学習者

Kinesis、Glue、Athenaは普段のWebアプリ開発では見かけにくくて、イメージしづらいです。

SAA-C03では、ストリーミングデータ、ログ収集、ETL、S3上の分析、オンプレミスからのデータ移行が問われます。実務でも、アプリケーションの裏側でデータ基盤をどう作るかは重要です。


データ取り込みサービス

サービス主な用途
Kinesis Data Streamsストリーミングデータを低レイテンシで処理
Kinesis Data FirehoseS3、Redshift、OpenSearchへ簡単に配信
AWS GlueETL、データカタログ
Amazon AthenaS3上のデータをSQLでクエリ
Amazon OpenSearch Serviceログ分析、全文検索、リアルタイムダッシュボード
AWS DataSyncオンプレミスや他ストレージからAWSへデータ転送
AWS Transfer FamilySFTP/FTPS/FTPでS3やEFSへ転送

Kinesisの使い分け

要件選択肢
ストリームをアプリで細かく処理したいKinesis Data Streams
S3やRedshiftへ簡単に流し込みたいKinesis Data Firehose
Kafka互換が必要Amazon MSK

Firehoseは運用が簡単ですが、Streamsほど細かい制御には向きません。リアルタイム処理の自由度が必要ならStreamsを選びます。


Amazon Data Firehose

データをリアルタイムに配信するイメージ

Amazon Data Firehose(旧 Kinesis Data Firehose)は、ストリーミングデータを変換なし、またはLambdaで軽い変換をしてから、配信先へリアルタイムに届けるフルマネージドサービスです。サーバーの管理やスケーリングは不要で、データを流し込むだけで配信先に届きます。

学習者学習者

Firehoseの配信先はS3だけですか?Datadogのような外部ツールにも送れますか?

S3だけではありません。AWSサービスに加えて、Datadog、Splunk、New RelicなどのサードパーティSaaS、任意のHTTPエンドポイントにもストリーミング配信できます。

データ配信のフロー

配信先用途
S3ログのアーカイブ、データレイクへの蓄積
OpenSearch Serviceログの全文検索・リアルタイムダッシュボード
RedshiftDWHへのデータロード
Datadog / Splunk / New Relicサードパーティの監視・分析ツール
カスタムHTTPエンドポイント任意のAPI

Firehoseの配信とバケットポリシー

FirehoseからS3に配信する場合、S3バケット側で firehose.amazonaws.com からの書き込みを許可するバケットポリシーが必要です。Firehose用のIAMロールと合わせて設定します。

先生先生

試験で「ログをS3やOpenSearchに簡単に配信したい」「サードパーティの分析ツールにストリーミングで送りたい」と出たらFirehoseです。運用の手間なく配信できるのが最大の特徴です。


S3を中心にした分析

S3はデータレイクの保存先としてよく使われます。

典型構成:

アプリログ / IoT / 業務データ
  -> Kinesis Firehose / DataSync
  -> S3
  -> Glue Data Catalog
  -> Athena / Redshift Spectrum

実務では、S3のプレフィックス設計、ファイル形式、パーティション、ライフサイクルも性能とコストに影響します。


Amazon OpenSearch Service

Amazon OpenSearch Serviceは、Elasticsearch互換のフルマネージドな検索・分析サービスです。ログ分析、全文検索、リアルタイムダッシュボードに使います。

学習者学習者

CloudWatch Logsでもログは見られますが、OpenSearchを使う場面はどう違いますか?

CloudWatch Logsは個別のログ確認やメトリクスベースのアラームに強いですが、大量のログを横断的に検索・可視化したい場合はOpenSearchが向いています。

要件選択肢
ログの全文検索・横断分析OpenSearch Service
個別ログの確認・メトリクスアラームCloudWatch Logs
ログ検索 + リアルタイムダッシュボードOpenSearch Service + OpenSearch Dashboards
既存のElasticsearchワークロードをAWSに移行OpenSearch Service

ECSアプリケーションのログ分析構成

ECSで動かしているサービスのログは、CloudWatch Logsに送るのが最もシンプルです。しかし、マイクロサービスが増えてくると「あるリクエストIDで全サービスのログを横断検索したい」「エラー傾向をダッシュボードで見たい」といった要件が出てきます。

ECS Task (awslogs driver)
  -> CloudWatch Logs
  -> サブスクリプションフィルター
  -> Kinesis Data Firehose
  -> OpenSearch Service
  -> OpenSearch Dashboards で検索・可視化

OpenSearchの設計ポイント

項目設計判断
ドメインのAZ配置Multi-AZで高可用性を確保
データノードインスタンスタイプとストレージをログ量に合わせる
アクセス制御VPC内に配置 + きめ細かなアクセスポリシー
Firehose連携Firehoseからの直接配信で運用をシンプルに
インデックス管理ISM(Index State Management)で古いインデックスを自動削除
学習者学習者

試験ではどういう問われ方をしますか?

SAA-C03では「ログの全文検索」「リアルタイムダッシュボード」「Elasticsearch互換」というキーワードが出たらOpenSearch Serviceを選びます。Firehoseの配信先としてもよく登場します。

参考リンク


まとめ

データ取り込みと分析では、リアルタイム性と運用負荷を見てサービスを選びます。

  • 細かいストリーム処理はKinesis Data Streams
  • 配信中心ならKinesis Data Firehose
  • ETLとカタログはGlue
  • S3上のSQL分析はAthena
  • ログの全文検索・ダッシュボードはOpenSearch Service
  • オンプレ転送はDataSyncやTransfer Family

次の章からは、コスト最適化としてストレージ、コンピューティング、DB、ネットワークを順に扱います。

AWSクイズに挑戦するこの章で学んだAWSの知識を、4択クイズでアウトプットして定着させよう