AWS Kinesisとは
AWS Kinesisは、AWSが提供するリアルタイムでストリーミングデータを収集、処理、分析できるフルマネージド型のデータ分析サービスです。動画、音声、アプリケーションログ、IoTデバイスからのセンサーデータなど、さまざまな種類のストリーミングデータを扱うことができます。
この記事では、AWS Kinesisの概要や、料金、メリットなどについてわかりやすく解説します。
【参考】:AmazonKinesis(ストリーミングデータをリアルタイムで収集、処理、分析)|AWS
ストリーミングデータとは
AWS Kinesisの読み方は「キネシス」で、意味はギリシア語の「動き」です。その名の通り、ストリーミングデータの収集、処理、分析などに利用しますが、ストリーミングデータとは何を指すのか確認しておきましょう。
ストリーミングデータは、リアルタイムで生成され、連続的に送信されるデータのことです。従来のデータとは異なり、最初から終わりまでが明確に分かれているわけではなく、データの発生と同時に処理や分析が行われます。
ストリーミングデータは、従来のデータベースシステムでは処理することが困難です。そのため、ストリーミングデータ処理と呼ばれる専用の技術が必要です。ストリーミングデータは、さまざまな分野で活用されており、主な活用例は以下の通りです。
▪金融:リアルタイムの株価分析、不正検知 ▪小売:顧客行動分析、在庫管理 ▪製造:機械の稼働状況監視、予知保全 ▪通信:ネットワークトラフィック分析、音声認識 ▪メディア:ライブ配信、コンテンツ分析
【参考】:ストリーミングデータとは|AWS
AWS Kinesisの概要
ここでは、AWS Kinesisの特徴やコンポーネント、料金などの概要について紹介します。
AWS Kinesisとは何か
AWS Kinesisは、リアルタイムでストリーミングデータを収集、処理、分析するためのプラットフォームです。ストリーミングデータは、センサーデータ、ログデータ、トランザクションデータ、アプリケーションのメトリクスなど、継続的に生成されるデータを指します。
Kinesisは、ストリーミングデータをリアルタイムで取り込み、さまざまな目的で活用できるようにします。
AWS Kinesisの特徴
AWS Kinesisの主な特徴について見ていきましょう。大変優れたサービスであることが分かります。
1.リアルタイムデータストリーミング 標準的なSQLクエリでリアルタイムにストリームデータを分析できます。データのスループットに応じて処理能力を伸縮するため、オペレーションの介入は不要です。またデータ収集されるデータを保存前に分析し、リアルタイムでストリーミングデータの分析結果を次のサービスに渡すことができます。
2.スケーラビリティ Kinesisはフルマネージドで、必要なキャパシティを設定してストリームを作成するだけで利用できます。スループットやデータ量の変化に応じて自動的にスケールします。
3.サーバーレス Kinesisはサーバーレスアーキテクチャを採用しているため、インフラストラクチャのプロビジョニングや管理は不要で、コードの実行に集中できます。またデータストリームの作成やスケーリングは自動的に行われます。
4.セキュリティ Kinesisはデータの転送時にSSL/TLS(HTTPS)を使用して暗号化します。また、保存されているデータはAWS Key Management Service(KMS)キーを使用して暗号化ができますので、セキュリティは確保されています。
5.多様なデータソースに対応 Kinesisは動画、音声、アプリケーションログ、IoTデバイスからのデータなど、さまざまなデータソースに対応しています。
Kinesisの4つのコンポーネント
AWS Kinesisは、以下の4つの主要なコンポーネントで構成されており、それぞれが重要な役割を担っています。コンポーネントについて1つずつ見ていきましょう。
▪Kinesis Data Streams データの取り込みとバッファリングを行います。ストリームデータを処理するためのアプリケーションを独自に構築できます。
【参考】:AmazonKinesis Data Streams(リアルタイム分析向け大規模データを収集)| AWS
▪Kinesis Data Firehose データをKinesis Data Streamsにストリーミング配信します。ストリームデータをAmazon S3、Amazon Redshift、Amazon OpenSearch Serviceなどに簡単に配信できます。
【参考】:Amazon Data Firehose の特徴 - ストリーミングデータパイプライン |AWS
▪Managed Service for Apache Flink(旧Kinesis Data Analytics) ストリーミングデータのリアルタイム分析を行います。標準的なSQLクエリでリアルタイムにストリームデータを分析できます。
【参考】:ストリーム処理 - Amazon Managed Service for Apache Flink | AWS
▪Kinesis Video Streams ビデオデータをリアルタイムで収集、処理、分析するためのサービスです。
【参考】:特徴 - AmazonKinesis Video Streams | AWS
Kinesis Data StreamsとData Firehoseの違い
Kinesisのコンポーネントである Data StreamsとData Firehoseはいずれもデータストリーミングサービスですが、何が異なるのでしょうか?その違いについて簡潔に説明します。
■ Kinesis Data Streams Kinesis Data Streamとは高度なカスタマイズとリアルタイムなデータストリーミングサービスで、レイテンシ(遅延)を1秒未満に抑えることができ、低レイテンシで複数の分析アプリと連携できます。
シャード(スループット)を意識して設計する必要があります。高度なデータ加工や複数の利用者へのデータ配信に対応が求められる場合に適しています。
■ Kinesis Data Firehose ストリームデータをAWA S3やAWS Redshiftなどに簡単に配信するサービスです。シャード(スループット)の作成や、パーティションキーの指定は不要です。特別な加工を必要とせず、単純な転送や、ある程度の遅延が許容される場合に適しています。
Kinesis Data Streams の料金
Amazon Kinesis Data Streamsは、フルマネージドでサーバーレスなストリーミングデータサービスです。リアルタイムでログ、イベント、クリックストリームなどのストリーミングデータを取り込み、保存することができます。Kinesis Data Streamsは、シンプルな従量制料金体系を採用しています。
Kinesis Data Streamsには、オンデマンドとプロビジョンドの2つの容量モードがあり、いずれも固有の請求オプションがあります。
【参考】:Kinesis Data Streamsの料金体系 | AWS
■ オンデマンドモード データストリームへの書き込みと読み取りごとにGB単位で料金が発生します。アプリケーションのスループットを事前に指定する必要はありません。Kinesis Data Streamsは自動的にワークロードに対応します。
データの取り込みと取り出しのボリュームに基づいて料金が計算されます。また、オプション機能には追加料金があります(拡張データ保持、長期データ保持、エンハンストファンアウト)。
オンデマンドモードは、新しいデータストリームのワークロードが不明確な場合や、予測できないアプリケーショントラフィックがある場合、または容量管理を避けたい場合に適しています。
■ プロビジョニングモード 予め指定したスループット容量でデータストリームを作成します。シャードの数とスループット容量に基づいて料金が発生します。予測可能なワークロードやスループットを必要とする場合に適しています。
AWS Kinesisのメリットとデメリット
AWS Kinesisの特徴を理解したところで、利用するメリットとデメリットについて見てみましょう。
Kinesisのメリット
Amazon Kinesisの主なメリットについて、以下にまとめてみました。利用する際は、主にどのメリットを最大化させるのか想定し、実際に動作させてみて想定通りの結果が得られているのかを検証してみるとよいでしょう。
1.リアルタイム分析 Kinesisはストリーミングデータをリアルタイムで分析することができるため、ビジネスプロセスにおける迅速な意思決定やアクションを支援できます。
2.フルマネージドサービス 複雑なストリーム処理をフルマネージドで実行し、インフラの管理にかかる手間を大幅に省けます。
3.スケーラビリティ データ量に応じて自動的にスケーリングをしてくれるため、トラフィックの増加に対しても柔軟に対応できます。インフラを気にする必要がないため、エンジニアは開発やサービスに専念できます。
4.コスト効率 初期コストや定額での料金が不要であり、使った分だけ料金が発生する従量課金制のため、全体コストを抑えられます。
Kinesisのデメリット
デメリットに関しては、特定のケースにおいては他のAWSサービスと比較してコストが高くなる可能性があります。また、リアルタイム処理のための技術的な知識が必要になることもあります。ここでは3つのデメリットについて解説します。
1.データの保存期間が短い Kinesis Data Streamsで保存できるデータの期間は最大24時間です。長期的なデータ保存には、Kinesis Data Streamsと連携してS3などのストレージサービスを利用する必要があります。
2.データ処理コストが高くなる可能性がある Kinesisは処理するデータ量に応じて課金されますので、大量のデータを処理する場合にはコストが高くなる可能性があります。コスト圧縮のためには、処理するデータ量を絞り込むか、Kinesis Data Firehoseなどの圧縮機能の利用を検討しましょう。
3.リアルタイム処理に関するスキルが必要 Kinesisは、他のAWSサービスと比較して技術的にはやや複雑なサービスであるため、活用するにはある程度の知識と経験が必要です。あらかじめ、AWSのセミナーを受講したり、マニュアルを読み込んだりといった予習をしておくとよいでしょう。
Kinesisを利用してストリーミングデータを有効活用しよう
ここまで、この記事では、AWS Kinesisの概要や、料金、メリットなどについて解説しました。Kinesisはリアルタイムでストリーミングデータやログデータなどの取得、分析で威力を発揮してくれます。さらに複雑なストリーミング処理も対応が可能です。
初期費用や月額料金が不要で、利用したデータ量に応じた料金体系のため、コストパフォーマンスが優れています。他にEC2、S3やDynamoDB、Lambdaといったサービスと連携できます。ストリーミングダータのさまざまな活用ができるAWS Kinesis、ぜひ試してみてはいかがでしょうか。
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから