[nodejs] AWS Lambda로 이미지 처리하기

AWS Lambda는 서버리스 컴퓨팅 서비스로, 코드를 실행하기 위해 서버를 설정하거나 관리할 필요가 없습니다. 이 글에서는 AWS Lambda를 사용하여 이미지 처리를 하는 방법을 알아보겠습니다.

AWS Lambda란 무엇인가요?

AWS Lambda는 이벤트에 응답하여 코드를 실행하는 서비스로, 서버 관리없이 코드 실행환경을 제공합니다. Lambda 함수의 실행 시간만큼 비용이 청구되며, 사용한 만큼 비용을 지불하면 됩니다.

AWS Lambda로 이미지 처리하기

1. Lambda 함수 생성

먼저 AWS 콘솔을 통해 Lambda 함수를 생성합니다. 적절한 권한과 실행 역할을 설정한 후, Node.js로 이미지 처리 코드를 작성합니다.

예를 들어, 이미지를 리사이즈하고 압축하는 코드는 다음과 같을 수 있습니다.

//index.js
const sharp = require('sharp');
const { S3 } = require('aws-sdk');

exports.handler = async (event) => {
  // S3 버킷에서 이미지를 가져온 후 리사이즈하고 새로운 버킷에 저장
  const s3 = new S3();
  const params = {
    Bucket: event.bucket,
    Key: event.key
  };
  const data = await s3.getObject(params).promise();
  const resizedImage = await sharp(data.Body).resize(300, 200).toBuffer();
  await s3.putObject({
    Bucket: 'resized-images',
    Key: 'resized-' + event.key,
    Body: resizedImage
  }).promise();

  return 'Image processed successfully';
};

2. 이벤트 트리거 설정

Lambda 함수를 트리거할 이벤트를 설정합니다. 예를 들어, Amazon S3 버킷에 이미지가 업로드되었을 때 Lambda 함수가 실행되도록 설정할 수 있습니다.

3. Lambda 함수 테스트

이미지가 S3 버킷에 업로드되면, Lambda 함수가 자동으로 실행되어 이미지를 처리하고 새로운 버킷에 저장하는지 테스트합니다.

이제 AWS Lambda를 사용하여 이미지 처리를 구현하는 방법에 대해 알아보았습니다. Lambda 함수를 사용하면 서버리스 아키텍처로 간편하게 이미지 처리 작업을 수행할 수 있습니다.

참고 자료


본 블로그 포스트는 AWS Lambda를 사용하여 이미지 처리하는 방법에 관한 것이며, 실제 코드는 사용자의 요구에 따라 다를 수 있습니다.