【解説】FaaSとは?利用するメリットや具体例、CaaS・PaaS・IaaSとの違い
SaaSをはじめ数多くのクラウドサービスが利用されています。その中でも、サーバーレスでアプリケーション開発を行えるサービスがFaaSです。本記事では、FaaSとはどのようなサービスなのか、利用するメリットやCaaS・PaaS・IaaSとの違いを解説します。
目次
FaaSとは?
FaaS(Function as a Service:ファース)とは、サーバーレスの状態で開発が行えるクラウドサービスのことです。
通常は自社のサーバー内で準備をしなければなりませんが、Faasはベンダーが提供しているクラウド上で利用するため、運用にあたっての手間がかからないのが特徴といえます。
なお、FaaSには「オートスケーリング」や「イベントドリブン」といった特徴があります。
オートスケーリング
オートスケーリングとは、作成したプログラムに応じてサーバーを自動的にスケーリング(拡大・縮小する)してコストを削減できるのが特徴です。
開発者側はサーバーの負荷に気を配る必要がないのがメリットと言えるでしょう。
イベントドリブン
イベントドリブンとはFaasのイベントドリームという機能を利用し、コードのみを記述するだけで処置を実行できるのが特徴です。
プログラムコードを記載して連携させるだけで処理を実行できるのはが、イベントドリブンの大きなメリットと言えるでしょう。
アプリケーションの開発者にとっては、サーバーのことを気にすることなく効率的に開発作業を進められる点がFaaSのメリットであり大きな特徴です。
▷【2023年最新】ビジネスに役立つおすすめSaaSサービス12選!
サーバーレスコンピューティングとの違い
FaaSもサーバーレスコンピューティングも、どちらとも開発者側でサーバーを用意することなくプログラムの処理ができる仕組みです。また両者ともにOSの管理も不要です。料金体系について、使用した分だけ支払う従量課金制を採用している点も共通しています。
サーバーレスコンピューティングという枠組みの中にFaaSがある、という位置付けで考えておくと良いでしょう。ただし、FaaSでは任意のプログラムが実行可能な一方で、アプリ開発に一定の制約がある点が両者の違いといえるでしょう。
▷SaaSリリースまでの4フェーズと開発・組織体制のポイントについて
FaaS利用によるメリット
アプリ開発者がFaaSを利用するメリットは次のとおりです。
- アプリ開発におけるコストの削減
- サーバ管理の手間が少ない
- 幅広い対応言語
- 拡張性の高さ
アプリ開発におけるコストの削減
FaaSを利用するメリットとしては、アプリ開発におけるコストを削減できる点が挙げられます。FaaSは使った分だけ課金される仕組み(従量課金)であり、使わなければ料金は発生しません。
また、自前でサーバーを用意する場合に発生するコストも抑えることができます。
サーバー管理の手間が少ない
FaaSはアプリ開発者がサーバーを用意する必要がありません。サーバーはベンダーが管理しているため、アプリ開発者はサーバーのことを気にすることなく、アプリ開発業務にリソースを集中できます。
幅広い対応言語
サービスによって異なりますが、FaaSは幅広いプログラミング言語に対応しているため、アプリ開発者におけるより広範囲のニーズに対応します。
ただし利用したいプログラミング言語に対応していない可能性もあるため、実際に利用する際は事前に確認しておくと良いでしょう。
拡張性の高さ
FaaSは拡張性が高い点もメリットです。FaaSのサービスによりますが、従来のコンポーネントを組み合わせてアプリケーションを構築することもできます。
FaaS利用によるデメリット
FaaSの利用にはデメリットもあります。ここでは主なデメリットを2点解説するので、FaaSを導入する前に把握しておきましょう。
- 処理遅延の可能性
- アプリ設計が難しい
処理遅延の可能性
FaaSはネットワークを通じて作業を行う必要があるため、どうしても処理の遅延(レイテンシー)が発生してしまいます。
多少の遅延は許容できたとしても、サーバー接続が集中した場合などは大きな遅延が生じる可能性があることに注意が必要です。
アプリ設計が難しい
FaaSを利用する際は、FaaSが定めているルール(仕様)に沿った設計が必要となります。
そのため、従来どおりの設計方法とは異なる部分が生じることは留意しておかなければなりません。また、専門知識を持ったIT人材の確保が難しい点もデメリットになり得るでしょう。
FaaSを利用する際の注意点
FaaSを利用する際の注意点は、サービスによって仕様が異なるため、導入する際には慎重に選択する必要があるという点です。
FaaSを選ぶうえで比較すべき項目の一例は次のとおりです。
- 対応するプログラミング言語
- 日本語対応の有無
- 料金体系(無料枠など)
- メモリ
- 最長実行時間
これらの項目を比較検討したうえで、自社の環境や目的にあったサービスを選びましょう。
合わせて理解したいクラウドサービス
FaaSはクラウドサービスの一種ですが、その他にもさまざまなクラウドサービスがあります。ここでは以下の3つを紹介します。
- CaaS
- PaaS
- IaaS
CaaS
CaaS(Container as a Service:カース)は、コンテナの運用・管理サービスを提供するクラウドサービスの1つです。コンテナとは、1つのサーバーで複数の開発環境を構築して独立したサーバーのように利用する技術を指します。CaaSは、開発者の管理範囲でいうと後述するPaaSとIaaSの中間に位置します。
▷【解説】CaaSとは?意味やメリット・デメリット・サービス例について
PaaS
PaaS(Platform as a Service:パース)は、ハードウェアはもちろんOSやミドルウェアも利用できるクラウドサービスの1つです。CaaSやIaaSと比べると、アプリ開発自体にリソースを集中できる度合いは大きめだといえます。
▷BPaaS(ビーパース)とは?BPOとの違いや市場規模・メリットを解説
IaaS
IaaS(Infrastructure as a Service:イアースまたはアイアース)は、サーバーやストレージなどのインフラをクラウドを通じて利用できるクラウドサービスです。CaaSやPaaS、FaaSの中で最も自由度が高い反面、OSは自分で選ぶなど、開発者の管理範囲が広いといった特徴があります。
▷【解説】IaaS・PaaS・SaaSとは?各定義や違いをわかりやすく解説!
FaaSの具体的なサービス事例
FaaSを使って開発を行った事例を5例紹介します。企業がFaaSをどのように利用しているのかぜひチェックしてみてください。
日本経済新聞社
日本経済新聞社は、日経電子版の紙面ビューアーの画像処理にFaaSであるAWS Lambdaを活用しています。
日本経済新聞社では当初、電子版への膨大なアクセスをどのようにさばくかが課題となっていました。そこで同社はシステムのリサイズが容易で、拡張性と柔軟性に優れたAWSを選択しました。
結果、画像処理機能をAWS Lambdaにしたことでアクセス負荷に応じたサーバー管理が可能になり、同時に大幅なコスト削減も実現できました。
[出典:AWS「AWS 導入事例:株式会社 日本経済新聞社」]
三菱東京UFJ銀行
三菱東京UFJ銀行(現:三菱UFJ銀行)は、クラウド音声サービスのAmazon Alexaに対応し、音声応答による残高照会や入出金明細照会を行えるサービス「三菱東京UFJ銀行Voice Banking for Alexaβ版」のシステム開発にあたり、AWS Lambdaを活用しました。
なお、本システムは2017年11月15日にサービスを開始したものの、2019年12月8日にはサービス終了となっています。
[出典:TIS「TIS、「Amazon Alexa」に対応する『三菱東京UFJ銀行Voice Banking for Alexaβ版』の開発を支援」]
スクウェア・エニックス
ゲームなどデジタルエンターテイメント事業を主軸とするスクウェア・エニックスは、同社の主力作品『ドラゴンクエストX』において、ゲーム内で撮影された写真の画像加工処理にAWS Lambdaを活用しました。
ゲーム内の写真撮影機能は大きな人気を得ており、特にクリスマスや大晦日にはゲーム内イベントが開催される影響により、撮影される写真の数が膨大になるといいます。イベント時にはユーザーが写真を閲覧できるまで4時間ほどかかるなど、処理の高速化が課題とされていました。
そこでAWS Lambdaで処理テストを行ったところ、想定される1分間6,000枚の3倍となる18,000枚の画像処理が10数秒以内に完了しました。さらに、コストもオンプレミスで行う場合と比べて20分の1程度まで削減できたなど、多くの導入効果を得られたといいます。
[出典:AWS「AWS 導入事例:株式会社スクウェア・エニックス」]
Netflix
動画配信サービス大手のNetflixは、メディアファイルのエンコードプロセスなどのためにAWS Lambdaを活用しています。
Netflixの最高製品責任者(CPO)は導入に際して、AWS Lambdaの活用により非効率的なプロセスを置き換え、エラー率を減らすことを見込んでいると説明しています。
[出典:AWS「Netflix & AWS Lambda Case Study」]
iRobot
ロボット掃除機のRoomba(ルンバ)などを提供するiRobotは、AWS IoTとAWS Lambdaをベースとしたサーバーレスアーキテクチャを採用しました。
これによりクラウドプラットフォームのコストを抑え、10人未満の人員でソリューションを管理しているといいます。
[出典:AWS「iRobot の導入事例」]
FaaSとはサーバーレス状態で開発が行えるサービス
FaaS(Function as a Service)とは、サーバーレスでアプリ開発が行えるクラウドサービスのことで、エンジニアはサーバー管理などを気にすることなく開発に集中できるといった利点があります。
FaaSはオートスケーリングやイベントドリブンといった特徴があり、アプリ開発におけるコスト削減やサーバー管理の手間削減など、企業にとっても多くのメリットがあります。
ぜひ本記事をきっかけに、FaaSへの理解を深め、CaaSやPaaS、IaaSと比較しながらニーズに合うサービスを選んでみてください。
SaaSの記事をもっと読む
-
ご相談・ご質問は下記ボタンのフォームからお問い合わせください。
お問い合わせはこちら