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
: このアプリのデータモデル。この例では、User
とPost
の2つのモデルを定義しています。このファイルの形式はPrismaスキーマに準拠しています。prisma/migrations/<migration name>/migration.sql
: PostgreSQLデータベースでこのスキーマを構築するSQLコマンド。これのようなマイグレーションファイルはprisma migrate dev
を実行することで自動生成できます。prisma/seed.js
: いくつかのテストユーザーと投稿を定義し、データベースに初期データをシードするために使用されます。
サンプルのデプロイ
1. fly launch
を実行し、デフォルトを受け入れる
以上です。デプロイが完了するとすぐに、ウェブサービスはfly.dev
のURLでライブになります。必要に応じて、マシンのサイズ、数、配置をスケールできます。fly console
を使用して、新規または既存のマシンにSSH接続できます。
詳細はfly.ioドキュメントを参照してください。