変更要約: 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(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 のマネージドサービスへ移行したい。何を使いますか?

