メインコンテンツへスキップ

Fly.io へのデプロイ

このガイドでは、Prisma ORM と PostgreSQL を使用する Node.js サーバーを Fly.io にデプロイする方法について説明します。

Prisma Render デプロイ例 には、REST エンドポイントとシンプルなフロントエンドを備えた Express.js アプリケーションが含まれています。このアプリは Prisma Client を使用して、データベースからレコードをフェッチ、作成、削除します。このガイドでは、同じアプリケーションを修正なしで Fly.io にデプロイする方法を示します。

Fly.io について

fly.io は、リクエストに応じてユーザーに近いマシン上で起動するフルスタックアプリケーションを開発者が簡単にデプロイおよびスケールできるクラウドアプリケーションプラットフォームです。この例では、次のことを知っておくと役立ちます。

  • Fly.io では、世界 35 リージョン で長期実行される「サーバーフル」なフルスタックアプリケーションをデプロイできます。デフォルトでは、アプリケーションは、使用されていないときは自動停止 し、リクエストが来たときに必要に応じて自動起動するように構成されています。
  • Fly.io は、Node.js や Bun を含む、幅広い言語とフレームワーク をネイティブにサポートしています。このガイドでは、Node.js ランタイムを使用します。
  • Fly.io は、GitHub から直接アプリを起動 できます。CLI から実行すると、fly launch は、プッシュ時にデプロイするように GitHub でホストされているアプリケーションを自動的に構成します。

前提条件

  • Fly.io アカウントにサインアップします

サンプルコードを入手する

サンプルコード をローカルマシンにダウンロードします。

curl https://codeload.github.com/prisma/prisma-examples/tar.gz/latest | tar -xz --strip=2 prisma-examples-latest/deployment-platforms/render
cd render

サンプルを理解する

アプリをデプロイする前に、サンプルコードを見てみましょう。

ウェブアプリケーション

Express アプリのロジックは 2 つのファイルにあります

  • src/index.js: API。エンドポイントは Prisma Client を使用して、データベースからデータをフェッチ、作成、削除します。
  • public/index.html: ウェブフロントエンド。フロントエンドはいくつかの API エンドポイントを呼び出します。

Prisma スキーマとマイグレーション

このアプリの Prisma コンポーネントは 3 つのファイルにあります

  • prisma/schema.prisma: このアプリのデータモデル。この例では、UserPost の 2 つのモデルを定義しています。このファイルの形式は、Prisma スキーマに従います。
  • prisma/migrations/<migration name>/migration.sql: PostgreSQL データベースでこのスキーマを構築する SQL コマンド。このようなマイグレーションファイルは、prisma migrate dev を実行して自動生成できます。
  • prisma/seed.js: いくつかのテストユーザーと postsPrisma を定義し、データベースに初期データを投入するために使用されます。

サンプルをデプロイする

1. fly launch を実行してデフォルトを受け入れる

以上です。デプロイが完了するとすぐに、ウェブサービスは fly.dev URL でライブになります。オプションで、必要に応じてマシンのサイズ、数、配置をスケールします。fly console を使用して、新規または既存のマシンに ssh で接続できます。

詳細については、fly.io ドキュメントを参照してください。