KPL を使って Kinesis データストリームにデータレコードを配置するにはどうすればよいですか?

最終更新日: 2021 年 3 月 11 日

Amazon Kinesis Producer Library (KPL) を使って、データレコードの書き込みと Kinesis データストリームへの配置を行いたいと考えています。どうすればできますか?

簡単な説明

KPL を使用して Kinesis データストリームにレコードを配置するには、次の要件を満たす必要があります。

  • 実行中の Amazon Elastic Compute Cloud (Amazon EC2) Linux インスタンスがある。
  • インスタンスに AWS Identity and Access Management (IAM) ロールがアタッチされている。
  • インスタンスの IAM ロールにアタッチされ KinesisFullAccess ポリシーが必要です。

解決方法

KPL を使用して Kinesis データストリームにレコードを配置する手順は次のとおりです。

1.    Linux インスタンスに接続します

2.    OpenJDK 8 デベロッパーパッケージの最新バージョンをインストールします。

sudo yum install java-1.8.0-openjdk-devel

3.    Java がインストールされていることを確認します。

java -version

次のような出力が表示されます。

java version "1.7.0_181"
OpenJDK Runtime Environment (amzn-2.6.14.8.80.amzn1-x86_64 u181-b00)
OpenJDK 64-Bit Server VM (build 24.181-b00, mixed mode)

4.    次のコマンドを実行して、Java 1.8 をデフォルトの java および javac プロバイダーとして設定します。

sudo /usr/sbin/alternatives --config java 
sudo /usr/sbin/alternatives --config javac

5.    Apache Maven パッケージが入ったリポジトリを追加します。

sudo wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo

6.    Maven パッケージのバージョン番号を設定します。

sudo sed -i s/\$releasever/6/g /etc/yum.repos.d/epel-apache-maven.repo

7.    yum を使って Maven をインストールします。

sudo yum install -y apache-maven

8.    Maven が正しくインストールされていることを確認します。

mvn -version

次のような出力が表示されます。

Apache Maven 3.5.2 (138edd61fd100ec658bfa2d307c43b76940a5d7d; 2017-10-18T07:58:13Z)
Maven home: /usr/share/apache-maven
Java version: 1.7.0_181, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.181.x86_64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "4.14.33-51.37.amzn1.x86_64", arch: "amd64", family: "unix"

9.    git をインストールした上で、「Amazon Web Services - Labs」から KPL をダウンロードします。

sudo yum install git
git clone https://github.com/awslabs/amazon-kinesis-producer

10.    amazon-kinesis-producer/java/amazon-kinesis-producer-sample/ ディレクトリを開き、ファイルを一覧表示します。

cd amazon-kinesis-producer/java/amazon-kinesis-producer-sample/
ls
default_config.properties  pom.xml  README.md  src  target

11.    次のようなコマンドを実行して、Kinesis データストリームを作成します。

aws kinesis create-stream --stream-name kinesis-kpl-demo --shard-count 2

必要なシャード数の詳細については、リシャーディング、拡張、並列処理をご参照ください。

12.    list-streams を実行して、ストリームが作成されたことを確認します。

aws kinesis list-streams

13.    「Amazon Web Services - Labs」の GitHub リポジトリで SampleProducer.java ファイルを開き、次のフィールドを変更します。
public static final String STREAM_NAME_DEFAULT の部分は、事前に作成した Kinesis データストリームの名前で置き換えます。
public static final String REGION_DEFAULT の部分は、お客様のリージョン名で置き換えます。

例:

cd src/com/amazonaws/services/kinesis/producer/sample
vi SampleProducerConfig.java

public static final String STREAM_NAME_DEFAULT = "kinesis-kpl-demo";
public static final String REGION_DEFAULT = "us-east-1";

14.    amazon-kinesis-producer-sample ディレクトリで次のコマンドを実行し、ディレクトリの依存関係全体のダウンロードを、Maven に許可します。

mvn clean package

15.    amazon-kinesis-producer-sample ディレクトリで次のコマンドを実行し、プロデューサーを起動し、Kinesis データストリームにデータを送信します。

mvn exec:java -Dexec.mainClass="com.amazonaws.services.kinesis.producer.sample.SampleProducer"

16.    Kinesis コンソール の [Monitoring ] タブに表示される [Incoming Data(Count)] グラフで、ストリームに送信されたレコードの数を確認します。

注: 表示されるレコード数は、データストリームに送信された実際のレコード数より少なくなる場合があります。KPL が「集計」を実行した場合、表示されるレコード数は減少します。


この記事はお役に立ちましたか?


請求に関するサポートまたは技術サポートが必要ですか?