[nodejs] AWS Lambda로 스트림 처리하기

AWS Lambda는 서버리스 컴퓨팅 서비스로, 서버를 프로비저닝하거나 관리할 필요 없이 코드를 실행할 수 있습니다. 이번 포스트에서는 Node.js 및 AWS Lambda와 함께 데이터 스트림을 처리하는 방법에 대해 알아보겠습니다.

1. AWS Lambda 설정

먼저 AWS 콘솔에 로그인하여 Lambda 서비스를 선택합니다. “함수 만들기” 버튼을 클릭하고 함수 이름 및 실행 역할을 설정합니다. 이제 Node.js 환경에서 스트림을 처리할 함수를 생성할 준비가 되었습니다.

2. 이벤트 소스 설정

Lambda 함수에 연결될 이벤트 소스를 설정해야 합니다. Amazon Kinesis나 Amazon S3 같은 스트림 형식으로 데이터를 보낼 수 있습니다.

exports.handler = async (event) => {
  for (const record of event.Records) {
    // 스트림 데이터 처리 로직
  }
};

위 코드는 AWS Lambda 함수의 핸들러 함수 예시입니다. event.Records를 통해 이벤트 소스로부터 받은 데이터를 처리할 수 있습니다.

3. 스트림 데이터 처리

스트림으로부터 받은 데이터를 처리하는 방법은 다양합니다. 예를 들어, JSON 데이터를 파싱하거나 데이터베이스에 기록할 수 있습니다.

const AWS = require('aws-sdk');
const dynamodb = new AWS.DynamoDB.DocumentClient();

exports.handler = async (event) => {
  for (const record of event.Records) {
    const data = JSON.parse(Buffer.from(record.kinesis.data, 'base64').toString('ascii'));
    const params = {
      TableName: 'exampleTable',
      Item: {
        id: data.id,
        value: data.value
      }
    };
    await dynamodb.put(params).promise();
  }
};

위 코드에서는 Amazon DynamoDB에 데이터를 저장하는 예시를 보여줍니다.

4. 로깅 및 모니터링

Lambda 함수가 정상적으로 실행되고 있는지 확인하기 위해 AWS CloudWatch를 사용하여 로그 및 모니터링을 설정할 수 있습니다.

이제 AWS Lambda와 Node.js를 사용하여 스트림 데이터를 처리하는 방법을 알아보았습니다. 서버리스 아키텍처를 통해 데이터 처리를 간단하게 구현할 수 있습니다.

더 많은 정보는 AWS Lambda 공식 문서에서 확인할 수 있습니다.

Happy streaming with AWS Lambda! 🚀