サーバーを管理せず実行するサーバーレス

サーバーレスは、利用者がサーバー台数や常時起動を強く意識せずにアプリを動かせる提供形態です。

サーバーがないわけではない

名前から「サーバーを使わない仕組み」と思われがちですが、サーバーは裏でちゃんと動いています。違うのは、使う側がサーバーの台数や OS、常時起動を直接管理しなくてよい、という点です。

自前の厨房を持たず、注文が入ったときだけシェアキッチンを借りて調理する飲食店に似ています。普段は場所を持たなくてよく、掃除や設備の保守は運営側が引き受けてくれる。アプリ開発でも、「このコードを動かしたい」「この処理を公開したい」という目的に集中し、OSの更新や台数の管理はサービス側に任せられます。裏側ではコンテナに近い単位が使われていることもありますが、そこを使う側が直接管理するとは限りません。

向いている処理と向かない処理

向いている向かないことがある
バッチやWebhookのように、常時動かさなくてよい処理長時間かかる処理、重いバッチ
小さく公開して、利用量に応じて広げたいサービス起動直後の遅れも許されない、反応速度に厳しい処理
少人数で、公開基盤まで抱えるのが重いチーム利用量が多く、常に動き続ける処理(VPS より割高になることがある)

シェアキッチンは、使っていない時間に家賃がかからない代わりに、毎回の準備に少し時間がかかります。サーバーレスでも、しばらく呼ばれていなかった処理は起動直後に遅くなることがあります。反応速度の要件は、採用前に確認しておきましょう。

もう一つ見ておきたいのが、特定のサービスへの依存です。そのサービス独自の仕組みに合わせて作るほど、別の環境へ移るときの手間が大きくなります。始めやすさと、将来の移行コストを並べて判断します。