本文へスキップ
BecomeCoder

AWS SAP(ソリューションアーキテクト プロフェッショナル)コース · 第6章 新規ソリューションの設計②:データストアとデータベース · レッスン35

ストリーミングとリアルタイム処理

導入

これまでのデータストアは「溜まったデータをどう検索・分析するか」でした。最後に、IoTセンサーやアプリのクリックストリームのように絶え間なく流れ込んでくるデータをリアルタイムに処理する設計を見ておきましょう。

説明

Amazon Kinesis は、大量のストリーミングデータをリアルタイムに取り込み・処理するサービス群です。

flowchart LR
    SRC["センサー / アプリログ / クリックストリーム"] --> KDS["Kinesis Data Streams<br/>リアルタイム取り込み"]
    KDS --> CONSUMER["独自アプリ/Lambdaで<br/>リアルタイム処理"]
    SRC --> KDF["Kinesis Data Firehose<br/>取り込み+自動配信"]
    KDF --> S3["S3 / Redshift / OpenSearch"]
サービス役割特徴
Kinesis Data Streamsリアルタイムのカスタム処理複数の消費者が独立して同じストリームを読める、処理ロジックを自分で書く
Kinesis Data Firehose取り込みと配信の自動化変換して自動でS3/Redshift/OpenSearchへ配信、サーバーレスで運用不要
Amazon MSK(Managed Streaming for Apache Kafka)Kafka互換のフルマネージドストリーミング基盤既存のKafkaエコシステム(コンシューマ資産)をそのまま活かしたい場合
  • 「自前のロジックでリアルタイムに複雑な処理をしたい、複数のアプリが同じストリームを別々に読みたい」→ Kinesis Data Streams
  • 「ログをそのままS3やRedshiftに流し込みたいだけで、処理コードを書きたくない」→ Kinesis Data Firehose
  • 「オンプレで既にKafkaを使っており、その資産・ノウハウを引き継ぎたい」→ Amazon MSK

KinesisとMSKはどちらもストリーミング基盤ですが、**「AWSネイティブで手軽に始めたいならKinesis」「Kafka互換・既存のKafka資産を活かしたいならMSK」**という住み分けです。

読んでみよう

「Kafkaを使っている」という一言が問題文にあれば、選択肢の中にMSKがあるかをまず探しましょう。逆に、Kafkaへの言及がなくAWSネイティブに完結させたいなら、Kinesis Data Streams(自前処理)かFirehose(配信の自動化)かを、処理ロジックを自分で書きたいかどうかで切り分けます。ここまでで、コンピューティング・メッセージング・データストアという新規設計の主要な部品が揃いました。次章では、既存ソリューションの継続的な改善に視点を移します。