[javascript] Webpack과 AWS Lambda 함께 사용하기

AWS Lambda는 서버리스 아키텍처를 구현하는 데에 매우 유용한 서비스입니다. Lambda를 사용하면 별도의 서버를 관리할 필요 없이 코드를 실행할 수 있습니다. 이번에는 Webpack을 사용하여 AWS Lambda 함수를 개발하는 방법에 대해 알아보겠습니다.

Webpack 소개

Webpack은 JavaScript 애플리케이션을 위한 정적 모듈 번들러입니다. 여러 개의 파일들을 하나의 번들로 묶어줌으로써 파일 크기를 줄이고, 의존성 관리를 용이하게 만들어줍니다.

AWS Lambda 함수 개발하기

AWS Lambda 함수를 개발하기 위해서는 몇 가지 사전 작업이 필요합니다. 우선 AWS 계정을 만들고, AWS CLI 또는 AWS Management Console을 통해 Lambda 함수를 생성해야 합니다.

Lambda 함수 생성

  1. AWS Management Console에 로그인한 후, Lambda 서비스로 이동합니다.
  2. “함수 생성” 버튼을 클릭합니다.
  3. 함수에 대한 기본 정보를 입력하고 런타임으로 “Node.js”를 선택합니다.
  4. 함수 코드 섹션에서 코드를 입력하거나 불러올 파일을 선택합니다.
  5. 필요한 설정을 추가하고 “함수 생성” 버튼을 클릭합니다.

Webpack 설정

Lambda 함수를 개발하기 위해 Webpack을 사용합니다. Webpack을 설치한 후, 프로젝트 폴더에 webpack.config.js 파일을 생성합니다.

const path = require('path');

module.exports = {
  entry: './index.js',
  output: {
    path: path.resolve(__dirname, 'dist'),
    filename: 'bundle.js'
  },
  target: 'node',
  mode: 'production',
  externals: [/^[a-z]/],
};

위의 설정 파일은 index.js 파일을 입력으로 사용하고, bundle.js로 번들링된 파일을 dist 폴더에 출력합니다. targetnode로 설정하여 Node.js 환경에서 실행되도록 합니다. externals 설정은 외부 의존성을 제외하고 번들링하도록 설정합니다.

코드 번들링

Webpack을 사용하여 Lambda 함수 코드를 번들링합니다. 프로젝트 폴더에서 다음 명령을 실행합니다.

npx webpack

위 명령을 실행하면 Webpack이 webpack.config.js 파일을 참조하여 코드를 번들링하고, dist 폴더에 번들링된 코드를 생성합니다.

Lambda 함수 배포

번들링된 코드를 AWS Lambda 함수에 배포합니다. AWS CLI를 사용하여 배포하는 방법은 다음과 같습니다.

aws lambda update-function-code --function-name <function-name> --zip-file fileb://dist/bundle.js

위 명령을 실행하면 dist/bundle.js 파일을 Lambda 함수의 코드로 업데이트합니다.

마무리

Webpack을 사용하여 AWS Lambda 함수를 개발하는 방법을 알아보았습니다. Webpack을 통해 의존성 관리와 코드 번들링을 할 수 있으며, AWS Lambda를 사용하여 서버리스 아키텍처를 구현할 수 있습니다. AWS Lambda와 Webpack을 함께 사용하여 개발 프로세스를 효율적으로 관리해보세요.

참고 자료