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

Prisma ORMをデプロイする

Prisma Clientを使用するプロジェクトは、さまざまなクラウドプラットフォームにデプロイできます。クラウドプラットフォームの種類と名前が多様であることを考慮すると、Prisma Clientを使用したアプリケーションのデプロイ方法に影響を与える、さまざまなデプロイパラダイムについて言及することは注目に値します。

デプロイパラダイム

各パラダイムには、アプリケーションのパフォーマンス、スケーラビリティ、および運用コストに影響を与える異なるトレードオフがあります。

さらに、アプリケーションのユーザートラフィックパターンも考慮すべき重要な要素です。たとえば、安定したユーザートラフィックを持つアプリケーションは継続的に実行されるパラダイムに適している場合があり、突然のスパイクを持つアプリケーションはサーバーレスに適している場合があります。

従来のサーバー

Node.jsプロセスが継続的に実行され、複数のリクエストを同時に処理する場合、アプリケーションは従来の方法でデプロイされます。アプリケーションは、Heroku、HerokuKoyeb、またはRenderなどのサービスとしてのプラットフォーム(PaaS)、KubernetesへのDockerコンテナ、または仮想マシンまたはベアメタルサーバー上のNode.jsプロセスとしてデプロイできます。

参照:長時間実行プロセスでの接続管理

サーバーレス関数

アプリケーションのNode.jsプロセス(または関数に分割されたそのサブセット)がリクエストの受信時に開始され、各関数が一度に1つのリクエストのみを処理する場合、アプリケーションはサーバーレスです。アプリケーションは、AWS LambdaAzure Functionsなどのサービスとしての関数(FaaS)としてデプロイされる可能性が最も高いです。

サーバーレス環境には、ウォームスタートの概念があります。これは、同じ関数の後続の呼び出しで、割り当てられたプロセス、メモリ、ファイルシステム(AWS Lambdaでは/tmpは書き込み可能)、さらにはDB接続がまだ利用可能な既存のコンテナを使用できることを意味します。

通常、ハンドラー外のコードは初期化されたままになります。

参照:サーバーレス環境での接続管理

エッジ関数

アプリケーションがサーバーレスであり、関数がユーザーに近い1つまたは複数のリージョンに分散されている場合、アプリケーションはエッジデプロイされます。

通常、エッジ環境は、従来の環境またはサーバーレス環境とは異なるランタイムも持っており、共通のAPIが利用できなくなることがあります。