KPL을 사용하여 Kinesis 데이터 스트림에 데이터 레코드를 삽입하려면 어떻게 해야 하나요?

3분 분량
0

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을 기본 javajavac 공급자로 설정합니다.

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 디렉터리에서 다음 명령을 실행하여 Producer를 실행하고 Kinesis 데이터 스트림으로 데이터를 전송합니다.

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

16.    Kinesis 콘솔의 [모니터링] 탭에서 [수신 데이터(개수)] 그래프를 확인하여 스트림으로 전송된 레코드의 수를 확인합니다.

참고: 레코드 개수가 데이터 스트림으로 전송된 레코드의 수보다 적을 수도 있습니다. KPL은 집계를 사용하기 때문에 레코드 개수가 적게 나타날 수 있습니다.


관련 정보

KPL을 사용하여 Kinesis Data Stream에 쓰기

AWS 공식
AWS 공식업데이트됨 4년 전