AWS Amplify で Node.js 20 を使ってビルドする [2023年12月情報]

こんにちは、広野です。

いつの間にか Node.js 16 が EoL になってしまい、最新のサポートバージョンは 20 になっていました。AWS Amplify のビルド環境がどう追随しているかというと、今時点 18 が最新のようです。

とは言え AWS Cloud9 (Amazon Linux 2023) にはデフォルトで Node.js 20 がインストールされていました。ですのでわざわざ EoL が見えている 18 を使用したくありません。今回、AWS Amplify でも試しにやってみたら Node.js 20 でビルドできたので、そのやり方を紹介します。公式ドキュメントもいずれ更新されると思います。

試したこと

Amazon Linux 2023 の AWS Cloud9 には Node.js 20 が入っていたので、そのままにします。

AWS マネジメントコンソールで AWS Amplify の画面を開いたら、以下のように「ビルドの設定」の中に「Build image settings」という項目が追加されていました。

これを、以下のようにビルド環境に Amazon Linux 2023 を、インストールするパッケージとして Node.js 20 を使用するように変更したところ、ビルドが通るようになりました。デフォルト設定のままでは、ビルドは失敗しました。

ビルドログを見ると、以下のように Node.js 20 を使用した形跡が残っていました。

2023-12-17T04:11:53.451Z [INFO]: # Node version 20 is available for installation
2023-12-17T04:11:53.557Z [INFO]: # Installing Node version 20
2023-12-17T04:13:38.677Z [INFO]: # Now using Node version 20

私は AWS Amplify を AWS CloudFormation でデプロイしているのですが、執筆時点ではこの設定をデプロイするためのテンプレート記述方法は見つけられませんでした。そのため、とりあえずマネジメントコンソールから手作業で変更しています。いずれ AWS CloudFormation でサポートされたらテンプレートに反映しようと思います。

厳格にバージョン指定しようと思ったら、buildspec.yml 内で希望するバージョンの Node.js をインストールする方法が必要であることを付け加えておきます。

まとめ

いかがでしたでしょうか。

簡単な内容でしたが、なにげに今時点では有用と思いまして紹介いたしました。

本記事が皆様のお役に立てれば幸いです。

著者について
広野 祐司

AWS サーバーレスアーキテクチャを駆使して社内クラウド人材育成アプリとコンテンツづくりに勤しんでいます。React で SPA を書き始めたら快適すぎて、他の言語には戻れなくなりました。サーバーレス & React 仲間を増やしたいです。AWSは好きですが、それよりもAWSすげー!って気持ちの方が強いです。
取得資格:AWS 認定は12資格、ITサービスマネージャ、ITIL v3 Expert 等
2020 - 2023 Japan AWS Top Engineer 受賞
2022 - 2023 Japan AWS Ambassador 受賞
2023 当社初代フルスタックエンジニア認定
好きなAWSサービス:AWS Amplify / AWS AppSync / Amazon Cognito / AWS Step Functions / AWS CloudFormation

広野 祐司をフォローする
クラウドに強いによるエンジニアブログです。
SCSKは専門性と豊富な実績を活かしたクラウドサービス USiZE(ユーサイズ)を提供しています。
USiZEサービスサイトでは、お客様のDX推進をワンストップで支援するサービスの詳細や導入事例を紹介しています。
AWSアプリケーション開発クラウドソリューション
シェアする
TechHarmony
タイトルとURLをコピーしました