はじめに
このページは、その3(その1のつづき)です。
今回その3
- 今回は、NestJSを手軽にAWSクラウド上で動かすことが可能な AWS App Runnerを使ってみます
- その1でのNestJS cliで初期構築したものをApp RunnerでGitHub接続して使ってみます(コンテナではなく、ソースをそのまま動かす)
シビア・重要な問題・課題
- 2023-08-27時点 問題・課題が1つあり App Runnerは Node.js16までの対応である
- https://github.com/aws/apprunner-roadmap/issues/120 を見ても 2023-05-27 に「working on it」に変わってから進んでいない。今日2023-08-27で3ヶ月が経過した。
- AWSにおける Node.js への対応は、はっきりいって遅い。
- v18 がリリースされ1年経過してもなかなか取り込まれない。AWS Lambda、AWS Amplfiy、App Runner等 ランタイムでNode.jsを使うが、次のv20がActiveやLTSにならないとv18を対応しないくらいに遅い。なお、AWS LambdaではNode.js v18のランタイム利用は対応済である。
- そして、Node.js v16 は 2023-09-11に End Of Lifeを迎える状況である。
- App RunnerでのNode.js利用は商用サービスでは使わない方が無難と思われる。
GitHubリポジトリ
- 試した内容は、GitHubに公開しています
- https://github.com/ssugimoto/serverless-framework-nestjs-example/branches
記事 | ブランチ | 内容 |
---|---|---|
その3 | feature/example-step3-aws-app-runner | AWS App Runner |
手順
いたって簡単でAWSマネジメントコンソールで選択、ボタンを押していく
1. ステップ 1 ソースおよびデプロイ
リポジトリタイプ:ソースコードリポジトリ
GitHub Connection :新規作成
リポジトリ:ssugimoto/serverless-framework-nestjs-example
ブランチ:feature/example-step3-aws-app-runner
2. ステップ 2 構築を設定
設定ファイル:ここですべての設定を構成する
ランタイム:Nodejs 16 (18は選べなかった)
構築コマンド:npm install
開始コマンド:npm start
ポート:3000
3. ステップ 3 サービスを設定
試すだけなので最小のものを選ぶ
仮想CPU:0.25vCPU
仮想メモリ:0.5GB
4. ステップ 4 確認および作成
「作成とデプロイ」ボタンを押す
後は、待ち
5. デプロイ中
6. デプロイ完了
7. curl コマンドでAPI実行
>curl https://jmhewqea2s-xxx.us-east-1.awsapprunner.com/
Hello World!
なお、上記URLは消しているので無効です。
8. お掃除
App Runnerは、サーバーレスとは異なり ALB、Fargateが作成されて動くため、利用料が日に日に増えていくため消しましょう