[nodejs] AWS Lambda로 스케줄링된 작업 실행하기

서버리스 아키텍처의 인기있는 플랫폼인 AWS Lambda를 사용하면 특정 시간에 주기적으로 실행되는 작업을 쉽게 수행할 수 있습니다. 이 글에서는 Node.js를 사용하여 AWS Lambda로 스케줄링된 작업을 실행하는 방법에 대해 알아보겠습니다.

AWS Lambda란?

AWS Lambda는 서버리스 컴퓨팅 서비스로, 코드를 실행할 때마다 과금되는 방식으로 동작합니다. Lambda 함수를 사용하면 서버 프로비저닝이나 관리 없이도 코드를 실행할 수 있으며, 다양한 트리거를 통해 함수를 트리거할 수 있습니다.

스케줄링된 작업을 위한 Lambda 함수 만들기

먼저, AWS 콘솔에 로그인하여 Lambda 함수를 생성합니다. Node.js 런타임으로 새로운 함수를 만들고, 실행할 코드를 작성합니다. 이 예시에서는 AWS SDK를 사용하여 S3 버킷에 파일을 업로드하는 작업을 예시로 들어보겠습니다.

const AWS = require('aws-sdk');
const s3 = new AWS.S3();

exports.handler = async (event) => {
  const params = {
    Bucket: 'bucket-name',
    Key: 'file.txt',
    Body: 'Hello from Lambda!'
  };
  
  try {
    await s3.upload(params).promise();
    return {
      statusCode: 200,
      body: JSON.stringify('File uploaded successfully')
    };
  } catch (error) {
    return {
      statusCode: 500,
      body: JSON.stringify('Error uploading file')
    };
  }
};

위 코드는 S3 버킷에 ‘file.txt’라는 파일에 ‘Hello from Lambda!’라는 내용을 업로드하는 Lambda 함수를 보여줍니다. 이 함수를 CloudWatch 이벤트로 스케줄링하여 특정 시간에 주기적으로 실행되도록 설정할 수 있습니다.

CloudWatch 이벤트로 스케줄링 설정하기

AWS 콘솔의 CloudWatch 서비스에서 이벤트를 생성하여 Lambda 함수를 스케줄링할 수 있습니다. 이벤트를 만들 때 스케줄러 규칙을 정의하여 실행 조건을 지정할 수 있습니다.

마무리

이제 AWS Lambda를 사용하여 Node.js로 작성된 스케줄링된 작업을 실행하는 방법에 대해 알아보았습니다. Lambda를 사용하면 서버리스 아키텍처를 통해 간편하게 작업을 스케줄링하고 실행할 수 있습니다.

참고 : https://docs.aws.amazon.com/lambda/index.html