AWS を無料でお試しください
まずは無料で始める »またはコンソールにサインイン
12 か月間の AWS 無料利用枠と、24 時間年中無休のカスタマーサービスやサポートフォーラムなどの AWS ベーシックサポート機能を利用できます。
Amazon Kinesis は現在 AWS 無料利用枠でご利用できないことにご注意ください。
Amazon Kinesis は完全に管理されたストリーミングサービスです。クリックストリーム、アプリケーションログ、ソーシャルメディアなどのさまざまなタイプのデータを何十万ものソースから Amazon Kinesis ストリームに連続して追加できます。ほんの数秒後には、Amazon Kinesis アプリケーションでストリームからデータを読み取って処理できます。
Q: Amazon Kinesis は何を管理しますか?
Amazon Kinesis は、データスループットのレベルでデータをストリーミングするために必要なインフラストラクチャ、ストレージ、ネットワーキング、設定を管理します。データストリームのためのハードウェア、ソフトウェア、その他のサービスのプロビジョニング、デプロイ、継続的保守を心配する必要はありません。さらに、Amazon Kinesis では、同じ AWS リージョン内の 3 つの施設間でデータが同期的にレプリケートされるので、可用性とデータ耐久性が高まります。
Q: Amazon Kinesis でできることは何ですか?
Amazon Kinesis を使用すると、データ生成元からすばやくデータを移動して連続的にデータを処理し、データストアに送る前にデータを変換したり、メトリックスや分析をリアルタイムで実行したり、他の処理のためにさらに複雑なデータストリームを取得したりできます。以下に示しているのは、Amazon Kinesis の一般的なユースケースです。
- 高速化されたログおよびデータフィードの取得: データがまとまるまで待つのではなく、データ生成元でデータが生成されたらすぐに Amazon Kinesis ストリームにデータをプッシュできるので、データ生成元で障害が発生してもデータが失われません。たとえば、システムログやアプリケーションログを連続的にストリームに追加し、すぐに処理できます。
- リアルタイムのメトリックスとレポート: Amazon Kinesis ストリームデータからリアルタイムでメトリックスを抽出してレポートを生成できます。例えば、Amazon Kinesis アプリケーションは、データがストリーミングされると同時にシステムログおよびアプリケーションログのメトリックスやレポートの処理を行うことができ、データバッチを受け取るまで待つ必要はありません。
- リアルタイムのデータ分析: Amazon Kinesis では、ストリーミングデータの分析をリアルタイムで実行できます。たとえば、クリックストリームを Amazon Kinesis ストリームに追加し、Amazon Kinesis アプリケーションでリアルタイムに分析して、時間や日の単位ではなく分単位でデータを詳しく調べることができます。
- 複雑なストリーム処理: Amazon Kinesis アプリケーションおよびデータストリームの Directed Acyclic Graph (DAG) を作成できます。このシナリオでは、1 つ以上の Amazon Kinesis アプリケーションがさらに処理を行うために別の Amazon Kinesis ストリームにデータを追加でき、ストリームを連続的な段階で処理できます。
Q: Amazon Kinesis を使用するにはどうすればよいですか?
アマゾン ウェブ サービスにサインアップした後、次の方法で Amazon Kinesis の使用を開始できます。
- Amazon Kinesis Management Console または CreateStream オペレーションを使用して Amazon Kinesis ストリームを作成します。
- ストリームへ連続的にデータを追加するように、データ生成元を設定します。
- Amazon Kinesis API または Amazon Kinesis クライアントライブラリ(KCL)を使用してストリームからデータを読み取って処理するように Amazon Kinesis アプリケーションを構築します。
Q: Amazon Kinesis の制限事項は何ですか?
Amazon Kinesis ストリームのスループットは、ストリーム内のシャードの数を増やすことによって制限なしにスケールするように設計されています。ただし、Amazon Kinesis を使用するときに留意する必要のある特定の制限があります。
- ストリームのレコードにアクセスできるのは、ストリームに追加された時点から最大 24 時間です。
- 1 つのレコード内のデータ BLOB(Base64 エンコーディング前のデータペイロード)の最大サイズは、1 メガバイト (MB) です。
- 各シャードは 1 秒当たり最大 1,000 件の PUT レコードをサポートできます。
他の API レベルの制限事項の詳細については、「Amazon Kinesis Limits」を参照してください。
Q: Amazon Kinesis と Amazon SQS の違いは何ですか?
Amazon Kinesis では、ストリーミングビッグデータをリアルタイムで処理できます。レコードを並べ替えることができ、複数の Amazon Kinesis アプリケーションに対して同じ順序でレコードを読み取ったり再生したりできます。Amazon Kinesis クライアントライブラリ(KCL)は特定のパーティションキーに対するすべてのレコードを同じレコードプロセッサに提供し、同じ Amazon Kinesis ストリームから読み取る複数のアプリケーションの構築を容易にします(たとえばカウント、集計、フィルタリングの実行など)。
Amazon Simple Queue Service(Amazon SQS)は、コンピューター間でやり取りされるメッセージを保存するための、信頼性のある、拡張性の高い、ホスティングされたキューを提供しています。Amazon SQS を使用すると、分散したアプリケーションコンポーネント間でデータを簡単に移動でき、自動化されたワークフローのようなメッセージレベルでの確認/失敗セマンティクスを備えたメッセージを独立して処理するアプリケーションを構築できます。
Q: Amazon Kinesis および Amazon SQS はそれぞれどのような場合に使用する必要がありますか?
Amazon Kinesis は次のような要件のユースケースに推奨されます。
- 関連性のあるレコードを同じレコードプロセッサにルーティングする場合(MapReduce のストリーミングなど)。たとえば、特定のキーに対するすべてのレコードを同じレコードプロセッサにルーティングすると、カウントや集計が簡単になります。
- レコードを並べ替える場合。例えば、ログステートメントの順序を維持しながら、アプリケーションホストから処理/アーカイブホストにログデータを転送できます。
- 複数のアプリケーションが同じストリームを同時に使用する機能。例えば、リアルタイムダッシュボードを更新するアプリケーションと、データを Amazon Redshift にアーカイブするアプリケーションがあるものとします。両方のアプリケーションで、同じストリームからのデータを同時に、独立して使用できます。
- レコードを数時間後に同じ順序で使用する機能。例えば、請求アプリケーションと、請求アプリケーションから何時間か後に実行する監査アプリケーションがあるものとします。Amazon Kinesis はデータを最大で 24 時間保管するので、請求アプリケーションより最大 24 時間後に監査アプリケーションを実行できます。
Amazon SQS は次のような要件のユースケースに推奨されます。
- メッセージングセマンティクス(メッセージレベルの確認/失敗など)および可視性タイムアウト。例えば、作業項目のキューがあり、各項目の正常な完了を個別に追跡するものとします。Amazon SQS は確認/失敗を追跡するので、アプリケーションでは永続的なチェックポイント/カーソルを保持する必要がありません。Amazon SQS は、確認されたメッセージを削除し、失敗したメッセージは設定されている可視性タイムアウトの後で再配信します。
- 個別メッセージの遅延。例えば、ジョブキューがあり、遅延のある個別のジョブをスケジュールする必要があるものとします。Amazon SQS では、個々のメッセージに最大で 15 分の遅延を設定できます。
- 読み取り時における同時性/スループットの動的な拡張。例えば、作業キューがあり、バックログが解消されるまでリーダーを追加する必要があるものとします。Amazon Kinesis では、十分な数のシャードに拡張できます(ただし、前もって十分なシャードを準備しておく必要があります)。
- Amazon SQS の機能を利用した透過的な拡張。例えば、負荷の一時的な上昇や事業の自然な成長の結果として、バッファ要求や負荷が変化するような場合です。各バッファ要求は個別に処理できるので、ユーザーがプロビジョニングを指示しなくても、Amazon SQS は透過的に拡張して負荷を処理できます。
シャードとは、Amazon Kinesis ストリームの基本的なスループットの単位です。1 シャードは、1 MB/秒のデータ入力と 2 MB/秒のデータ出力の能力を提供します。1 つのシャードは 1 秒当たり最大 1,000 件の PUT レコードをサポートできます。ストリームを作成するときに、必要なシャードの数を指定します。たとえば、2 シャードのストリームを作成できます。このストリームは、データ入力のスループットが 2 MB/秒、データ出力のスループットが 4 MB/秒で、1 秒間に最大 2,000 件の PUT レコードに対応できます。リシャーディングにより、データスループットの変化に合わせて Amazon Kinesis ストリームのシャードを動的に追加または削除できます。
レコードとは、Amazon Kinesis ストリームに保存されるデータの単位です。レコードは、シーケンス番号、パーティションキー、データ BLOB で構成されています。データ BLOB はデータ生成元がストリームに追加する、処理対象のデータです。データ BLOB(Base64 エンコーディング前のデータペイロード)の最大サイズは、1 メガバイト (MB) です。
パーティションキーは、レコードを分離してストリームの異なるシャードにルーティングするために使用されます。パーティションキーは、データを Amazon Kinesis ストリームに追加するときにデータ生成元によって指定されます。たとえば、2 つのシャード(シャード 1 とシャード 2)で構成されるストリームがあるものとします。2 つのパーティションキー(キー A とキー B)を使用し、キー A のレコードはすべてシャード 1 に追加され、キー B のレコードはすべてシャード 2 に追加されるように、データ生成元を設定できます。
シーケンス番号とは、各レコードの一意の識別子です。データ生成元が PutRecord または PutRecords オペレーションを呼び出してデータを Amazon Kinesis ストリームに追加すると、Amazon Kinesis によってシーケンス番号が割り当てられます。同じパーティションキーのシーケンス番号は一般的に、時間の経過とともに大きくなります。PutRecord または PutRecords リクエスト間の期間が長くなるほど、シーケンス番号は大きくなります。
Q: Amazon Kinesis ストリームの作成方法を教えてください。
アマゾン ウェブ サービスにサインアップした後、Amazon Kinesis Management Console または Amazon Kinesis CreateStream オペレーションを使用して Amazon Kinesis ストリームを作成できます。
Q: Amazon Kinesis ストリームのスループットはどのように決定されますか?
Amazon Kinesis ストリームのスループットは、ストリーム内のシャードの数によって決まります。次に、ストリームで必要なシャードの数の初期値を推定する手順を説明します。リシャーディングによってストリーム内のシャードの数を動的に調整できます。
- ストリームに書き込まれるレコードの平均サイズをキロバイト(KB)単位で推定し、最も近い KB 値に切り上げます。(average_data_size_in_KB)
- 1 秒当たりにストリームに書き込まれるレコード数を推定します。(number_of_records_per_second)
- ストリームからのデータを同時に独立して使用する Amazon Kinesis アプリケーションの数を決定します。(number_of_consumers)
- 入力書き込み帯域幅の KB 数を計算します(incoming_write_bandwidth_in_KB)。これは、average_data_size_in_KB と number_of_records_per_seconds を掛け合わせた値です。
- 出力読み取り帯域幅の KB 数を計算します(outgoing_read_bandwidth_in_KB)。これは、incoming_write_bandwidth_in_KB と number_of_consumers を掛け合わせた値です。
その後、次の式を使用してストリームで必要な初期シャード数(number_of_shards)を計算できます。
number_of_shards = max (incoming_write_bandwidth_in_KB/1000, outgoing_read_bandwidth_in_KB/2000)
Q: Amazon Kinesis ストリームに要求できる最小スループットはどれくらいですか?
Amazon Kinesis ストリームのスループットはシャードの単位で増減します。ストリームの最小スループットは 1 シャードであり、1 MB/秒のデータ入力と 2 MB/秒のデータ出力を提供します。
Q: Amazon Kinesis ストリームに要求できる最大スループットはどれくらいですか?
Amazon Kinesis ストリームのスループットは、制限なしにスケールするように設計されています。デフォルトでは、各アカウントはリージョンごとに 10 シャードをプロビジョニングできます。「Amazon Kinesis 制限」フォームを使用して、単一リージョンで 10 より多くのシャードを要求できます。
Q: レコードのサイズは Amazon Kinesis ストリームのスループットにどのように影響しますか?
シャードは、1 MB/秒のデータ入力速度を提供し、1 秒間に最大 1,000 件の PUT レコードをサポートします。したがって、レコードのサイズが 1 KB より小さい場合、シャードの実際のデータ入力速度は 1 MB/秒より小さくなり、1 秒間の PUT レコードの最大数によって制限されます。
Q: Amazon Kinesis ストリームにデータを追加するにはどうすればよいですか?
PutRecord と PutRecords オペレーション、または Amazon Kinesis Producer Library (KPL) 経由で、Amazon Kinesis ストリームにデータを追加できます。
Q: PutRecord と PutRecords の違いは何ですか?
PutRecord オペレーションは、1 度の API 呼び出しで単一のデータレコードを許可し、PutRecords オペレーションは、1 度の API 呼び出しで複数のデータレコードを許可します。PutRecord および PutRecords オペレーションの詳細については、PutRecord および PutRecords をご覧ください。
Q: Amazon Kinesis Producer Library (KPL) とは何ですか?
Amazon Kinesis Producer Library (KPL) とは、Amazon Kinesis ストリームにデータを格納するのに役立つ、使いやすく、高度な設定が可能なライブラリです。KPL は、最低限のクライアントリソースを使用して、高いプロデューサースループットを素早く実現できる、シンプルで非同期の、信頼のおけるインターフェイスを提供します。
Q: Amazon Kinesis API にアクセスするにはどのようなプログラミング言語とプラットフォームを使用できますか?
Amazon Kinesis API はアマゾン ウェブ サービス SDK で使用できます。アマゾン ウェブ サービス SDK 用のプログラミング言語またはプラットフォームのリストについては、「Tools for Amazon Web Services」を参照してください。
Q: Amazon Kinesis Producer Library (KPL) では、どのプログラミング言語を使用できますか?
Amazon Kinesis Producer Library (KPL) のコアは、C++ モジュールで構築されており、最近の C++ コンパイラを使用して、任意のプラットフォームで動作するようにコンパイルできます。ライブラリは、現在 Java インターフェイスで利用できます。他のプログラミング言語でのサポートも予定されています。
Q: データ生成元が Amazon Kinesis ストリームにデータを追加している間にストリームの容量制限を超えた場合はどうなりますか?
Amazon Kinesis ストリームの容量制限は、ストリーム内のシャードの数によって決定します。データスループットまたは PUT レコードの数によって、この制限を超える可能性があります。容量制限を超えている間、PUT データの呼び出しは ProvisionedThroughputExceeded 例外で拒否されます。このような状況がストリームの入力データ速度の一時的な上昇によるものである場合は、データ生成元が再試行することによって最終的に要求は完了します。一方、ストリームの入力データ速度が高い状態が継続している場合は、ストリーム内のシャードの数を増やして、PUT データの呼び出しが常に成功するのに十分な容量を提供する必要があります。いずれの場合も、Amazon CloudWatch メトリックスを使用することで、ストリームの入力データ速度の変化および ProvisionedThroughputExceeded 例外の発生を把握できます。
Q: PutRecord または PutRecords の呼び出しの間の Amazon Kinesis ストリームのデータスループットに対してカウントされるデータは何ですか?
データ BLOB、パーティションキー、およびストリーム名が、PutRecord または PutRecords の呼び出しに必要なパラメータです。データ BLOB のサイズ(Base64 エンコーディングの前に)、およびパーティションキーのサイズが、Amazon Kinesis ストリームのデータスループットに対してカウントされます。これは、ストリーム内のシャードの数によって決まります。
Q: Amazon Kinesis アプリケーションとは何ですか?
Amazon Kinesis アプリケーションとは、Amazon Kinesis ストリームからのデータを読み取って処理するデータコンシューマです。アプリケーションは、Amazon Kinesis API または Amazon Kinesis クライアントライブラリ(KCL)を使用して構築できます。
Q: Amazon Kinesis クライアントライブラリ(KCL)とは何ですか?
Java/Python/Ruby/Node.js/.NET の Amazon Kinesis クライアントライブラリ (KCL) はビルド済みのライブラリであり、これを使用すると Amazon Kinesis ストリームからデータを読み取って処理する Amazon Kinesis アプリケーションを簡単に作成できます。KCL は、ストリームボリュームの変化への適応、ストリーミングデータの負荷分散、分散サービスの調整、データ処理の耐障害性などの複雑な問題に対応します。KCL を利用することで、アプリケーションの構築中にビジネスロジックに集中できます。
Q: Amazon Kinesis コネクタライブラリとは何ですか?
Amazon Kinesis コネクタライブラリとはビルド済みのライブラリであり、これを使用すると Amazon Kinesis を他の AWS サービスやサードパーティ製ツールと簡単に統合できるようになります。Java/Python/Ruby/Node.js/.NET の Amazon Kinesis クライアントライブラリ (KCL) は、Amazon Kinesis コネクタライブラリを使用するために必要です。このライブラリの現在のバージョンでは、Amazon DynamoDB、Amazon Redshift、Amazon S3、Elasticsearch に対するコネクタが提供されています。またライブラリには、各タイプのサンプルコネクタと、サンプルを実行するための Apache Ant ビルドファイルも含まれています。
Q: Amazon Kinesis Storm Spout とは何ですか?
Amazon Kinesis Storm Spout とはビルド済みのライブラリであり、Amazon Kinesis と Apache Storm を簡単に統合できます。Amazon Kinesis Storm Spout の現在のバージョンは、Amazon Kinesis ストリームからデータをフェッチし、そのデータをタプルとして送出します。信頼性が高くスケーラブルなストリームキャプチャ、ストレージ、および再生サービスとして Amazon Kinesis を活用するには、Spout を Storm トポロジに追加します。
Q: Amazon Kinesis クライアントライブラリ(KCL)、Amazon Kinesis コネクタライブラリ、Amazon Kinesis Storm Spout は、どのようなプログラミング言語で使用できますか?
Amazon Kinesis クライアントライブラリ (KCL) は、現在 Java、Python、Ruby、Node.js、.NET で利用可能です。現在、Amazon Kinesis コネクタライブラリ、Amazon Kinesis Storm Spout は Java で使用できます。他のプログラミング言語でのサポートも予定されています。
Q: Amazon Kinesis アプリケーションには Amazon Kinesis クライアントライブラリ(KCL)を使用する必要があるのですか?
いいえ。Amazon Kinesis API を使用して Amazon Kinesis アプリケーションを構築することもできます。ただし、可能な場合は Java/Python/Ruby/Node.js/.NET の Amazon Kinesis クライアントライブラリ (KCL) を使用することをお勧めします。KCL は分散ストリーム処理に関係する作業量の多いタスクを実行し、Amazon Kinesis アプリケーション開発の生産性を向上させるからです。
Q: Amazon Kinesis クライアントライブラリ (KCL) と Amazon Kinesis アプリケーションとの交信はどのように行われますか?
Java/Python/Ruby/Node.js/.NET の Amazon Kinesis クライアントライブラリ (KCL) が、Amazon Kinesis と Amazon Kinesis アプリケーションの間の仲介役として機能します。KCL は IRecordProcessor インターフェイスを使用してアプリケーションと交信します。アプリケーションでこのインターフェイスを実装すると、KCL はこのインターフェイスのメソッドを使用してアプリケーションのコードを呼び出します。
KCL を使用して Amazon Kinesis アプリケーションを構築する方法の詳細については、「Developing Consumer Applications for Amazon Kinesis Using the 」をご覧ください。
Q: Amazon Kinesis クライアントライブラリ(KCL)によって生成されるワーカーおよびレコードプロセッサとは何ですか?
Amazon Kinesis アプリケーションは複数のアプリケーションインスタンスを持つことができ、ワーカーは各アプリケーションインスタンスに対応する処理ユニットです。レコードプロセッサは、Amazon Kinesis ストリームのシャードからのデータを処理する処理ユニットです。1 つのワーカーは 1 つまたは複数のレコードプロセッサに対応します。1 つのレコードプロセッサは 1 つのシャードに対応し、そのシャードからのデータレコードを処理します。
起動時に、アプリケーションは Java/Python/Ruby/Node.js/.NET の Amazon Kinesis クライアントライブラリ (KCL) を呼び出してワーカーをインスタンス化します。この呼び出しは、アプリケーションの設定情報(ストリーム名や AWS の認証情報など)を KCL に提供します。また、この呼び出しは IRecordProcessorFactory の実装に対してリファレンスを渡します。KCL はこのファクトリを使用して、ストリームからのデータを処理するために必要なときに、新しいレコードプロセッサを作成します。KCL はこれらのレコードプロセッサと IRecordProcessor を使用して交信します。
Q: Amazon Kinesis クライアントライブラリ(KCL)は Amazon Kinesis アプリケーションによって処理されるデータレコードをどのようにして追跡するのですか?
Java/Python/Ruby/Node.js/.NET の Amazon Kinesis クライアントライブラリ (KCL) は、各 Amazon Kinesis アプリケーションの Amazon DynamoDB テーブルを自動的に作成し、リシャーディングイベントやシーケンス番号チェックポイントなどの状態情報を追跡および管理します。DynamoDB テーブルはアプリケーションと同じ名前なので、アプリケーションの名前が同じリージョン内の同じアカウントにある既存の DynamoDB テーブルと競合していないことを確認する必要があります。
同じアプリケーション名と関連付けられたすべてのワーカーは、連係して同じ Amazon Kinesis ストリームを処理していると見なされます。同じアプリケーションコードの追加のインスタンスを実行するときに、アプリケーション名が異なる場合、KCL は 2 番目のインスタンスを、同じストリームを処理するまったく別のアプリケーションと見なします。
Amazon Kinesis に関するコストに加えて、Amazon DynamoDB テーブルに関するコストもアカウントに請求されることに注意してください。
KCL がアプリケーションの状態を追跡する方法の詳細については、「Tracking Amazon Kinesis Application state」を参照してください。
Q: Amazon Kinesis クライアントライブラリ(KCL)を使用して Amazon Kinesis アプリケーションの処理能力を自動的にスケールアップする方法を教えてください。
Amazon Kinesis アプリケーションの複数のインスタンスを作成し、これらのアプリケーションインスタンスを Auto Scaling グループの一部である Amazon EC2 インスタンスのセットで実行します。処理の需要が増加すると、アプリケーションインスタンスを実行する Amazon EC2 インスタンスが自動的にインスタンス化されます。Java/Python/Ruby/Node.js/.NET の Amazon Kinesis クライアントライブラリ (KCL) は、この新しいインスタンスのワーカーを生成し、レコードプロセッサを過負荷になった既存のインスタンスからこの新しいインスタンスに自動的に移動します。
Q: Amazon Kinesis ストリーム内にデータがあるのに GetRecords の呼び出しが空の結果を返すのはなぜですか?
可能性のある理由の 1 つは、現在のシャード反復子によって指定されている位置にレコードがないことです。このようなことは、シャード反復子タイプとして TRIM_HORIZON を使用している場合であっても発生する可能性があります。Amazon Kinesis ストリームはデータの連続したストリームを表します。ループ内で GetRecords オペレーションを呼び出す必要があります。そうすれば、データレコードが格納されている位置にシャード反復子が進んだときに、データレコードが返されます。
Q: Amazon Kinesis アプリケーションがストリームからデータを読み取っている間に Amazon Kinesis ストリームの容量制限を超えた場合はどうなりますか?
Amazon Kinesis ストリームの容量制限は、ストリーム内のシャードの数によって決定します。データスループットまたは READ データの呼び出しの数によって、この制限を超える可能性があります。容量制限を超えている間、READ データの呼び出しは ProvisionedThroughputExceeded 例外で拒否されます。このような状況がストリームの出力データ速度の一時的な上昇によるものである場合は、Amazon Kinesis アプリケーションによりが再試行され、最終的に要求は完了します。一方、ストリームの出力データ速度が高い状態が継続している場合は、ストリーム内のシャードの数を増やして、READ データの呼び出しが常に成功するのに十分な容量を提供する必要があります。いずれの場合も、Amazon CloudWatch メトリックスを使用することで、ストリームの出力データ速度の変化および ProvisionedThroughputExceeded 例外の発生を把握できます。
Q: Amazon Kinesis ストリームのスループットを変更する方法を教えてください。
ストリーム内のシャードの数を調整することによって(リシャーディング)、Amazon Kinesis ストリームのスループットを変更できます。リシャーディングには、シャードの分割と結合という 2 種類のオペレーションがあります。シャードの分割では、1 つのシャードが 2 つのシャードに分割されて、ストリームのスループットが上がります。シャードの結合では、2 つのシャードが 1 つのシャードに結合されて、ストリームのスループットが下がります。Amazon Kinesis リシャーディングの詳細については、「Resharding a Stream」を参照してください。
Q: Amazon Kinesis ストリームのスループットの変更は、どれくらいの頻度で実行でき、どれくらい時間がかかりますか?
シャードの分割や結合などのリシャーディングオペレーションにかかる時間は、数秒間です。一度に実行できるリシャーディングオペレーションは 1 つだけです。したがって、シャードが 1 つだけの Amazon Kinesis ストリームの場合、シャードを分割してスループットを 2 倍にするには数秒かかります。1000 シャードのストリームの場合、1000 個のシャードを分割してスループットを 2 倍にするには 30 K 秒(8.3 時間)かかります。スループットの追加が必要になる場合は、早めにストリームのスループットを増やしておくことをお勧めします。
Q: リシャーディングによって Amazon Kinesis ストリームのスループットを変更している間も、Amazon Kinesis ストリームを使用できますか?
はい。リシャーディングを実行してストリームのスループットを変更している間も、Amazon Kinesis ストリームへのデータの追加およびストリームからのデータの読み取りを続けることができます。
Q: Amazon Kinesis ストリームの動作とパフォーマンスをモニタリングするにはどうすればいいですか?
Amazon Kinesis Management Console には、Amazon Kinesis ストリームのデータの入力および出力のスループットなど、動作とパフォーマンスの重要なメトリックスが表示されます。また Amazon Kinesis は Amazon CloudWatch とも統合できるため、Amazon Kinesis ストリームの CloudWatch メトリックスを収集、表示、分析することができます。Amazon Kinesis メトリックスの詳細については、「Monitoring Amazon Kinesis with Amazon CloudWatch」を参照してください。
Q: Amazon Kinesis ストリームへのアクセスを管理および制御する方法を教えてください。
Amazon Kinesis は AWS Identity and Access Management(IAM)と統合できます。IAM は、ユーザー用の AWS サービスとリソースへのアクセスを安全に制御できるサービスです。たとえば、特定のユーザーまたはグループだけに Amazon Kinesis ストリームへのデータの追加を許可するポリシーを作成できます。ストリームのアクセスの管理と制御に関する詳細については、「IAM により Amazon Kinesis リソースへのアクセスを制御する」をご覧ください。
Q: セキュリティの分析と動作のトラブルシューティングのために Amazon Kinesis ストリームに対して行われた API 呼び出しのログを記録する方法を教えてください。
Amazon Kinesis は、ユーザーのアカウントに対する AWS API の呼び出しを記録してログファイルを提供するサービスである Amazon CloudTrail と統合できます。API 呼び出しのログおよびサポートされる Amazon Kinesis API のリストの詳細については、「AWS CloudTrail を使用した Kinesis API 呼び出しのログ記録」を参照してください。
Q: Amazon Kinesis ストリームおよびストリームに関するコストを効率よく管理する方法を教えてください。
Amazon Kinesis では、リソースとコストの管理が容易になるように Amazon Kinesis ストリームにタグを付けることができます。タグは、AWS リソースの整理に役立つ、キーと値のペアとして表されるユーザー定義のラベルです。たとえば、コストセンター別にストリームをタグ付けることにより、コストセンターに基づいて Amazon Kinesis のコストを分類および追跡できます。Amazon Kinesis のタグ付けの詳細については、「Tagging Your Amazon Kinesis Streams」を参照してください。
Q: Amazon Kinesis は AWS 無料利用枠の対象ですか?
いいえ。現在、Amazon Kinesis は AWS 無料利用枠の対象になっていません。AWS 無料利用枠は、AWS サービスのグループの試用を無料で提供するプログラムです。AWS 無料利用枠の詳細については、「AWS Free Tier」を参照してください。
Q: Amazon Kinesis の費用はどれくらいですか?
Amazon Kinesis ではシンプルな従量制の価格が使用されています。前払い料金や最低料金はなく、使用したリソースに対してのみお支払いいただきます。Amazon Kinesis の費用には 2 つの要素があります。
- Amazon Kinesis ストリーム内のシャードの数によって決まる、時間あたりのシャード費用。
- データ生成元がストリームに追加する 25 KB のペイロードユニット数によって決まる、PUT ペイロードユニットの費用。
Amazon Kinesis の費用の詳細については、Amazon Kinesis の料金を参照してください。
Q: PutRecord オペレーションの代わりに PutRecords オペレーションを使用することで、PUT ペイロードユニットの費用は変わりますか?
PUT ペイロードユニットの料金は、Amazon Kinesis ストリームに追加された 25 KB のペイロードユニット数に基づき計算されます。PUT ペイロードユニットの費用は、PutRecords オペレーションでも、PutRecord オペレーションでも同じです。
Q: Amazon Kinesis の費用以外に、Amazon Kinesis を使用するときに発生する費用はありますか?
Amazon Kinesis アプリケーションを実行するために Amazon EC2 を使用する場合は、Amazon Kinesis の費用に加えて Amazon EC2 リソースの費用が請求されます。
Amazon Kinesis クライアントライブラリ(KCL)は、レコード処理の状態情報を追跡するために Amazon DynamoDB テーブルを使用します。KCL を Amazon Kinesis アプリケーションに使用する場合、Amazon Kinesis の費用に加えて Amazon DynamoDB リソースの費用が請求されます。
これら 2 つは一般的なケースですがすべてではないことに注意してください。