FaaS(Function as a Service)とはクラウドサービスの一種です。
アプリケーション開発において、サーバー管理の手間をかけずに、開発者がアプリ開発に専念できる環境を提供するものです。
本記事ではFaaSの概要や、ほかのクラウドサービスとの違いについて解説します。
FaaS(Function as a Service)とはどんなサービスか?読み方・意味も合わせて解説
FaaSは「ファース」と読みます。
クラウドサービスの一種で、最大の特徴は「サーバーレス」でアプリケーション開発ができる点にあります。
FaaSなどのクラウドサービス登場以前、アプリケーション開発にあたるエンジニアは、サーバー管理も業務の一部として担っていました。
そのため、本来注力すべきアプリケーション開発に専念できない状況がありました。
実用的なサーバーレスプラットフォームであるFaaSの登場は、こうしたエンジニアのジレンマを解消する、画期的なものとなりました。
サーバーレスとは?
アプリケーションを開発する場合、本来は自社でサーバーを準備・運用する必要があります。
「サーバーレス」といっても、アプリ開発にサーバーが不要ということではありません。
サーバーは必要ですが、FaaSではサーバー管理をサービス提供会社が行います。
このためFaaSを利用すれば、アプリ開発者が自らサーバーを管理する必要がなく、プログラミングに専念できるのです。
サーバー管理の煩わしさから解放されるため、FaaSは開発現場に多く取り入れられるようになりました。
オートスケーリングとイベントドリブン
FaaSの特徴的な機能としては、「オートスケーリング」と「イベントドリブン」が挙げられます。
この2つの機能により、開発者はサーバーの状態を気にすることなく、プログラミングに専念できるのです。
オートスケーリング
オートスケーリングとはサーバーの状態に応じて、サーバーを振り分け、自動で拡張・縮小する機能です。
この機能により、開発者はサーバーの負荷を気にすることなく、作業を進めることができます。
イベントドリブン
イベントドリブンとは、なんらかの操作(イベント)を実行した際に、初めて機能が実行される仕組みです。
サーバーが常時稼働して待機する必要がなくなります。
例えば、コードを書くだけで一連の処理が自動的に実行されるというように、効率的な作業が可能になります。
FaaS(Function as a Service)を利用するメリットとは?
Faasの利用は以下に挙げるメリットをもたらします。
コスト削減
まず、サーバー費用がかからない点が大きなメリットです。
自社でサーバーを設置する必要がないため、導入費用が大幅に削減できます。
同時に、自社でのサーバー管理が不要なため、管理コストも発生しません。
また、FaaSはイベントドリブン方式で駆動するため、処理実行中の費用しか発生しないという点も、コスト面では大きなメリットです。
またFaasは、あらゆるプログラミング言語に対応しているため、汎用性が高い点も特徴です。
柔軟な自動スケール
また、Faasが、イベントドリブン形式で稼働することは、処理量の増減に柔軟に対応できるメリットとなります。
例えばECサイトのように、時間帯により利用量の増減が激しいサービスを運営する場合には、柔軟な自動スケールが実行されるFaaSは適しているといえます。
サーバー管理が不要
開発者がサーバーの状態を気にすることなく、開発に集中できる点はFaaSの最大のメリットです。
サーバー管理を自社で行う場合は、管理に関わる工数が増え開発者の負担となります。
その結果、アプリ開発のスピードが損なわれることも考えられます。
FaaSを利用すれば、こうした面倒な管理をサービス提供会社に任せられます。
ストレスなく、アプリ開発に専念できる環境が手に入れられるのです。
FaasとPaasの違いを解説
FaaSと同様にサーバーレスの運用で、アプリケーション開発が可能になるクラウドサービスに「Paas」があります。
Paas(Platform as a Service)とFaaSの違いは、操作(イベント)に対する反応方式の違いです。
FaaSはイベントドリブン方式であり、操作(イベント)の発生により、その処理に必要な部分だけが稼働する仕組みです。
これに対し、Paasは「リクエストリプライ方式」となります。
リクエストリプライとは、操作(イベント)があるたびに、アプリケーション全体が起動される方式のことです。
Faasを利用するデメリット
画期的なクラウドサービスである、FaaSにもデメリットは存在します。
クラウドサービスであることから、社内のネットワーク環境や、サーバー接続の混雑状況によっては、処理スピードが遅くなることがあります。
設計に関する難易度の高さもデメリットとして挙げられます。
またFaaSには、各社により提供されるサービス間の連携が難しいという側面があります。これは「ベンダーロックイン」と称されます。
サーバーレスの技術仕様が標準化されていないことが原因で、サービス間の乗り換えを困難にしている問題でした。
しかし、近年では技術仕様の標準化を推進する動きもあり、今後はベンダーロックインの問題は解消する方向に向かうとされています。
Faasの日本の現状と将来性について
FaaSのサービスは、「Amazon Web Service」が2014年にサービスを開始した「AWS Lambda」を皮切りに、「Microsoft」や「Google」も追随します。
Microsoftは、「Azure Function」というサービスを2016年に、Googleは「Google Cloud Function」を2017年にそれぞれ一般公開しています。
いずれのサービスも利便性やコスト面のメリットから、大手からベンチャーまであらゆる規模の組織に支持を集め、導入企業が増加しています。
AWS Lambdaの利用状況
これら3つのサービスがFaaSの中心を担っていますが、もっとも多く利用されているのは、
AWS Lambdaです。
2019年以降、導入企業は急増しています。
また、導入企業が増えただけでなく、活用頻度も飛躍的に高まっている現状があります。
2019年以降に導入した企業における使用状況は、2年後の2021年初頭において、一日あたりの起動回数で、実に3.5倍にもなっています。
Azure FunctionとGoogle Cloud Functionの躍進
AWS Lambdaは、FaaSによるサーバーレスの利便性を広め、導入企業の支持を集めています。
しかし、後発のAzure FunctionとGoogle Cloud Functionについても、順調にシェアを伸ばしています。
Azure Functionの導入企業の割合は、過去1年間で20%から36%にまで増加しています。また、Google Cloud Functionについても、導入率が25%を超えるといった状況です。
日本におけるFaaSの将来性
日本におけるFaaSの普及において、特筆すべき点があります。
従来、保守的と考えられていた大手企業や、金融機関などで導入事例が増えている点です。
例えば、日本経済新聞の電子版における紙面ビューアの画像処理に、AWS Lambdaが使用されています。
また、金融機関では三菱UFJ銀行が、残高照会サービスにAWS Lambdaを採用し、話題となりました。
消費者が日常的に使用するサービスを支える技術として、FaaSは世の中に浸透しており、今後もこの傾向は加速していくでしょう。
まとめ
Faasはサーバー管理の手間を省き、エンジニアが本来注力すべき開発業務に専念できる環境を提供してくれます。
コスト面のメリットも高く、導入する企業が急増しています。
今後もこの傾向はつづくと見られます。
Faasは、クラウドサービスの普及に、大きなインパクトを与えつづけるのではないでしょうか。