AWS Amplify ( Gen2 )でAngularアプリをホストするなら、ビルド設定に要注意
この記事では、AWS Amplifyを使用してAngularアプリをホスト・デプロイする際の注意点や設定箇所について紹介されています。AWS AmplifyはGitリポジトリからビルド&デプロイできるため、簡単にウェブアプリケーションを公開できます。ただし、Node.jsのバージョンに注意が必要で、設定画面で変更することができます。また、AWS Amplifyの詳細設定にはNode.js以外のツールのバージョン指定もできるため、注意が必要です。
目次
この記事では、AWS AmplifyでAngularアプリをホスト・デプロイする場合に注意したい設定箇所について紹介します。
AWS AmplifyでGitリポジトリからビルド&デプロイできる
AWS Amplify ( Gen2 )は様々なGitリポジトリをサポートしています。リポジトリを接続すればそのままビルドとデプロイが始まるため、とても簡単にウェブアプリケーションを公開できます。

ただし1点だけ注意点があります。それはAWS AmplifyはGen1 / Gen2どちらもNode.jsのバージョンが最新版ではない場合があることです。例えば 2024/10 時点で Angular ( v18 )をデプロイしようとすると、次のエラーでビルドエラーが発生します。
> ng build
2024-10-25T13:14:13.900Z [WARNING]: Node.js version v18.18.2 detected.
The Angular CLI requires a minimum Node.js version of v18.19.
Please update your Node.js version or visit https://nodejs.org/ for additional instructions.
ビルド設定でNode.jsのバージョンを変更する
ビルドに使うNode.jsのバージョンはビルドイメージ(デフォルトではAmazon Linux 2023)に依存します。Amplify管理画面の[ホスティング > ビルドの設定]にある[ライブパッケージの更新]を使ってバージョンを変更しましょう。

設定して保存すると、次回のビルドからは指定したバージョンのNode.jsでビルドが始まります。失敗したビルドの再実行でも反映されますので、もしエラーに遭遇してこの記事に辿り着いた方は、失敗したビルドの再実行をお試しください。

Node.jsのバージョン問題が解決したので、ビルドとデプロイが成功しました。

新規デプロイ時には、[詳細設定]を忘れない
この記事を書くためにセットアップをもう1度試したところ、プロジェクト作成時にもこの設定ができることがわかりました。[アプリケーションの設定]ステップにある[詳細設定]の中にあるため、初見ではなかなか気づきにくいかもしれません。

クリックすると、ビルドイメージやパッケージバージョンの変更、そしてビルド時の環境変数などを設定するUIが表示されます。ここでNode.jsのバージョンを変更しましょう。

ちなみにこの設定画面では、Node.js以外にもいくつかのツールでバージョンが指定できます。

[余談] 設定した値は環境変数からも見れる
環境変数を設定する画面に行くと、次のようなデータが保存されていました。

データ構造などがある程度わかれば、AWS SDKやCDKを使ってセットアップする場合にも、使えるかもしれません。
まとめ
OSSライブラリによっては、Node.jsや依存するCLIツールのバージョンに制限があります。AWS Amplifyではビルド時のバージョン設定を変更するUIが用意されていますので、ビルドステップにコマンドを書いて調整する前に、設定側で対応できるか確認してみましょう。