Function as a Service (FaaS) は、さまざまな運用および開発のコンテキストで急速に使用されるようになっています。
クラウド コンピューティングの新星は、API、IoT、モバイル アプリと関連してよく言及されますが、このテクノロジは開発以外でも重要な役割を果たしています。 The New Stack の「サーバーレス ガイド」レポートでは、サーバーレスの技術的なユースケースが幅広い用途に及ぶことがわかります。
サーバーレスの技術的なユースケース
予想通り、アプリケーションが主流であり、回答者のほぼ 4 分の 3 が REST API と Web アプリケーションにサーバーレスを利用しています。 しかし、その後はもっと面白くなります。 バッチ ジョブやスケジュールされたタスク、そして漠然とした「ビジネス ロジック」は、依然として回答者のユース ケースの半数以上を占めています。
「スケジュールされたタスク」の領域に入るのは、クラウド資産を管理するためのクラウド機能の使用です。 クラウドとコンテナが企業に提供する機能の 1 つは、リソースの使用を最適化する手段です。 通常、私たちはこれをスケーラビリティの観点から考えます - 特にコンテナとマイクロサービスと組み合わせる場合はそうです。 スケーリングが必要なアプリケーションの部分のみをスケーリングすることで、コンピューティング リソース (およびコスト) を節約できます。
しかし、その方程式の反対側には、使用されていないリソースをシャットダウンする機能があります。 Function as a Service とサーバーレス (必ずしも同じものではありません) の魅力の 1 つは、真のユーティリティ価格設定モデルです。 実際に使用した分だけお支払いいただきます。 理想的には、サーバーレス/FaaS 環境にはアイドル状態のリソースがないため、それらに対して料金を支払う必要はありません。 ただし、クラウドでは、アイドル状態のリソースに対して、それらのリソースが何らかのアプリやサービスを実行している場合と同じコストを支払う可能性があります。 これは些細な問題ですが、アプリケーションのダウンタイムが長い場合は大きな問題になる可能性があります。
ここでクラウド機能が役立ちます。 実行中のクラウドの Function as a Service 機能を活用することで、使用されていないインスタンスをシャットダウンし、後で再起動するタスクをスケジュールできます。 これは、明確に定義された就業日にのみ使用されるアプリケーションのように、かなり静的なスケジュールを想定しています。 このようなアプリケーションは、多くの場合、従業員が日中および平日のみ使用する従来の「ビジネス」アプリケーションです。 週末にビジネス アプリを構成するインスタンスをシャットダウンすると、長期的にはかなりのコストを節約できます。
クラウド プロバイダーのサービスとしての機能を利用すれば、夜間や週末にアプリケーションを「ウォーム」状態に維持するためのコストを削減できる可能性があります。 たとえ 1 日 12 時間労働を想定していたとしても、残りの 12 時間はシャットダウンすることでコストを半分に削減できます。
cron のクラウドバージョンのように思えるものを実装する方法を知りたい場合は、次のリソースを確認してください。