[typescript] 타입스크립트와 AWS Kinesis를 사용하여 스트리밍 데이터 처리 구현

목차

개요

이번 포스트에서는 타입스크립트AWS Kinesis를 사용하여 스트리밍 데이터 처리를 구현하는 방법을 다룹니다. 스트리밍 데이터는 대량의 데이터가 연속적으로 생성되고 처리되는 상황에서 유용하며, AWS Kinesis는 데이터를 수집, 저장, 처리할 수 있는 서비스입니다.

타입스크립트를 사용한 AWS Kinesis 프로듀서 구현

타입스크립트를 사용하여 AWS Kinesis 프로듀서를 구현하는 방법은 다음과 같습니다.

먼저, AWS SDK를 사용하여 Kinesis 클라이언트를 생성하고 데이터를 스트림에 전송하는 함수를 작성합니다.

import { KinesisClient, PutRecordCommand, PutRecordCommandInput } from "@aws-sdk/client-kinesis";

const putDataToKinesisStream = async (streamName: string, partitionKey: string, data: string) => {
    const kinesisClient = new KinesisClient({ region: "your-region" });
    const params: PutRecordCommandInput = {
        StreamName: streamName,
        Data: Buffer.from(data),
        PartitionKey: partitionKey,
    };
    const command = new PutRecordCommand(params);

    try {
        const response = await kinesisClient.send(command);
        console.log("Data sent to Kinesis stream:", response);
    } catch (error) {
        console.error("Error sending data to Kinesis:", error);
    }
};

// Usage
putDataToKinesisStream("your-stream-name", "partition-key-1", "Sample streaming data");

위 코드에서 putDataToKinesisStream 함수는 스트림 이름, 파티션 키 및 전송할 데이터를 받아서 AWS Kinesis로 데이터를 전송합니다.

타입스크립트를 사용한 AWS Kinesis 컨슈머 구현

이어서, 타입스크립트를 사용하여 AWS Kinesis 컨슈머를 구현하는 방법을 살펴보겠습니다.

Kinesis 클라이언트를 사용하여 데이터를 수신하고 처리하는 함수를 작성합니다.

import { KinesisClient, GetRecordsCommand, GetRecordsCommandInput } from "@aws-sdk/client-kinesis";

const readDataFromKinesisStream = async (streamName: string, shardIterator: string) => {
    const kinesisClient = new KinesisClient({ region: "your-region" });
    const params: GetRecordsCommandInput = {
        ShardIterator: shardIterator,
        Limit: 10, // Maximum records to retrieve
    };
    const command = new GetRecordsCommand(params);

    try {
        const response = await kinesisClient.send(command);
        console.log("Received records from Kinesis stream:", response.Records);
    } catch (error) {
        console.error("Error reading data from Kinesis:", error);
    }
};

// Usage
readDataFromKinesisStream("your-stream-name", "shard-iterator-1");

위 코드에서 readDataFromKinesisStream 함수는 스트림 이름과 샤드 이터레이터를 사용하여 Kinesis 스트림에서 데이터를 가져옵니다.

결론

이번 포스트에서는 타입스크립트를 사용하여 AWS Kinesis 프로듀서 및 컨슈머를 구현하는 방법을 살펴보았습니다. 스트리밍 데이터 처리에 대한 이해를 높이고, 타입스크립트 및 AWS Kinesis를 효율적으로 활용할 수 있도록 도움이 되기를 바랍니다.

참고 자료