検索
特集

徹底解説、サーバレスアーキテクチャの仕組みとメリットIT導入完全ガイド(3/3 ページ)

にわかに脚光をあびるようになった「サーバレスアーキテクチャ」の基礎講座として、用語の定義やメリットを紹介する。AWS Lambda、Cloud Functions、Azure Functionsといったサービスを勉強したい人も注目したい。

PC用表示 関連情報
Share
Tweet
LINE
Hatena
前のページへ |       

クラウドの利用コストの削減効果

 サーバレスアーキテクチャを採用する最大のメリットは、サーバを自前で構築・運用するIaaSの手法と比べ、大幅にコストを削減できる可能性があることだ。IaaSで仮想サーバを調達する場合、その上でアプリケーションを動かしているか否かに関わらず課金される。クライアントからのリクエストが少ないようなケースでも、仮想サーバは常時稼働するため、利用料金が発生するということだ。

 もちろん、処理の時間が一定であれば、その時間だけ稼働させるという方法もある。しかし、これはアプリケーションを立ち上げる時間が決まっている場合にのみ活用できる。逆に、クライアントからの要求を待っているようなケースでは待機のために仮想マシンを稼働し続けなければならないので、利用料金はかさむ。

 特にFaaSは、プログラム(ファンクション)がトリガーによって呼び出されて動作している間の時間分しか課金されない。プログラムが動いていない間は一切課金されないため、プログラムの実行時間や実行回数が少ないアプリケーションであれば、IaaSを使う場合と比べて大幅にコストを削減できる。

FaaSを使った場合の課金
図2 FaaSを使った場合の課金(出典:cloudpack サーバーレス開発ホワイトペーパー)

 逆に、高頻度でプログラムを動かす必要があるアプリケーションの場合は、IaaSで仮想サーバを立てて、その上で常時プログラムを実行させた方が安くつくこともある。どちらの方がコスト効率に優れるかはアプリケーションの特質によって変わるため、慎重な見極めが必要だ。

システム運用に掛かる手間の削減

 利用料金とともに、クラウドの費用対効果を大きく左右するのが、システムの運用管理にかかるコストだ。IaaSで仮想サーバを自前で立てた場合には、ハードウェアの運用こそクラウドベンダーに委ねられるものの、OSやミドルウェアといったソフトウェアは、原則としてユーザーの責任において管理しなくてはならない。

 一方前述したように、FaaSは、ユーザーは出来合いのプラットフォーム上にプログラム(ファンクション)を載せるだけなので、ハードウェアはもちろんのこと、OSやミドルウェアなどのソフトウェアの存在もユーザーからは隠蔽(いんぺい)され、運用の手間は省かれる。こうしたFaaSの特徴に着目した企業が、システム運用にかかる人手やコストの削減を狙って、自社システムにサーバレスアーキテクチャを適用するケースが増えてきている。

実用性の高いオートスケール

 アプリケーションのスケーラビリティの面でも、FaaSにはメリットがある。前提として、クラウドのメリットの1つに、システム規模を柔軟に増減できるというものがある。例えばIaaSであれば、システム負荷が高まってきたら仮想サーバを追加し、逆に負荷が低くなってきたら仮想サーバの数を減らすことによってシステム負荷の変動に柔軟に対応できる。

 このシステム規模の増減を自動的に行うのが「オートスケール」と呼ばれる技術で、現在多くのクラウドサービスが対応している。しかし、IaaSの仮想サーバを新たに生成・起動するには数十秒〜数分の時間を要するため、突発的な負荷増加にとっさに対応できないこともある。

 しかしその点FaaSはIaasと比べ、はるかに短時間のうちにキャパシティーを拡張できる。一例を挙げれば、Google Cloud Platform(GCP)のIaaSサービス「Compute Engine」のオートスケールは、わずか20秒弱ほどで仮想サーバを新たに起動できることを強みとしているが、同社のFaaSサービスである「Cloud Functions」は、ミリ秒単位で処理キャパシティーを拡張できるという。

エンドユーザーによるサーバアプリケーション開発

 OSやミドルウェアなどの構築・運用に関する知識がなければ利用ができないIaaSと違い、FaaSはファンクションのプログラムを組むスキルさえあれば、それなりの規模の本格的なアプリケーションを開発できる。

 例えば前出のLambdaやCloud Functionsなどは、JavaScriptでファンクションを記述できる。そのため、本来ならSIerなどを使ったエンタープライズアプリケーション基盤の開発を委託するような規模のアプリケーションでも、Webアプリケーション開発の経験があるユーザーであれば手軽に開発できるだろう。このように、エンドユーザーコンピューティングの可能性をサーバサイドにまで広げてくれるという意味でも、FaaSは新たな価値を提供してくれる技術だといえるだろう。

 以上、今回はサーバレスアーキテクチャの基礎や、主なメリットについて解説した。さまざまなメリットを企業にもたらしてくれるサーバレスアーキテクチャだが、決して万能というわけではなく、実際にはその適用が向く用途と向かない用途がある。そこで次回は、実際にサーバレスアーキテクチャの導入を検討する際に留意すべきポイントや、製品を選ぶ際の選定ポイント、導入効果が表れやすいユースケースなどについて解説する。

Copyright © ITmedia, Inc. All Rights Reserved.

前のページへ |       
ページトップに戻る