サーバーレスは、サーバー管理をクラウドに任せて、必要な処理だけを書く考え方。
サーバーが存在しないのではなく、設定や増減、監視の多くを自分で持たない形です。
サーバーレスの基本
サーバーレスは、Webアプリの処理を動かすサーバーを自分で用意し続けるのではなく、クラウドサービスに管理を任せる作り方です。
名前だけ見ると「サーバーがない」と思いやすいですが、実際にはクラウド側にサーバーがあります。開発者は、そのサーバーの細かい設定や台数管理を意識しにくくなる、という意味で使われます。
ただし、自分で直接管理する範囲が小さくなる。
リクエストやイベントに反応する小さな処理を書く。
起動、台数調整、監視などの一部をサービス側に任せる。
サーバー管理ありとの違い
従来のサーバー運用では、サーバーの設定、監視、負荷に合わせた増減などを考える必要があります。小さな機能を作るだけでも、動かす場所の面倒を見る時間が発生します。
サーバーレスでは、開発者は「どの処理を動かすか」に集中しやすくなります。たとえば問い合わせ送信、画像変換、Webhook受信、APIの一部処理など、小さく独立した処理と相性がよいです。
OSや実行環境の細かな管理を減らしやすい。
ログや実行回数などをクラウド側の機能で見られる。
リクエスト量に合わせた実行数の調整を任せやすい。
イベントで処理が動く
サーバーレスでは、処理がずっと起動して待ち続けるというより、何かが起きた時に実行される形で考えることが多いです。この「何か」をイベントと呼びます。
HTTPリクエストが届いた時、ファイルがアップロードされた時、決まった時刻になった時、Webhookが届いた時などに、用意した関数が実行されます。
向いている場面
サーバーレスは、短い処理を必要な時だけ動かしたい場面に向いています。アクセスが急に増える可能性がある機能や、たまにしか動かない処理でも使いやすいです。
一方で、長時間動き続ける処理や、細かく実行環境を調整したい処理では、普通のサーバーやコンテナのほうが分かりやすいこともあります。
問い合わせ送信、通知、認証後の小さな処理など。
ファイルアップロード後の変換や、Webhook受信後の処理。
毎日決まった時刻の集計や、軽いメンテナンス処理。
よく出てくる名前
サーバーレスを調べると、AWS Lambda、Vercel、Cloudflare Workers のような名前が出てきます。全部を同じものとして覚えるより、どの場所で処理を動かすサービスなのかで見ると分かりやすいです。
Lambdaはクラウド上で関数を動かす代表例です。Vercelはフロントエンド公開とサーバーレス関数をまとめて扱いやすいサービスです。Cloudflare Workersは利用者に近い場所、いわゆるエッジで処理を動かす選択肢としてよく出てきます。
イベントに反応して関数を実行する、サーバーレスの代表的なサービス。
Webサイト公開とAPI的な処理をまとめて扱いやすい、フロント寄りの開発で見かけるサービス。
利用者に近いエッジで処理を動かすサービス。短い処理や高速な応答で話題に上がりやすい。
ここまでのまとめ
サーバーレスは、サーバーが消える技術ではありません。サーバー管理をクラウドに任せ、イベントが来た時に必要な処理を実行する作り方です。
サーバーレスは、サーバーを意識しない魔法ではなく、サーバー管理の多くをクラウドへ任せる設計です。