クラウドコンピューティングが一般に普及する前は、開発チームが自社のサーバーハードウェアを管理し、ソフトウェアやセキュリティの更新も自分たちで行っていました。これは時間がかかり、煩雑で、コストもかかる作業でした。
しかし、クラウドコンピューティングの登場と、第三者企業が提供するサーバーレスコンピューティングのおかげで、開発チームはこの作業を支えるインフラを気にすることなく、サービスを構築・運用できるようになりました。
続きを読む:サーバーレスアーキテクチャとは?
サーバーレスコンピューティングの仕組み
サーバーレスコンピューティングでは通常、開発者が記述した関数がトリガーに基づいて実行されます。稼働中のサーバーがなければサーバーが起動し、関数が実行されます。これらはすべて、第三者サービス側で処理されます。
例えば、顧客データを検証したい場合、サーバーレスコンピューティングを利用して実現できます。顧客がファイルをアップロードすると、特定の顧客のバッチに含まれるすべてのファイルが準備できているかを確認する関数が実行され、各ファイルの構造が検証されます。
サーバーレスコンピューティングを使う理由
サーバーレスコンピューティングを使わない場合、仮想サーバーを利用していても、インフラの保守について考えなければなりません。しかし、サーバーレスコンピューティングなら、コードに集中し、その役割を確実に果たせるようにすることに専念できます。
サーバーレスコンピューティングを提供する第三者プロバイダーが、物理ハードウェア、オペレーティングシステム、Webソフトウェアの管理を担います。サーバーレスコンピューティング機能を提供するプロバイダーの例には、次のようなものがあります。
- Twilio Functions
- AWS Lambda
- Microsoft Azure Functions
- Cloudflare Workers
- Google Cloud Functions
サーバーレスコンピューティングの代表的なアーキテクチャの1つが、Function as a Service(FaaS)です。このアーキテクチャでは、開発者がコードを、特定のタスクを実行する個別の関数に分けます。これらの関数は、受信メールやイベント、HTTPリクエストなどのイベントによって実行されます。
この記事では主にこのアーキテクチャに焦点を当てます。ただし、ほとんどのサーバーレスコンピューティングプロバイダーは、データベースやストレージのサービスも提供しています。
TechRepublicの記事を読む:サーバーレスコンピューティングの最適なソリューション
サーバーレスコンピューティングのメリット
クラウドコンピューティングの利用は世界的に急増しており、中小企業だけでなく多国籍企業もこのテクノロジーを活用しています。サーバーレスコンピューティングアーキテクチャを利用するメリットは次のとおりです。
- コスト効率:サーバーレスコンピューティングでは実際の利用量に応じてのみ課金されるため、使っていないサーバーにお金を払う必要がありません。
- 効率性:サーバーレスアーキテクチャを利用すれば、サーバーの保守を気にする必要がなくなり、チームはコードベースに集中できます。
- スケーラビリティ:需要に応じてコードを簡単にスケールアップできます。この処理はプロバイダーが担います。
- 市場投入までの時間短縮:チームはコードベースに集中し、サーバーインフラを気にする必要がないため、製品を市場に投入するまでの時間を短縮できます。
IT Business Edgeの記事を読む:サーバーレスコンピューティングでDevOpsを改善する
サーバーレスコンピューティングの課題
サーバーレスコンピューティングアーキテクチャの利用にはさまざまなメリットがありますが、自分に適しているかどうかを判断する際には、このテクノロジーに伴う課題も考慮すべきです。
- 制御性の欠如:サーバーレスコンピューティングでは、サーバーインフラを所有せず、管理することもできません。そのため、ハードウェア障害やソフトウェアエラー、その他サーバーに影響する問題が、業務に重大な影響を及ぼす可能性があります。
- 互換性の問題が生じる可能性:複数のベンダーのクラウドサービスを利用したい場合もあるでしょう。理論上は可能ですが、サーバーレスアーキテクチャに1つのプロバイダーを利用し、その機能を他のクラウドサービスと組み合わせたい場合、互換性の問題が生じる可能性があります。
- パフォーマンスに影響する可能性:関数がしばらく使用されていないと、その関数は停止されます。そのため、再び呼び出された際にはコードの実行にかかる時間が一時的に長くなります。これはコールドスタートと呼ばれ、業務に影響する可能性があります。
Developer.comの記事を読む:サーバーレス関数とマイクロサービスの比較
サーバーレスコンピューティングのユースケース
一般に、サーバーレスコンピューティングは、ホスティングが必要な小規模な関数を利用したいチームに適しています。サーバーレスコンピューティングは、次のようなさまざまなユースケースに適しています。
- トリガーベースのタスク:何らかのトリガーに基づいて実行する必要があるイベントは、サーバーレスコンピューティングに適しています。例えば、Webサイトでユーザーがサービスに登録したことをきっかけに、ウェルカムメールを送信する処理が挙げられます。
- 非同期タスク:サーバーレスコンピューティングは、Webサイトに画像がアップロードされた後の画像処理など、バックエンドのプロセスを処理できます。
- RESTful APIの構築:サーバーレスコンピューティングを利用すれば、RESTful APIを構築でき、必要に応じてスケールアップできます。
サーバーレスコンピューティングを活用する
通常、自社または仮想サーバーでホスティングしている小規模な関数がある場合は、サーバーレスコンピューティングソリューションを利用するメリットを検討する価値があるかもしれません。
自社サーバーの保守について悩む必要がなくなり、コスト削減、市場投入までの時間短縮、スケーラビリティの向上といったメリットを得られます。