Kinesis Data Generatorを使用してKinesis Data Streamsにデータを送信してみた。

Kinesis Data Generatorを使用してKinesis Data Streamsにデータを送信してみた。

Clock Icon2022.06.18

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

概要

Kinesis Data Generator(KDG)は、テストデータの連続したストリームを生成できます。Kinesis Data Generatorは、テストデータをKinesis Data Streams または Kinesis Firehose Delivery Streamに送信できます。KDGは毎秒数千のレコードを連続して送信することができます。

この記事では、Kinesis Data Generatorを使用してKinesis Data Streamsにデータを送信してみました。その後、データは処理のためにLambdaに送信されます。データレコードがストリームに書き込まれると、Lambda Functionが呼び出され、データが処理されます。

 

 

やってみた

IAM ロールの作成

  • この設定でIAMロールを作成しておきます。
    • 信頼されたエンティティの種類 : AWS のサービス
    • ユースケース : AWS Lambda
    • ポリシー  :  AWSLambdaKinesisExecutionRole
    • ロールの名前 :  Lambda-Kinesis

 

Kinesis Data Streamの作成

  • Amazon Kinesisコンソールで、Kinesis Data Streamsを選択して、Create data streamをクリックしておきます。
  • 次の設定でData Streamを作成しておきます。
    • Data stream capacity : Provisioned
    • Provisioned shards : 1

 

 

Lambda Functionの作成

  • AWS Lambdaコンソールで、Create functionを選択しておきます。
  • 関数名を入力して、RuntineでNode.jsを選択して、前の手順で作成したIAMロールを選択して、関数を作成しておきます。

 

 

  • 機能コードを次のコードに置き換えます。必要に応じてコードを変更できます。
exports.handler = function(event, context) {
    event.Records.forEach(function(record) {
        var data = Buffer.from(record.kinesis.data, 'base64').toString('ascii');
        console.log('Decoded data:', data);
    });
};

 

  • 作成したLambda Functionを開き、[Add trigger]をクリックしておきます。

 

  • 次の設定でトリガーを作成しておきます。
    • Kinesis stream : 前の手順で作成したKinesis Streamを選択しておきます。
    • Batch Size: 100
    • Starting Position: Latest

 

 

Kinesis Data Generatorの作成

 

 

  • これによりCloudFormationスタックが作成され、何も変更せずに[Next]をクリックしておきます。

 

  • ユーザー名とパスワードを入力して、スタックを作成しておきます。

 

  • スタック出力からリンクをクリックしておきます。

 

  • ユーザー名とパスワードを入力してサインインしておきます。

 

Kinesis Data Generatorを使用してテストデータを送信する

  • Kinesis Data Generatorにサインインした後、次の設定でテストデータを送信しておきます。
    • Region : us-west-2
    • Stream : 以前に作成したストリームを選択します。
    • テンプレートを入力してデータを送信します。

 

 

  • データレコードが追加されると、Lambda関数が呼び出されます。この関数は、レコードからデータをデコードしてログに記録します。CloudWatchログでアウトプットを見ることができます。

 

 

まとめ

Kinesis Data Generatorを使用してKinesis Data Streamsにデータを送信してみました。Kinesis Data GeneratorからKinesis Firehose Delivery Streamにテストデータを送信することもできます。

Reference: 

Kinesis Data Generator

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.