HAQM Kinesis Data Streams の使用を開始

開始方法

HAQM Kinesis Data Streams は、ストリーミングデータ用に最適化された、非常にスケーラブルで高い耐久性を持つデータインジェストおよびデータ処理サービスです。Kinesis データストリームに継続的にデータを入力するように何十万個ものデータプロデューサーを設定できます。データはすぐに HAQM Kinesis アプリケーションで利用できるようになり、アプリケーションはデータレコードを生成された順番に受け取ります。

HAQM Kinesis Data Streams には、HAQM S3 といった AWS データレイクへほぼリアルタイムでストリーミングデータを変換、提供する HAQM Kinesis Data Firehose、マネージド型ストリームを処理する HAQM Managed Service for Apache Flink、イベントまたはレコードを処理する AWS Lambda、プライベート接続の AWS PrivateLink、メトリクスやログを処理する HAQM Cloudwatch、サーバー側の暗号化を行う AWS KMS など、多数の AWS サービスが統合されています。

HAQM Kinesis Data Streams は、ビッグデータソリューションのゲートウェイとして使用されます。さまざまな送信元からのデータが HAQM Kinesis ストリームに配置され、ストリームのデータはさまざまな HAQM Kinesis アプリケーションによって利用されます。この例では、あるアプリケーション(黄色)がストリーミングデータに対してリアルタイムダッシュボードを実行しています。別のアプリケーション (赤色) は、単純な集約を実行し、処理済みデータを HAQM S3 に送信します。S3 のデータはさらに処理され、複雑な分析を行うために HAQM Redshift に保存されます。3 つ目のアプリケーション (緑色) は、未加工データを HAQM S3 に送信します。そのデータは、低コストで長期間保管するために HAQM Glacier にアーカイブされます。この 3 つのデータ処理パイプラインはすべて同時かつ並列に動作しています。

HAQM Kinesis Data Firehose の使用を開始

HAQM Kinesis Data Streams の最新情報を見る

PoC (実証支援) または評価に関するサポートをリクエスト

動画

Kinesis Data Streams の使用

アマゾン ウェブ サービスにサインアップした後、次の方法で HAQM Kinesis Data Streams の使用を開始できます。

  • HAQM Kinesis マネジメントコンソールまたは HAQM Kinesis CreateStream API を使用して HAQM Kinesis データストリームを作成します。
  • HAQM Kinesis データストリームに連続的にデータを格納するように、データプロデューサーを設定します。
  • HAQM Kinesis データストリームからデータを読み取って処理するように HAQM Kinesis アプリケーションを構築します。

主要なコンセプト

Open all

データプロデューサーは、データレコードが生成されると Kinesis Data Stream に送信するアプリケーションです。データプロデューサーは、パーティションキーをレコードに割り当てます。パーティションキーは、最終的にどのシャードがデータストリーム用のデータレコードを取り込むか決定します。

データコンシューマーは、データが生成されると、ストリーム内のすべてのシャードからデータを取得する分散型 Kinesis アプリケーションまたは AWS サービスです。ほとんどのデータコンシューマーはシャード内の最新データを取得し、リアルタイムのデータ分析またはデータ処理を可能にします。

データストリームはシャードの論理グループです。データストリーム内のシャード数に制限はありません (必要に応じて、上限の引き上げをリクエストしてください)。データストリームは、デフォルトで 24 時間、またはオプションで最大 365 日間データを保持します。

シャードとは、HAQM Kinesis データストリームの基本的なスループットの単位です。

  • シャードはアペンド専用のログで、ストリーミング機能の単位です。シャードには、到達時間順に並んだレコードのシーケンスが含まれています。
  • 1 つのシャードは 1 秒あたり最大 1000 のデータレコードまたは 1MB/秒を取り込むことができます。シャードを追加して取り込み能力を上げることができます。
  • AWS コンソール、UpdateShardCount API を使用したデータスループットの変更により AWS Lambda を介して、または自動スケーリングユーティリティを使用した自動スケーリングがトリガーされたら、ストリームから動的にシャードを追加または削除します。
  • コンシューマーが拡張ファンアウトを使用する場合、シャードは、拡張ファンアウトを使用するために登録された各データコンシューマーに 1MB/秒のデータ入力と 2MB/秒のデータ出力を提供します。
  • コンシューマーが拡張ファンアウトを使用しない場合、シャードは、1MB/秒のデータ入力と 2MB/秒のデータ出力を提供します。この出力は拡張ファンアウトを使用しないコンシューマーと共有されます。
  • ストリームを作成するときに必要なシャードの数を指定します。この数量はいつでも変更できます。たとえば、2 シャードのストリームを作成できます。拡張ファンアウトを使用する 5 データコンシューマーを持つ場合、このストリームは合計データ出力最大 20 MB/秒を提供できます (2 シャード x 2MB/秒 x 5 データコンシューマー)。データコンシューマーが拡張ファンアウトを使用していない場合、このストリームは 2MB/秒のデータ入力と 4MB/秒のデータ出力のスループットを持ちます。すべてのケースで、このストリームは 1 秒あたり最大 2000 PUT レコードまたは 2MB/秒の取り込みができ、先に上限に達した方になります。
  • HAQM Kinesis Data Streams でシャードレベルメトリクスを監視できます。

レコードとは、HAQM Kinesis ストリームに保存されるデータの単位です。レコードは、シーケンス番号、パーティションキー、データ BLOB で構成されています。データ BLOB はデータ生成元がストリームに追加する、処理対象のデータです。データ BLOB(Base64 デコーディングの後のデータペイロード)の最大サイズは、1 メガバイト (MB) です。

パーティションキーは通常、ユーザー ID またはタイムスタンプなどの意味を持つ IDです。データプロデューサーによって指定され、データを HAQM Kinesis データストリームに配置します。コンシューマーはパーティションキーを使用し、パーティションキーに関連する履歴を再生または構築できるので、コンシューマーに便利です。パーティションキーは、データレコードを分離してストリームの異なるシャードにルーティングするためにも使用されます。例えば、2 つのシャード(シャード 1 とシャード 2)で構成される HAQM Kinesis データストリームがあるものとします。2 つのパーティションキー(キー A とキー B)を使用し、キー A のデータレコードはすべてシャード 1 に追加され、キー B のデータレコードはすべてシャード 2 に追加されるように、データ生成元を設定できます。

シーケンス番号とは、各データレコードの一意の識別子です。データプロデューサーが PutRecord API または PutRecords API を呼び出してデータを HAQM Kinesis データストリームに追加すると、HAQM Kinesis Data Streams によってシーケンス番号が割り当てられます。同じパーティションキーのシーケンス番号は一般的に、時間の経過とともに大きくなります。PutRecord または PutRecords リクエスト間の期間が長くなるほど、シーケンス番号は大きくなります。

Streams へのデータの格納

Open all

データプロデューサーは、HAQM Kinesis データストリームに HAQM Kinesis Data Streams API、HAQM Kinesis Producer Library (KPL)、または HAQM Kinesis Agent を介してデータを格納できます。

HAQM Kinesis Data Generator を使用して Kinesis データストリームまたは Kinesis Data Firehose にサンプルデータを格納します。

HAQM Kinesis Data Streams には、データを HAQM Kinesis ストリームに入力するために PutRecordPutRecords という 2 種類の API が準備されています。PutRecord では 1 回の API 呼び出し内で単一のデータレコードを扱えます。PutRecords API では 1 回の API 呼び出し内で複数のデータレコードを扱えます。

HAQM Kinesis Producer Library (KPL) は、HAQM Kinesis データストリームにデータを格納するのに役立つ、使いやすく、高度な設定が可能なライブラリです。HAQM Kinesis Producer Library (KPL) は、最低限のクライアントリソースを使用して、高いプロデューサースループットを素早く実現できる、シンプルで非同期の、信頼のおけるインターフェイスを提供します。

HAQM Kinesis Agent は、データを収集して HAQM Kinesis に送る機能を簡単に実現する、事前に構築された Java アプリケーションです。このエージェントは、ウェブサーバー、ログサーバー、データベースサーバーなど、Linux ベースのサーバー環境にインストールできます。エージェントによって特定のファイルがモニタリングされ、継続的にデータがストリームに送られます。

アプリケーションの実行または独自のアプリケーションの構築

Open all

AWS サービスを使用して完全に管理されたストリーム処理アプリケーションを実行するか、独自のアプリケーションを構築します。

HAQM Kinesis Data Firehose は、ストリーミングデータを変換し、データストアや分析ツールに確実にロードする最も簡単な方法です。Kinesis データストリームを Kinesis data firehose のソースとして使用できます。

HAQM Managed Service for Apache Flink を使用すると、Apache Flink を使用してストリーミングデータを簡単にクエリしたり、ストリーミングアプリケーションを構築したりできます。これにより、実用的なインサイトを得て、ビジネスやお客様のニーズにすばやく対応することができます。Kinesis データストリームは、HAQM Managed Service for Apache Flink アプリケーションのソースと宛先として使用できます。

Lambda 関数をサブスクライブして、Kinesis データストリームから自動的にレコードを読み取ることができます。 AWS Lambda は通常、レコードごと (イベントベースとも呼ばれます) のストリーム処理に使用されます。

ビルド済みのライブラリである HAQM Kinesis Client Library (KCL) を使用すると、HAQM Kinesis データストリームからデータを読み取って処理する HAQM Kinesis アプリケーションを簡単に作成できます。KCL は、ストリームボリュームの変化への適応、ストリーミングデータの負荷分散、分散サービスの調整、データ処理の耐障害性などの複雑な問題に対応します。KCL を利用することで、HAQM Kinesis アプリケーションの構築中にビジネスロジックに集中できます。 KCL 2.0 以降では、低レイテンシーの HTTP/2 ストリーミング API と拡張ファンアウトを使用してストリームからデータを取得できます。

ビルド済みのライブラリである HAQM Kinesis コネクタライブラリを使用すると、HAQM Kinesis を他の AWS サービスやサードパーティ製ツールと簡単に統合できるようになります。HAQM Kinesis コネクタライブラリを使用するには、HAQM Kinesis クライアントライブラリ(KCL)が必要です。このライブラリの現在のバージョンでは、HAQM DynamoDBHAQM RedshiftHAQM S3HAQM Elasticsearch Service に対するコネクタが提供されています。またライブラリには、各タイプのサンプルコネクタと、サンプルを実行するための Apache Ant ビルドファイルも含まれています。

HAQM Kinesis Storm Spout はビルド済みのライブラリで、HAQM Kinesis Data Streams と Apache Storm を簡単に統合できます。HAQM Kinesis Storm Spout の現在のバージョンは、Kinesis データストリームからデータをフェッチし、そのデータをタプルとして送出します。信頼性が高くスケーラブルなストリームキャプチャ、ストレージ、および再生サービスとして HAQM Kinesis Data Streams を活用するには、Spout を Storm トポロジに追加します。

ストリームの管理

Open all

VPC エンドポイントを作成すると、HAQM Virtual Private Cloud (VPC) から Kinesis Data Streams API にプライベートでアクセスできます。VPC エンドポイントを使うと、VPC と Kinesis Data Streams の間のルーティングが AWS ネットワークによって処理されます。インターネットゲートウェイ、NAT ゲートウェイ、VPN 接続は必要ありません。Kinesis Data Streams で使用される VPC エンドポイントの最新世代では、AWS PrivateLink が使用されています。AWS PrivateLink は、VPC でのプライベート IP と Elastic Network Interface (ENI) を使用することにより、AWS のサービス間でのプライベート接続を実現するテクノロジーです。PrivateLink の詳細については、AWS PrivateLink のドキュメントを参照してください。

拡張ファンアウトにより、顧客は並行してストリームから読み取るコンシューマーの数を調整しながら、パフォーマンスを維持することができます。拡張ファンアウトと HTTP/2 データ取得 API を使用して、通常 70 ミリ秒以内にファンアウトデータを複数のアプリケーションに届けます。

サーバー側の暗号化またはクライアント側の暗号化を使用して、Kinesis Data Streams に格納したデータを暗号化できます。 サーバー側の暗号化は、データストリームからデータの格納と取得を行う際に自動的にデータを暗号化および復号する、フルマネージド型の機能です。また、データストリームにデータを格納する前に、クライアント側でデータを暗号化することもできます。詳細については、Kinesis Data Streams のよくある質問にある「セキュリティ」セクションを参照してください。

データストリームを Kinesis Data Firehose のソースとして使用すると、すぐにデータを変換し、S3、Redshift、Elasticsearch、Splunk に送信できます。新しいプログラミング言語やフレームワークの処理を学ぶことなく、標準 SQL を使用してリアルタイムでストリーミングデータを処理できる HAQM Managed Service for Apache Flink アプリケーションを接続します。

HAQM Kinesis Data Streams は HAQM CloudWatch と統合されているため、HAQM Kinesis データストリームとデータストリーム内のシャードの CloudWatch メトリクスを簡単に収集、表示、分析できます。HAQM Kinesis Data Streams のメトリクスの詳細については、「HAQM CloudWatch による HAQM Kinesis Streams サービスのモニタリング」を参照してください。

HAQM Kinesis Data Streams は、AWS Identity and Access Management (IAM) と統合されています。IAM は、AWS の各種サービスとリソースへのユーザーアクセスを安全に制御するサービスです。例えば、特定のユーザーまたはグループだけに HAQM Kinesis データストリームへのデータの追加を許可するポリシーを作成できます。HAQM Kinesis データストリームのアクセスの管理と制御に関する詳細については、「IAM により HAQM Kinesis リソースへのアクセスを制御する」を参照してください。

HAQM Kinesis Data Streams は AWS CloudTrail と統合されています。AWS CloudTrail は、ユーザーのアカウントに対する AWS API コールを記録してログファイルを提供するサービスです。API コールのログ記録およびサポートされる HAQM Kinesis API のリストの詳細については、「AWS CloudTrail を使用した HAQM Kinesis API コールのログ記録」を参照してください。

リソースとコストの管理が容易になるように HAQM Kinesis データストリームにタグを付けることができます。タグは、AWS リソースの整理に役立つ、キーと値のペアとして表されるユーザー定義のラベルです。例えば、コストセンター別に HAQM Kinesis データストリームにタグを付けることにより、コストセンターに基づいて HAQM Kinesis データストリームのコストを分類および追跡できます。詳細については、「HAQM Kinesis Data Streams でのストリームのタグ付け」を参照してください。

チュートリアル

Open all

このチュートリアルでは、HAQM Kinesis データストリームの作成、株取引のシミュレーションデータのストリームへの送信、データストリームのデータを処理するアプリケーションの作成の方法について説明します。 

注目のプレゼンテーション

Open all

注目のソリューション

HAQM Kinesis 向け AWS ストリーミングデータソリューションは、データがプロデューサー、ストリーミングストレージ、コンシューマー、および宛先を通過する AWS CloudFormation テンプレートを提供します。さまざまなユースケースとビジネスニーズをサポートするために、このソリューションでは 4 つの AWS CloudFormation テンプレートが提供されています。テンプレートは、ダッシュボードとアラームを使用して機能を監視し、データを保護するためのベストプラクティスを適用するように構成されています。