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

サーバーレス vs 常時稼働サーバー

Leapcell では、さまざまなアプリケーションのニーズに応えるために、サーバーレス(従量課金制)常時稼働(時間課金制) の 2 つの主要なデプロイモードを提供しています。

それぞれの特徴とトレードオフを理解することで、プロジェクトに最も適したオプションを選ぶことができます。


サーバーレス(従量課金制)

Serverless Cost

サーバーレスモードはイベント駆動型のコンピューティングモデルであり、コードが実行されている時間に対してのみ料金が発生 します。

課金はリクエストを受信した時点で開始され、リクエスト処理が完了した時点で終了します。トラフィックがない待機時間には料金は発生しません。

Serverless Active Time

自動スケーリング

プラットフォームはトラフィック量に応じてインスタンス数を自動で増減させます。 トラフィックの急増にも対応できるよう、数千のインスタンス までスケール可能です。

Serverless Scaling
コールドスタート

サービスが一定期間(例:30 分間)トラフィックを受け取らない場合、インスタンスは休止状態になることがあります。新しいリクエストが到着すると「コールドスタート」が発生し、新しいインスタンスを起動するために最大 250ms の遅延が生じる可能性があります。安定したトラフィックがあるサービスではほとんど発生しません。

Serverless Cold Start

サーバーレスの利点と制約

主な利点

利点説明
コスト効率が高いアイドル状態のリソースには課金されないため、トラフィックが変動的または予測困難なアプリケーションに最適です。
自動スケーリングトラフィックに応じてインスタンス数を自動調整。数千インスタンスまで拡張可能で、急なトラフィック増にも対応できます。

考慮すべき制約

制約説明
HTTP の短時間リクエストのみ対応サーバーレスは短時間の HTTP リクエストに最適化されています。WebSocket、ロングポーリング、バックグラウンドジョブなど長時間接続には不向きです。
一時的なファイルシステム書き込み可能なのは /tmp ディレクトリのみ。他のパスは読み取り専用です。
リクエストタイムアウト1 つのリクエストに対する最大実行時間は 15 分です。
CPU のサスペンドアイドル期間中は CPU が停止されるため、リクエストがない時にバックグラウンドタスクを実行することはできません。

常時稼働モード(時間課金制)

Persistent Server

常時稼働モードは、ローカルマシンや従来のクラウドサーバーのように、専用のインスタンスを常に起動し続ける仕組みです。

リクエストの有無に関わらず、常にトラフィックを受け付ける準備ができており、料金は時間単位(時間ごとや月ごと)で課金されます。

主な利点

特徴説明
単位時間あたり安価安定したワークロードでは、従量課金よりも時間課金の方がコスト効率が良い場合があります。詳細は Leapcell 料金表 を参照してください。
コールドスタートなしインスタンスが常に起動しているため、すべてのリクエストで最小のレイテンシを保証します。
ファイルシステム/tmp 以外のディレクトリにも書き込み可能で、ローカル I/O、キャッシュ、状態管理が行えます。
長時間処理に最適バックグラウンドジョブやデータ処理、WebSocket のような持続的接続など、長時間停止せずに動作させる必要があるプロセスに最適です。

ユースケースに応じた選択

サーバーレスを選ぶべきケース

サーバーレスを使うべき場面説明
ステートレスな HTTP/Web サービスアプリケーションの状態はオブジェクトストレージやデータベースに保存し、サービス自体に保持しない場合。
初期段階でトラフィックが不確定な場合開発初期などでトラフィックが少ない、または不確定な場合、サーバーレスは最もコスト効率の良い選択肢です。

常時稼働サーバーを選ぶべきケース

以下のようなシナリオでは 常時稼働モード が適しています:

常時稼働サーバーを使うべき場面説明
高負荷かつ継続的なトラフィックサービスが常に高トラフィックを処理する場合、常時稼働の時間課金の方が従量課金よりも安価になることがあります。
長時間のバックグラウンドジョブ動画エンコード、大規模データ解析、機械学習モデルの学習など、15 分を超える処理が必要な場合。
ローカルファイルシステム依存キャッシュや状態管理など、/tmp 以外の永続的なローカルストレージを必要とする場合。
超低レイテンシ要求コールドスタートによるわずかな遅延すら許容できないアプリケーションに最適です。
WebSocket や長時間接続WebSocket などの長時間接続を必要とするサービスでは、常時稼働サーバーが必須となります。