tsumiki-media logo

tsumiki-media

Command Palette

Search for a command to run...

AWSサービス比較
約15分
初級+
5/10
2025年9月19日

AWS DEA-C01 対策 Kinesis Data Streams vs SQS

Amazon Kinesis Data Streams (KDS)とAmazon SQSのメッセージング・ストリーミングサービスの違いを理解し、順序保証、複数コンシューマー、データ保持などの要件に応じて適切なサービスを選択するための完全ガイド。実践的な問題を通じて使い分けのポイントを解説します。

この記事のポイント

  • 1
    Kinesis Data StreamsとSQSの基本的な違いを理解する
  • 2
    順序保証、複数コンシューマー、データ保持の要件に基づき、適切なサービスを選択できるようになる
  • 3
    実践的な問題を通じて、両サービスの使い分けを具体的に習得する

目次

Kinesis Data Streams vs SQS

Amazon Kinesis Data Streams (KDS) と Amazon SQS は、どちらも非同期処理やマイクロサービスの疎結合化に不可欠なAWSサービスですが、そのアーキテクチャと最適なユースケースは根本的に異なります。

KDSはリアルタイムなデータストリームの処理に特化しているのに対し、SQSは信頼性の高いメッセージキューイングに重点を置いています。この違いを理解することが、適切なサービス選択の鍵となります。

3つの重要な違い

KDSとSQSのどちらを選ぶべきか判断する際に、特に重要となる3つの比較ポイントを解説します。

Icon-Architecture/48/Arch_Amazon-Kinesis_48

Amazon Kinesis

順序保証
あり(シャード単位)
複数コンシューマー
得意(各コンシューマーが独立してストリームを読める)
データ保持/リプレイ
可能(デフォルト24時間、最大1年)
主な用途
リアルタイム分析、ログ収集、イベントソーシング
Icon-Architecture/48/Arch_Amazon-Simple-Queue-Service_48

Amazon SQS

順序保証
標準キューはベストエフォート(FIFOキューは保証あり)
複数コンシューマー
難しい(メッセージは一度処理されると消える)
データ保持/リプレイ
不可(処理後に削除)
主な用途
非同期タスク、バッチ処理、マイクロサービスの分離
判断基準

順序保証複数コンシューマーデータのリプレイのいずれかが必要な場合はKinesis Data Streamsを、シンプルな非同期タスク処理やサービスの疎結合化が目的ならSQSを選択するのが基本原則です。

🔍複数コンシューマー

複数コンシューマーとは、同じデータストリームやメッセージキューを複数のアプリケーション(コンシューマー)が同時に読み取り、それぞれ独立して処理することです。Kinesis Data Streamsでは、各コンシューマーが独自のイテレータを持ち、ストリーム内の同じデータを異なるタイミングで読み取ることができます。一方、SQSでは、メッセージは一度取得されると他のコンシューマーからは見えなくなるため、複数のアプリケーションで同じメッセージを処理することは基本的にできません。

実践問題で確認

これらの違いが、実際の試験でどのように問われるかを確認しましょう。要件の中から、どちらのサービスが最適かを判断するキーワードを見つけるトレーニングになります。

AWS認定データエンジニア - アソシエイト

練習問題

スマートホーム機器メーカーはデバイスの状態メッセージをバックエンドシステムにリアルタイムで送信し、異常検知を行うアプリケーションを開発しています。このソリューションは大量のトラフィックスパイクを処理でき、デバイスメッセージを受信順に処理し、処理済みデータを高可用性データベースに保存する必要があります。また、運用オーバーヘッドを最小限に抑えることが求められています。これらの要件を満たすために、最も適切なアーキテクチャはどれですか?

AWS認定データエンジニア - アソシエイト

練習問題

あるeコマース企業が、ユーザーの購買履歴データに基づいて請求処理を行っています。企業のコンプライアンス要件として、請求処理後に14日間の監査期間内で、同一順序のデータに対して監査処理を実行できる必要があります。どのAWSサービスが、同じ順序で請求処理と監査処理の両方を実行する機能を提供しますか?

AWS認定データエンジニア - アソシエイト

練習問題

スマートシティプロジェクトを推進する企業が、都市全体に設置された何千もの環境センサーからリアルタイムデータを収集するシステムを構築しています。各センサーは大気質、騒音レベル、温度、湿度などの測定値を1分ごとに送信します。企業はこのデータを使用して、都市の状況を監視し、市民に情報を提供するダッシュボードを構築したいと考えています。システムの要件は以下の通りです: - センサーIDに基づいてデータを順序付けて処理する必要がある - 1秒あたり数千のメッセージを持続的に処理できなければならない - 複数のアプリケーション(分析、アラート、可視化など)が同じデータストリームを利用できる必要がある - 過去24時間分のデータをリアルタイム分析のために保持する必要があるこのユースケースに適したAWSサービスはどれですか?

まとめ

KDSとSQSの選択は、アプリケーションの要件に大きく依存します。単純な非同期処理であればSQS、順序性やリアルタイム分析、複数のアプリケーションでのデータ共有が必要な場合はKDSが適しています。

シンプルな非同期処理: ウェブサーバーからのリクエストをバックエンドで処理するなど、タスクをキューに入れて確実に処理したい場合。サービスの疎結合: マイクロサービス間で直接通信せず、キューを介してやり取りさせたい場合。

順序保証: クリックストリームや取引ログなど、発生した順序での処理が重要な場合。複数アプリでの利用: ログ分析、リアルタイム監視、機械学習など、同じデータを複数の目的で使いたい場合。データの再生: 障害発生時や新しいアプリの追加時に、過去のデータを再処理したい場合。

理解度チェック

メッセージの順序が重要な場合、どちらのサービスを検討すべきか?

同じデータを複数のアプリケーションで分析したい場合、どちらが適しているか?

処理後も一定期間データを保持し、再処理できるようにしたい場合の選択肢は?

他の問題も解いてみませんか?

tsumikiでは、AWS認定試験の合格に必要な知識を体系的に学習できます。実践的な問題を通じて、AWSスキルを身につけましょう。