Instiq
第1章 · データエンジニアリング·v2.1.0·更新 2026/6/14·読了目安 約11分

変更要約: in-scope サービス網羅: 中核サービスの解説を追加

1.1データの収集と取り込み

この節の要点

ML の出発点——データソースストリーミング取り込み(Kinesis)バッチ取り込みS3 データレイク——を理解します。学習データはまず S3 に集めます。

機械学習はデータを集めることから始まります。AWS では多様なソースからデータを取り込み、S3 データレイクに集約して学習に使います。

1.1.1取り込みの方式

ML のためのデータ取り込みを示した図。アプリ/ログ・データベース・ストリーム/IoT などのソースから、リアルタイムは Kinesis(ストリーミング取り込み)、一括/定期は バッチロード(DMS/Glue)で取り込み、すべてを S3 データレイク(学習データの中央ストレージ)に集約し、SageMaker で学習する流れを示した図。S3 が ML データパイプラインのハブであることを示している。
ML のためのデータ取り込み
  • ストリーミング取り込み:リアルタイムのデータは Kinesis(Data Streams/Firehose) で取り込む。
  • バッチ取り込み:DB の一括移行は DMS、定期的な ETL 取り込みは Glue などを使う。
  • S3 データレイク:取り込んだデータは S3 に集約し、学習データの中心に据える。
  • Firehose の配信先:Amazon Data Firehose は S3 へ自動配信でき、ニアリアルタイムで蓄積できる。
試験ポイント

「リアルタイム取り込み=Kinesis」「S3 へニアリアルタイム配信=Amazon Data Firehose」「学習データの集約先=S3 データレイク」 は MLS-C01 で頻出です。ストリーミングは Kinesis、まとめて S3 に集約、が基本パターンです。

補足

Kinesis Data Streams は低遅延で順序保証やカスタム処理に向き、Firehose は管理不要で S3/Redshift などへの配信に向きます。用途で使い分けます。

MLS-C01 では取り込みサービスの「使い分けの根拠」が問われます。Kinesis Data Streams はシャードで構成され、各シャードが書き込み 1MB/秒・1,000 レコード/秒、読み取り 2MB/秒というスループット上限を持つため、流量に応じてシャード数を設計し、パーティションキーでホットシャードを避けます。コンシューマー側は標準(プル・シャード共有)と Enhanced Fan-Out(各コンシューマー専用 2MB/秒・プッシュ)を使い分けます。Firehose は完全マネージドでシャード管理が不要、S3/Redshift/OpenSearch へ配信しつつ、Lambda での変換や Parquet/ORC への形式変換、動的パーティショニングを途中で行えるため、ML 学習向けの列指向データレイクを取り込み時点で作れます。両者の違いは「遅延と制御」対「運用レス」で、リアルタイム推論のフィードや順序が重要なら Data Streams、ニアリアルタイムで S3 に貯めて後でバッチ学習するなら Firehose が定石です。大量の既存データを一度に入れる場合は、DB からは DMS(フルロード+CDC で継続同期)、ファイル群は S3 へ直接、ペタバイト級のオンプレは Snowball、ファイル共有の継続同期は DataSync を選びます。Kafka 資産があるなら MSK(マネージド Kafka)も取り込み口になります。

取り込み手段特性代表用途
Kinesis Data Streams低遅延・順序・シャード管理リアルタイム推論フィード
Amazon Data Firehose管理不要・形式変換・配信S3 への列指向蓄積
DMSフルロード+CDCDB の移行・継続同期
Snowball / DataSync大容量物理転送 / 継続同期オンプレ大量データ
補足

シナリオ:クリックストリームを取り込み、加工して Parquet で S3 データレイクに貯め、夜間にまとめて学習したい(リアルタイム推論は不要)。→ Amazon Data Firehose を使い、配信途中で Lambda 変換+Parquet 変換+動的パーティショニングを有効化して S3 に列指向で蓄積する。シャード管理が要らず、学習に最適なレイアウトを取り込み時点で作れる。

補足

FAQ:Q. Data Streams と Firehose どちらを使う? A. 順序・低遅延・カスタム処理が要るなら Data Streams、運用レスで S3 等へ貯めるなら Firehose。Q. 取り込み時に CSV を Parquet にしたい? A. Firehose の形式変換(record format conversion)で取り込み中に Parquet/ORC へ変換できる。Q. DB の継続的な変更も取り込みたい? A. DMS の CDC を使う。

注意

ひっかけ:「リアルタイム取り込みには必ず Kinesis Data Streams が必要」は誤り。S3 へニアリアルタイムに貯めるだけならシャード管理の要らない Firehose で十分なことが多い。逆に「Firehose で順序保証や 1 秒未満の低遅延処理ができる」も誤りで、それは Data Streams(+専用コンシューマー)の領域。バッファリングがある Firehose は厳密な低遅延には向かない。

1.1.2この節のまとめ

  • リアルタイム=Kinesis、まとめて=バッチ(DMS/Glue)
  • 集約先=S3 データレイク(ML パイプラインのハブ)

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

理解度チェック

(軽い確認用)

Q1. IoT センサーからのリアルタイムなデータストリームを取り込んで学習に使いたい。最適なのはどれですか?

Q2. ストリーミングデータを管理不要でニアリアルタイムに S3 へ配信して蓄積したい。何を使いますか?

Q3. 機械学習の学習データは一般的にどこに集約するのが基本ですか?

理解度を確認第1章「データエンジニアリング」の問題を解く