2019.10.24
サーバレスでのアプリ開発
アジャイル開発でマイクロサービスが注目されてくると、それを実行できるプラットフォームを提供できるサービスへの需要が高まります。
近年では、さらにマイクロサービスによって構築されるシステム向けに最適化された機能(Functions)毎に実行環境がサービスとして提供されるFaaS(Function as a Service)というアーキテクチャも登場しています。
必要最小限の機能のみを提供するコンポーネントを多数組み合わせて相互通信させるマイクロサービスでは、コンポーネントの分割をさらに細かく行うことで、保守コストやプログラムの複雑性を軽減し、開発効率を向上させるのですが、機能を分割していくと利用頻度の少ない機能が発生してしまい、使用するマシンやプログラムも増えてしまいます。これを、効率よく実装し管理できるようにしたのが、FaaS というサーバーレスでアプリケーション開発を行えるサービスです。
FaaSでは、WebAPIを経由して、細かな機能をサービスとして提供しており、イベントドリブン方式でサービスのコードを作成し、それを連携させるだけでコンテナ上で実行でき、終了したら破棄されます。
AWSのLambda、Google のCloud Functions、Microsoft のAzure Functionsなどが有名ですが、その多くは、各機能のリクエスト件数に対する課金で、毎月最初の100 万件などのリクエスト無料枠が設けられています。これにより、導入の 初期投資が削減され、使用頻度の少ない機能があっても、コストを気にせず、短期間での開発が可能です。
開発者の多くは、できることなら、コストは気にせずテストや実装ができ、環境に依存したコーディングを気にしないで開発できるサーバレスな環境を望んでいます。つまり、サーバレスとは、サーバの運用や管理が不要ということです。
FaaS を利用すれば、オンプレミスにようにサーバの維持管理に悩ませられることないサーバレスの環境で、Web アプリケーションなどの開発において、一番効率的で低コストなマイクロサービスの開発を実現できます。
[タグ] トレンド 用語
[関連]