Cloudflare Workers では、サーバーレスアプリケーションを構築したり、既存アプリケーションを拡張したりできます。書いたコードは、世界中へ即座にデプロイされます。Workers の意義を理解するために、まずこの技術が生まれた環境を確認します。
Workers はサーバーレスコンピューティングのプロバイダーです。サーバーレスコンピューティング ↗ は、Cloudflare などのプロバイダーが利用者に代わってサーバーを管理するクラウドコンピューティングモデルです。開発者と企業は、アプリケーションロジックの作成とデプロイに集中できます。
クラウドコンピューティング ↗ は、仮想マシン、ストレージ、データベース、ネットワークサービスなどのコンピューティングリソースを、第三者のサーバー上でホストすることです。クラウドコンピューティングのサービスプロバイダーには、Amazon Web Services、Microsoft Azure、Google Cloud Platform、Cloudflare があります。
サーバーレスコンピューティングは、クラウドコンピューティングの一種です。バックエンドサービスを、使った分だけ提供する方式です。サーバーレスプロバイダーを使うと、基盤インフラを気にせずコードを書いてデプロイできます。サーバーレスコンピューティングには、ほかのクラウドコンピューティングモデルと異なる特徴があります。
クラウドコンピューティングでは、組織は決まった台数のサーバー、またはサーバー容量を借りられます。季節変動や想定外のリクエスト急増に備え、エンドユーザーや顧客からの高負荷でアプリケーションが止まらないよう、サーバー容量を多めに購入することがあります。
サーバーレスコンピューティングでは、借りるサーバー容量やマシン数を事前に見積もる必要はありません。サーバーレスプロバイダーがサーバー管理とプロビジョニングを担うため、開発者と組織はロジックの作成とデプロイに集中できます。
サーバーレスプロバイダーは、リクエストトラフィックの急増と減少に合わせて自動でスケールします。アプリケーションのスケーラビリティはプロバイダー側の責任です。受信リクエスト量に合わせてリソースを調整し、アプリケーションをオンラインに保ちます。
サーバーレスプロバイダーは、アプリケーションコードの実行方法が異なります。Cloudflare をはじめ、多くのプロバイダーはイベント駆動モデルを使います。イベント(HTTP リクエストや Cron Trigger など)が Worker を呼び出すと、Worker のコードが実行されます。Worker の呼び出し開始から終了までの合計時間を duration と呼びます。1 回のリクエスト中に CPU が実際に処理に使った時間を CPU time と呼びます。
サーバーレスコンピューティングを使う開発者と組織は、使用量ベースで課金されます。使い切れない、または足りなくなる固定のコンピューティングリソースに支払うのではなく、使った分だけ支払います。使用量の定義はプロバイダーごとに異なります。Workers では、使用量は CPU time です。
このページでは、次を学びました。
- Cloudflare Workers の基盤となるサーバーレスコンピューティングの概念
- 従来のオンプレミスとクラウドコンピューティングインフラの違い
- クラウドコンピューティングとサーバーレスコンピューティングの主な違い
次のセクションでは、Cloudflare Developer Platform の一部であるサーバーレスコンピューティングプラットフォーム Workers が、ほかのサーバーレスプロバイダーとどう異なるアーキテクチャなのかを学びます。