Instiq
第1章 · データの取り込みと変換·v2.1.0·更新 2026/6/14·読了目安 約10分

変更要約: in-scope サービス網羅: 取り込み・移行(AppFlow/Data Exchange/API Gateway/DataSync/Transfer Family/MGN/Discovery/Snow Family)を追加

1.1データの取り込み(バッチとストリーミング)

この節の要点

バッチ取り込み(スケジュール・大量一括)とストリーミング取り込み(連続・準リアルタイム)の違い、Kinesis Data Streams / Data Firehose / MSK の使い分けを理解します。DEA-C01 の「データの取り込みと変換」の出発点です。

データエンジニアリングの第一歩は、データをどう取り込むかです。大きく バッチ(定期・大量一括)と ストリーミング(連続・準リアルタイム)に分かれます。

1.1.1バッチとストリーミング

バッチ(スケジュール・大量一括・Glue/EMR/DMS・「スケジュールで処理」)と、ストリーミング(連続・準リアルタイム・Kinesis/MSK・「到着したイベントを順次処理」)の違いを対比した図。
バッチ取り込みとストリーミング取り込み
  • バッチ:一定間隔で大量データをまとめて処理。Glue・EMR・DMS(DB 移行/レプリケーション)などを使う。
  • ストリーミング:イベントを到着順に連続処理する。Kinesis や MSK(Kafka)を使う。
  • Kinesis Data Streams:耐久性があり再処理(リプレイ)可能。シャードで並列化し、独自コンシューマーで処理する。
  • Data Firehoseコード不要で S3/Redshift 等へ配信(バッファリング)。MSKはマネージドな Apache Kafka。
試験ポイント

「コード不要でストリームを S3/Redshift へ配信=Data Firehose」「再処理や独自処理が必要=Kinesis Data Streams」「既存 Kafka を移行=MSK」「DB をまるごと移行/同期=DMS」 は DEA で頻出です。

取り込みは「バッチか、ストリーミングか」をまず決め、ストリーミングなら保持・再処理が要るかで選びます。バッチは AWS Glue(サーバーレス Spark)・EMR(自前 Hadoop/Spark クラスタ)・AWS DMS(DB の移行・継続レプリケーション。CDC(変更データキャプチャ) で差分だけ取り込み)を使います。ストリーミングは Kinesis Data Streams(耐久・リプレイ可能シャードで並列・KCL/KPLや Lambda で消費・拡張は オンデマンド/プロビジョンド容量モード)、Data Firehoseコード不要で S3/Redshift/OpenSearch へ配信・バッファ(サイズ/時間)・Lambda 変換・Parquet 変換・リプレイ用保持はしない)、MSK(マネージド Apache Kafka・既存 Kafka 資産の移行向け)で構成します。「届いたものをそのまま保管先へ=Firehose」「独自処理や複数コンシューマー・再処理=Data Streams」「Kafka 互換が要件=MSK」が基本の判断軸です。少量・イベント駆動なら直接 Lambda でも取り込めます。

要件使うもの
コード不要で S3/Redshift へ配信Data Firehose
再処理・独自処理・複数消費Kinesis Data Streams
既存 Kafka を移行MSK
DB をまるごと移行/差分同期DMS(CDC)

シナリオ:IoT イベントを準リアルタイムで取り込み、後で再分析もしたい。 取り込みは Kinesis Data Streams(保持期間内ならリプレイ可・シャードで並列)。そのまま S3 データレイクへ貯めるだけの経路は Data Firehose(バッファ+Lambda で Parquet 変換)で並走。オンプレ RDB の継続同期は DMS の CDC で差分のみ取り込みます。

補足

Q. コード不要で配信? Data Firehose。Q. 再処理/独自処理? Kinesis Data Streams。Q. 既存 Kafka? MSK。Q. DB の差分同期? DMS(CDC)。Q. Firehose で再処理できる? いいえ——保持は Data Streams の役割。

注意

混同に注意:
Firehose はリプレイ用に保持しない——再処理が要るなら Data Streams。
②Data Streams のスループットはシャード数(またはオンデマンド)で決まり、不足は ProvisionedThroughputExceeded/ホットシャードの原因。
③DMS は移行+継続同期(CDC)で、ストリーミング基盤ではない。
④Firehose には最小バッファ遅延があり「完全な即時」ではない。

補足

Kinesis Data Streams はデータを一定期間保持するため再処理できますが、Firehose は配信に特化しリプレイ用の保持はしません。要件で使い分けます。

1.1.2この節のまとめ

  • バッチ(Glue/EMR/DMS)/ストリーミング(Kinesis/MSK)
  • 配信特化=Firehose、再処理可=Data Streams

進捗の記録にはログインが必要です。

理解度チェック

(軽い確認用)

Q1. コードを書かずにストリーミングデータを S3 や Redshift へ配信したい。最も適したサービスはどれですか?

Q2. ストリーミングデータを後から再処理(リプレイ)でき、独自コンシューマーで並列処理したい。何を使いますか?

Q3. 既存のオンプレ Apache Kafka を AWS のマネージドサービスへ移行したい。何を使いますか?

理解度を確認第1章「データの取り込みと変換」の問題を解く