Servisphere
Amazon Kinesis Data Streams のアイコン(AWS Architecture Icons)

Amazon Kinesis Data Streams

リアルタイムのデータストリーム

shard 単位で構成される耐久性のあるデータストリームで、保持期間(デフォルト 24 時間、最大 365 日まで延長可能)内であれば複数の consumer がデータを再読み込みできます。provisioned と on-demand のモードがあります。

  • コスト$$ ふつう
  • 難易度●●●●●
  • 未使用でも課金?はい
  • サーバーレス
  • 出題試験SAA · DVA · SOA

範囲: Regional

Kinesis Data Streams をマップで開く →
たとえるなら連続録画テープのようなものです。複数の人が同じ場面を巻き戻して見られます。

いつ使う?

✓ 使うべき場面

低レイテンシーのリアルタイム処理で、複数のアプリケーションが同じストリームを読み、partition key ごとに順序を保つ必要があるとき。

✗ 避けるべき場面

S3/Redshift にデータを流し込むだけ → Data Firehose。シンプルなジョブキュー → SQS。

よくある使い方

  • リアルタイムダッシュボード用の clickstream
  • 複数 consumer 向けのログの一元収集
  • Lambda で処理する IoT データ

料金はいくら?

  • 課金方式: Provisioned: shard 時間と PUT payload unit に応じて課金。On-demand: ストリーム時間と書き込み/読み取りの GB 数に応じて課金されます。
⚠️ 料金の落とし穴

provisioned の shard はデータがなくても時間課金されます。partition key が「ホット」になると ProvisionedThroughputExceeded エラーが発生します。

料金は us-east-1 の参考値(2026年10月14日 更新)で、変更されている可能性があります。必ず AWS の料金ページでご確認ください。

💡 試験のコツ

「複数のアプリケーションが同じデータを読み、再読み込み、キーごとの順序、リアルタイム」なら Kinesis Data Streams、「コンシューマーが増えて遅くなる」なら拡張ファンアウト、「負荷が予測不能でシャード管理をしたくない」ならオンデマンドモードを選びます。

よくある質問

シャードとは何で、なぜパフォーマンスに影響しますか?

シャードはストリームの容量単位で、シャードごとに書き込みと読み取りのスループット上限が決まっており、同じパーティションキーのレコードは順序を保つため常に同じシャードに入ります。特定のパーティションキーに偏る (ホットになる) と、他のシャードが空いていてもそのシャードがボトルネックになるため、均等に分散するキーを選びます。スループットを増やすにはシャード数を増やします (リシャーディング)。

プロビジョニングモードとオンデマンドモードの違いは?

プロビジョニングは、シャード数を自分で決めてシャード時間で課金され、負荷が予測できる場合に向きます。オンデマンドは、トラフィックに応じて AWS が自動でスケールし、データ量で課金されるため、シャード設計が不要で、負荷が変動する場合や不明な場合に向きます。どちらも設定した保持期間だけデータを保持します。

拡張ファンアウト (enhanced fan-out) はいつ使いますか?

デフォルトではコンシューマーが各シャードの読み取りスループットを共有するため、コンシューマーを増やすと互いに遅くなります。拡張ファンアウトは各コンシューマーに専用のプッシュ型読み取り経路を与え、低遅延になります。1 つのストリームを多数のコンシューマーが読む場合に向き、追加コストがかかります。KCL を使うコンシューマーはチェックポイント保存用に DynamoDB も必要です。

関連サービス

SAA-C03 対策

Kinesis Data Streams は次の対策モジュールで扱っています:

Kinesis Data Streams をマップで開く →