サーバーレスアーキテクチャはどのようにデータベース接続を管理しますか?


10

サーバーレスアーキテクチャの主な利点は、そのようなプログラムが継続的に実行するために専用サーバーを必要としないことです。次に、要求時に呼び出され、関数の終了時に停止します。

つまり、レスポンシブであるためには、サーバーレスプログラムをすばやく起動する必要があります。次に、データベース接続などの時間のかかるアクションをどのように処理しますか?それは毎回データベースに接続しますか、それともサーバー接続で行われるような関数呼び出しのためにデータベース接続を個別に管理しますか?

回答:


9

サーバーレスアプリは実行間で状態を保持しないため、データベース接続プールを維持できません。サーバーレスアプリは、90年代のCGIスクリプトと同じ制約に直面しています。一般に、永続的なサーバープロセスは、サーバーが要求ごとに1回ではなく、1回だけ初期化を行うため、要求ごとのプロセスまたは要求ごとのコンテナーのアーキテクチャよりも優れたパフォーマンスを発揮できます。

サーバーレスプログラムは、Webサイトへのサービス提供など、遅延の影響を受けやすいタスクにはあまり適していません。これらは、追加のアプリケーションサーバーを手動で管理して負荷分散する必要がなく、メインサーバーで実行したくない散発的なバックグラウンドタスクに適しています。開発者の生産性が低レイテンシの応答よりもはるかに重要である場合、それらはまともな適合かもしれません。


優れた点。私はまた、人々をサーバーレス化する主な利点の1つはコストであることをお勧めします。リクエスト数のみに基づいてプロバイダー(Amazonなど)に支払い、アイドルサーバーの実行を維持するために支払いを行わない場合は、特に起動フェーズで費用を節約できます。
ポール、

2
@Paulサーバーレスの主な利点は、利便性です(PaaSとIaaSの比較)。サーバーを安全に管理することは、ほとんどの開発者(私も含む)にはないスキルセットです。サーバーレスの方が明らかに安いシナリオがいくつかあると思います。しかし、仮想プライベートサーバーは月額5ドルから始まります。特に、VPSの制限ははるかに少なく、任意のソフトウェアと永続的なサービスを実行できることを考慮してください。これはリンゴとオレンジの比較です。1つのモデルでは、アイドル状態のサーバーに料金を支払い、別のモデルでは、起動時間の繰り返しに対して料金を支払います。
アモン

4

場合によります。

ラムダランナーのバックグラウンド実装がこれに影響します。AWSではコンテナーが再利用される可能性があることがわかります。

http://docs.aws.amazon.com/lambda/latest/dg/lambda-introduction.html

したがって、少なくとも一部のリクエストでは接続プーリング/再利用を確認できました。また、データベース自体と、データベースが着信接続要求を処理する方法についても検討する必要があります。

私にとってのこの種の質問は、「サーバーレス」の問題のいくつかを強調しています。それは、まだ非常に新しくて未熟なため、詳細は打ち出されていません。

サーバーレスとは​​サーバーがないという意味ではないことを常に覚えておく必要があります。ラムダを呼び出すレートが十分に高い場合、複数のサーバー、つまり「コンテナー」を効率的に実行している可能性があります。

実際には、起動時間とラムダのIPアドレスなどのリソースが実際の問題になる可能性があります。おそらく、それらを実行する方法についてのコンセンサスが成熟するにつれて、これらの問題は確かな答えを得るでしょう。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.