【AWS】LambdaでNode.jsを使うには?対応バージョン・サンプル・Layer活用法
生徒
「先生、AWS LambdaでNode.jsを使えるって聞いたんですけど、どんな風に始めたらいいんでしょうか?」
先生
「LambdaはNode.jsととても相性が良いんです。対応バージョンやサンプルコード、さらに便利なLayerの使い方を知ればすぐに実用的な関数が作れますよ。」
生徒
「なるほど!JavaScriptを普段書いているので、Lambdaでも簡単に動かせそうですね。」
先生
「そうです。では実際にLambdaとNode.jsを組み合わせて使う方法を詳しく見ていきましょう。」
1. AWS LambdaでNode.jsを使うメリット
Lambdaはサーバーレス環境でコードを実行できるサービスで、Node.jsは公式にサポートされている言語のひとつです。Node.jsは軽量で高速に起動でき、非同期処理が得意なため、Lambdaでのイベント駆動型処理に最適です。
特に以下のようなケースで活用されています。
- API Gatewayと組み合わせてWeb APIを構築
- S3のイベントをトリガーにファイル処理
- DynamoDBへのデータ登録や更新
- 外部APIとの連携やスクレイピング処理
2. LambdaでサポートされているNode.jsのバージョン
AWS Lambdaは複数のNode.jsバージョンをサポートしています。記事執筆時点で利用できる代表的なバージョンは以下の通りです。
- Node.js 14.x
- Node.js 16.x
- Node.js 18.x
- Node.js 20.x(最新推奨)
最新のバージョンを選ぶことでセキュリティやライブラリ対応の面でも安心できます。AWS公式ドキュメントでサポート状況を定期的に確認しましょう。
3. Node.jsで書くLambda関数の基本サンプル
Node.jsを使ったLambda関数はシンプルに書けます。以下は「Hello World」を返すサンプルです。
exports.handler = async (event) => {
console.log("イベント内容:", event);
const response = {
statusCode: 200,
body: JSON.stringify("Hello from AWS Lambda with Node.js!"),
};
return response;
};
Lambda関数のエントリーポイントはhandlerで、eventにはトリガーから渡される情報が入ります。console.logを使うとCloudWatch Logsに出力されるため、デバッグにも役立ちます。
4. 外部ライブラリを利用する方法
Node.jsではnpmでインストールしたライブラリを使えますが、Lambdaにデプロイする際には工夫が必要です。
方法1:プロジェクトごとzipにしてアップロード
npm init -y
npm install axios
zip -r function.zip .
このようにライブラリを含めた状態でzip化し、Lambdaにアップロードすることで利用できます。
方法2:Layerを使う
Lambda Layerにライブラリをまとめておくと、複数の関数で共通利用できて効率的です。特にaxiosやmomentなどよく使うライブラリをLayer化すると便利です。
5. Lambda Layerの活用法
Layerは外部ライブラリや共通コードを複数のLambda関数で共有できる仕組みです。例えばNode.jsプロジェクトでnodejs/node_modulesディレクトリを作成し、その中にライブラリを配置してzip化するとLayerとして登録できます。
mkdir -p nodejs/node_modules
cd nodejs
npm install lodash
cd ..
zip -r layer.zip nodejs
これをAWS LambdaのコンソールからLayerとしてアップロードし、関数に追加すればライブラリを簡単に利用できます。
6. Node.jsとLambdaを組み合わせる時の注意点
Node.jsをLambdaで利用するときは次の点に注意しましょう。
- 非同期処理を正しく扱う(async/awaitやPromiseを活用)
- バージョンのサポート終了に注意する
- 依存ライブラリが多すぎるとデプロイサイズが大きくなる
- ログ出力を活用してトラブルシューティングしやすくする
これらを意識することで安定したLambda関数を開発できます。
7. 初心者におすすめの学習ステップ
LambdaとNode.jsを初めて使う方には、以下の流れで練習するのがおすすめです。
- AWSコンソールからNode.jsのHello Worldを作成
- console.logでログを出力してCloudWatchで確認
- npmでaxiosを導入し外部APIと連携
- Layerを使って共通ライブラリを管理
- API Gatewayと組み合わせてREST APIを構築
この順序で学べば、基礎から応用まで自然に理解でき、実務にもすぐ活かせる知識が身につきます。