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

2022.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