Amazon Kinesis Data Streams
開発者ガイド

データストリームの作成および更新

Amazon Kinesis Data Streams は、大量のデータをリアルタイムで取り込み、そのデータを永続的に保存して、消費できるようにします。Kinesis Data Streams によって保存されるデータの単位は、データレコードです。データストリームは、データレコードのグループを表します。データストリームのデータレコードはシャードに配分されます。

シャードには、ストリーム内のデータレコードのシーケンスがあります。ストリームを作成するときに、ストリームのシャード数を指定します。各シャードは、読み取りは最大 1 秒あたり 5 件のトランザクション、データ読み取りの最大合計レートは 1 秒あたり 2 MBをサポートできます。また、シャードは、書き込みについては最大 1 秒あたり 1,000 レコード、データの最大書き込み合計レートは 1 秒あたり 1 MB (パーティションキーを含む) もサポートしています。ストリームの総容量はシャードの容量の合計です。必要に応じて、ストリームのシャードの数を増減することができます。ただし、シャード単位で請求されます。

プロデューサーはシャードにデータレコードを送信し、コンシューマーはシャードからデータレコードを取得します。

Kinesis Data Stream の初期サイズを決定する

ストリームの作成前に、ストリームの初期サイズを決定する必要があります。ストリームを作成すると、AWS マネジメントコンソール または「UpdateShardCount」API を使用して、シャード容量を動的に増やしたり減らしたりできます。ストリームからデータを消費する Kinesis Data Streams アプリケーションがある間は、更新することができます。

ストリームの初期サイズを決定するには、以下の入力値が必要です。

  • ストリームに書き込まれるデータレコードの平均サイズ(近似の KB 単位まで切り上げられます)。つまり、データサイズ(average_data_size_in_KB)です。

  • 1 秒間にストリームで読み書きされるデータレコードの数(records_per_second)です。

  • ストリームから同時にかつ独立してデータを消費する Kinesis Data Streams アプリケーション、つまりコンシューマーの数 (number_of_consumers) です。

  • KB 単位での受信書き込み帯域幅 (incoming_write_bandwidth_in_KB)。average_data_size_in_KBrecords_per_second に乗算した値に等しくなります。

  • KB 単位の送信読み取り帯域幅 (outgoing_read_bandwidth_in_KB)。incoming_write_bandwidth_in_KBnumber_of_consumers に乗算した値に等しくなります。

ストリームに必要なシャードの初期数 (number_of_shards) を計算するには、入力値を以下の式にあてはめます。

number_of_shards = max(incoming_write_bandwidth_in_KB/1000, outgoing_read_bandwidth_in_KB/2000)

ストリームの作成

ストリームは、Kinesis Data Streams コンソール、Kinesis Data Streams API、または AWS Command Line Interface (AWS CLI) を使用して作成できます。

コンソールを使用してデータストリームを作成するには

  1. AWS マネジメントコンソール にサインインし、https://console.aws.amazon.com/kinesis にある Kinesis コンソールを開きます。

  2. ナビゲーションバーで、リージョンセレクターを展開し、リージョンを選択します。

  3. [データストリームの作成] を選択します。

  4. [Create Kinesis stream (Kinesis ストリームの作成)] ページで、ストリームの名前と必要なシャードの数を入力し、[Create Kinesis stream (Kinesis ストリームの作成)] をクリックします。

    ストリームの作成中、[Kinesis streams (Kinesis ストリーム)] ページのストリームの [Status (ステータス)] は、[Creating] です。ストリームを使用する準備ができると、[Status (ステータス)] は [Active] に変わります。

  5. ストリームの名前を選択します。[Stream Details] ページには、ストリーム設定の概要とモニタリング情報が表示されます。

Kinesis Data Streams API を使用してストリームを作成するには

  • Kinesis Data Streams API を使用したストリームの作成については、「ストリームの作成」を参照してください。

AWS CLI を使用してストリームを作成するには

  • AWS CLI を使用したストリームの作成については、create-stream コマンドを参照してください。

ストリームの更新

Kinesis Data Streams コンソール、Kinesis Data Streams API、または AWS CLI を使用してストリームの詳細を更新できます。

注記

既存のストリーム、または最近作成したストリームに対して、サーバー側の暗号化を有効にすることができます。

コンソールを使用してデータストリームを更新するには

  1. https://console.aws.amazon.com/kinesis/ にある Amazon Kinesis コンソールを開きます。

  2. ナビゲーションバーで、リージョンセレクターを展開し、リージョンを選択します。

  3. リストのストリームの名前を選択します。[Stream Details] ページには、ストリーム設定の概要とモニタリング情報が表示されます。

  4. シャード数を編集するには、[Shards] セクションの [Edit] を選択し、新しいシャード数を入力します。

  5. データレコードのサーバー側の暗号化を有効にするには、[Server-side encryption] セクションの [Edit] を選択します。暗号化のマスターキーとして使用する KMS キーを選択するか、Kinesis によって管理されるデフォルトのマスターキー aws/kinesis の使用を選択します。ストリームの暗号化を有効にし、独自の AWS KMS マスターキーを使用する場合は、プロデューサーおよびコンシューマーアプリケーションに、使用した AWS KMS マスターキーへのアクセス権限があることを確認します。ユーザーが生成した AWS KMS キーにアクセスするためのアクセス許可をアプリケーションに割り当てる方法については、「ユーザー生成 KMS マスターキーを使用するためのアクセス許可」を参照してください。

  6. データ保持期間を編集するには、[Data retention period] セクションの [Edit] を選択し、新しいデータ保持期間を入力します。

  7. アカウントでカスタムメトリクスを有効にした場合は、[Shard level metrics] セクションの [Edit] を選択し、ストリームのメトリクスを指定します。詳細については、「Amazon CloudWatch による Amazon Kinesis Data Streams サービスのモニタリング」を参照してください。

API を使用したストリームの更新

API を使用してストリームの詳細を更新するには、次の方法を参照してください。

AWS CLI を使用したストリームの更新

AWS CLI を使用したストリームの更新については、「Kinesis CLI リファレンス」を参照してください。