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アプリケーションのデプロイメントについて理解できました。次のセクションでは、ベストプラクティスについて説明します。