LoginSignup
1
1

NestJS をシンプルに初期構築から試す(その3 AWS App Runner として動かす)

Last updated at Posted at 2023-08-27

はじめに

このページは、その3(その1のつづき)です。

  • その1では、NestJSのWebフレームワークとしてローカル環境として動かす初期構築まで
  • その2では、Amazon API Gateway + AWS Lambdaへデプロイを行います

今回その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リポジトリ

記事 ブランチ 内容
その3 feature/example-step3-aws-app-runner AWS App Runner

手順

いたって簡単でAWSマネジメントコンソールで選択、ボタンを押していく

1. ステップ 1 ソースおよびデプロイ

AppRunner-01.png

リポジトリタイプ:ソースコードリポジトリ
GitHub Connection :新規作成
リポジトリ:ssugimoto/serverless-framework-nestjs-example
ブランチ:feature/example-step3-aws-app-runner

2. ステップ 2 構築を設定

AppRunner-02.png

設定ファイル:ここですべての設定を構成する
ランタイム:Nodejs 16 (18は選べなかった)
構築コマンド:npm install
開始コマンド:npm start
ポート:3000

3. ステップ 3 サービスを設定

AppRunner-03.png

試すだけなので最小のものを選ぶ
仮想CPU:0.25vCPU
仮想メモリ:0.5GB

AppRunner-04.png

AppRunner-05.png
タグは、自分の名前や日付等をつけておくと後からわかりやすい

4. ステップ 4 確認および作成

AppRunner-06-1.png

AppRunner-06-2.png

AppRunner-06-3.png

「作成とデプロイ」ボタンを押す
後は、待ち

5. デプロイ中

AppRunner-07-1.png

6. デプロイ完了

AppRunner-07-2.png

  • 「デフォルトドメイン」の項目がAWSが自動生成してくれたURLです
    AppRunner-07-3.png

7. curl コマンドでAPI実行

>curl https://jmhewqea2s-xxx.us-east-1.awsapprunner.com/
Hello World!

なお、上記URLは消しているので無効です。

8. お掃除

AppRunner-08.png

App Runnerは、サーバーレスとは異なり ALB、Fargateが作成されて動くため、利用料が日に日に増えていくため消しましょう

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1