サーバーレスグローバルAPI
サーバーレスAPIは、従来のサーバーインフラを管理することなく、スケーラブルで信頼性の高いアプリケーションプログラミングインターフェース(API)を構築および展開するための現代的なアプローチを表しています。これらのAPIは、ユーザーや他のシステムからのリクエストを処理し、必要なロジックや操作を実行し、応答を返すように設計されており、開発者が基盤となるサーバーをプロビジョニングまたは管理する必要はありません。
サーバーレスAPIの中心には、サーバーレスコンピューティングの概念があります。ここでは、開発者はビジネスロジックを実装するためのコードを書くことに専念し、サーバーのプロビジョニング、スケーリング、メンテナンスについて心配する必要がありません。これにより、APIベースのアプリケーションの機敏性が向上し、市場投入までの時間が短縮されます。
開発者は、APIエンドポイントとそれに対応するロジックや機能を関数やマイクロサービスを使用して定義し、これをサーバーレスプラットフォームにデプロイします。プラットフォームは、受信リクエストに応じてこれらの関数の実行を処理します。
さらに、サーバーレスAPIは、認証および認可サービス、データベース、イベント駆動アーキテクチャなど、他のクラウドサービスとシームレスに統合されることが多く、開発者は最小限の運用オーバーヘッドで複雑でスケーラブル、かつレジリエントなアプリケーションを構築できます。
ほとんどのクラウドサーバーレス実装は、コードが実行される単一のリージョンを持っています。これは、世界中のどこからのリクエストも、この単一の場所に到達するためにインターネットを通過しなければならないことを意味します。APIリクエストへのすべての応答も、同じインターネット経路を通じてユーザーに返送されなければなりません。

Cloudflareは、異なるグローバルファーストアプローチを採用しています。グローバルに展開されたアーキテクチャは、世界の異なる地域からAPIにアクセスするユーザーに対して、低遅延と高可用性を提供します。パフォーマンス向上を実現するためには、コンピュートだけでなく、理想的にはデータも分散される必要があります。キャッシングやグローバルレプリケーションなどの異なるソリューションがこれを可能にします。

全体として、サーバーレスのグローバル展開APIは、コスト効率が高く、スケーラブルで機敏なアプローチを提供し、組織がインフラ管理の複雑さに悩まされることなく、ユーザーに価値を提供することに集中できるようにします。
これは、Cloudflare上のサーバーレスAPIのアーキテクチャの例であり、異なるコンピュートおよびデータ製品がどのように相互作用できるかを示すことを目的としています。
- クライアントリクエスト: APIエンドポイントにリクエストを送信します。
- APIゲートウェイ/ルーター: Workersを使用して受信リクエストを処理し、有効性を確認し、必要に応じて認証ロジックを実行します。その後、(変換および/または強化された)API呼び出しを個々のWorkersにService Bindingsを使用して転送します。これにより、関心の分離が可能になります。
- 読み取り重視のデータ: KVから読み取り、読み取り重視の非動的データを提供します。これには、設定データや製品情報が含まれる可能性があります。必要に応じて書き込みを行い、limitsを考慮します。
- リレーショナルデータ: リレーショナルデータを処理するためにD1をクエリします。これには、ユーザーデータ、製品データ、またはその他のデータが含まれる可能性があります。
- 外部データ: Hyperdriveを使用して外部データベースをクエリします。適用可能な場合は、パフォーマンスを向上させるためにキャッシングを活用します。これは、データ移行が実装の範囲外である場合に特に役立ちます。