メインコンテンツまでスキップ

11. Deployment

デプロイメントの基本

Nest.jsアプリケーションのデプロイメントには、いくつかの方法があります。このセクションでは、Nest.jsアプリケーションをさまざまな環境にデプロイする方法について説明します。

デプロイメントの準備

デプロイメント前に、いくつかの重要な設定を行う必要があります。

環境変数の設定

Nest.jsアプリケーションの設定は、環境変数を使用して管理することが推奨されます。dotenv パッケージを使用して、環境変数を設定します。

npm install dotenv

.env ファイルをプロジェクトのルートディレクトリに作成し、必要な環境変数を定義します。

DATABASE_URL=postgresql://user:password@localhost:5432/mydb
PORT=3000

アプリケーションで環境変数を読み込むには、main.ts ファイルで dotenv をインポートします。

import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
import * as dotenv from 'dotenv';

dotenv.config();

async function bootstrap() {
const app = await NestFactory.create(AppModule);
await app.listen(process.env.PORT || 3000);
}
bootstrap();

Herokuへのデプロイ

Herokuは、簡単にNest.jsアプリケーションをデプロイできるプラットフォームです。

Heroku CLIのインストール

まず、Heroku CLIをインストールします。

curl https://cli-assets.heroku.com/install.sh | sh

Herokuプロジェクトの作成

Herokuにログインし、新しいプロジェクトを作成します。

heroku login
heroku create your-app-name

プロジェクトの設定

Herokuの設定ファイルをプロジェクトに追加します。

Procfile をプロジェクトのルートディレクトリに作成し、以下の内容を追加します。

web: npm run start:prod

デプロイメント

プロジェクトをHerokuにデプロイします。

git add .
git commit -m "Deploy to Heroku"
git push heroku master

Dockerを使用したデプロイ

Dockerを使用すると、アプリケーションをコンテナ化して、どの環境でも一貫した動作を保証できます。

Dockerfileの作成

プロジェクトのルートディレクトリに Dockerfile を作成し、以下の内容を追加します。

# ベースイメージ
FROM node:14

# 作業ディレクトリの設定
WORKDIR /usr/src/app

# 依存関係のインストール
COPY package*.json ./
RUN npm install --production

# アプリケーションのコピー
COPY . .

# アプリケーションのビルド
RUN npm run build

# ポートのエクスポート
EXPOSE 3000

# アプリケーションの起動
CMD ["npm", "run", "start:prod"]

Dockerイメージのビルド

Dockerイメージをビルドします。

docker build -t nestjs-app .

Dockerコンテナの起動

Dockerコンテナを起動します。

docker run -p 3000:3000 -d nestjs-app

AWSへのデプロイ

Amazon Web Services (AWS) は、Nest.jsアプリケーションのデプロイ先としてよく使用されます。

AWS CLIのインストール

まず、AWS CLIをインストールします。

curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"
sudo installer -pkg AWSCLIV2.pkg -target /

Elastic Beanstalkの設定

AWS Elastic Beanstalkを使用してアプリケーションをデプロイします。

eb init
eb create nestjs-env
eb deploy

Vercelへのデプロイ

Vercelは、簡単にデプロイできるプラットフォームです。Next.jsやNuxt.jsのアプリケーションでよく使用されますが、Nest.jsアプリケーションもデプロイできます。

Vercel CLIのインストール

まず、Vercel CLIをインストールします。

npm install -g vercel

プロジェクトのデプロイ

Vercelにログインし、プロジェクトをデプロイします。

vercel

これで、Nest.jsアプリケーションのデプロイメントについて理解できました。次のセクションでは、ベストプラクティスについて説明します。