サーバレスとは?仕組み・メリット・クラウドとの違いを解説

 

2023年5月12日掲載

サーバレスとは?仕組み・メリット・クラウドとの違いを解説

サーバレス(サーバーレス)とは、システム開発・運用を行う上でサーバの構築や管理が不要であり、サーバを意識しない考え方を指します。サーバレスサービス(以降、サーバレス)は、サーバを意識する必要が無く運用効率化を目的としたサービスです。本記事ではサーバレスのメリット、IaaSとの違いなどを解説していきます。サーバレスを検討している方の参考になれば幸いです。

目次

サーバレスとは

サーバレスとは

「サーバレス」とは、その名前が表す通りサーバを意識せずに利用できるサービス・アーキテクチャを指します。

一般的なWebアプリケーションや業務システムは、24時間365日稼働するサーバ上に構築しますが、システムによっては日中帯や週末にしかアクセスが発生しないケースもあります。こうしたケースでは、サーバが稼働していない時間が非常に多くなり、コストパフォーマンスがとても悪くなります。そこで活用できるのがサーバレスです。サーバレスであれば、必要なタイミングでのみリソースを利用することができコストパフォーマンスがとても良くなります。さらに、サーバの運用からも解放されるため、コストとともに労力を抑えることができる優れたアーキテクチャです。ここではサーバレスの仕組みについて簡単に解説します。

サーバレスの仕組み

サーバレスの流れ

サーバレスを実現するには、各クラウドベンダが提供するサーバレスサービス(AWSのLambdaなど)にコードをアップロードします。このコードが、サーバレスで実行したい処理の本体となります。なお、サーバレス処理は上図の通りさまざまな機能と連携可能です。では、サーバレス処理はどのように起動すればよいのでしょうか。

サーバレス処理は、さまざまなイベントをトリガーに実行されます。例えば、下記の処理が行われたとき、その処理に連動してサーバレス処理を呼び出すことが可能です。

  • Webサイトへのアクセス
  • ストレージサービスへのファイルアップロード
  • スケジュールされた日時
  • チャットツールへの書き込み

このような仕組みにより、一例として下記の処理を実現できます。

  1. ストレージサービスにファイルがアップロードされる
  2. サーバレス処理が起動する
  3. アップロードされたファイルの内容をデータベースに保存する
  4. データベースに登録された内容を分析する
  5. 分析結果に異常を検出した場合は、メールおよびチャットにてアラートを発報する

サーバレスの特長

サーバレスの特長

サーバレスにはどのような特長があるのでしょうか。ここでは各クラウドベンダが提供するサーバレスのサービスや、特長などを紹介します。

サーバレス = FaaS

サーバレスでアプリケーションを開発できるクラウドサービスを「FaaS(Function as a Service)」と呼びます。

通常アプリケーションは、複数のファンクション(メソッドや関数とも呼ばれる)を実装しアプリケーション内で適宜利用することで、目的の処理を実現しています。このアプリケーションはサーバにデプロイ(構築)することで利用できるようになります。

一方、FaaSは上記のファンクション単位で開発・実行します。サーバレスであるため、サーバを意識する必要がない点が特長といえます。このFaaSには類似するサービスが多いので、それぞれ違いについても簡単に説明します。

サーバレス=FaaS

IaaS(Infrastructure as a Service)は、サーバなどのインフラをサービスとして提供する形態です。自由度が高い反面、開発者が担当すべき領域も広くなってしまうのが特徴です。

CaaS(Container as a Service)は、コンテナと呼ばれる技術を活用したサービスです。サーバレスアーキテクチャを導入しているところは、FaaSとの共通点といえます。ただし、FaaSはFunction(メソッドや関数と呼ばれる機能の最小単位)単位で実行可能ですが、CaaSはより大きなアプリケーション単位で実行します。 

PaaS(Platform as a Service)は、OSやミドルウェアなどを提供するサービスを指します。CaaS同様に高い柔軟性をもつ一方で、開発者が運用すべき領域が広い点が特長といえます。

主要サーバレスのサービス

サーバレスは、クラウドならではのメリットを享受できるため、クラウドネイティブな開発を行う際は利用頻度が高いプロダクトの1つです。

以下に主要クラウドベンダのサーバレスサービスの特長をまとめました。

 

AWS Lambda

Azure Functions

Google Cloud Functions

Alibaba Cloud Function Compute

対応言語

  • C#
  • Go
  • Java
  • PowerShell
  • Python
  • Ruby
  • Node.js
  • C#
  • F#
  • Java
  • JavaScript
  • PowerShell
  • Python
  • TypeScript
  • Go
  • Java
  • Node.js
  • PHP
  • Python
  • Ruby
  • NET Core
  • C#
  • Java
  • Node.js
  • PHP
  • Python

最大
実行時間

15分

10分
※Premiumプランは30分
  • 第1世代:9分
  • 第2世代:HTTP関数は60分 / イベントドリブン関数は9分

10分

課金体系

100万件リクエストあたり 0.20USD

100万件リクエストあたり 0.20USD

100万件リクエストあたり 0.40USD

100万件リクエストあたり 0.20USD

各社のサービスを比較すると、対応言語や最大実行時間および課金体系などに僅かな差分はあるものの、大きな違いは見当たりません。4社ともクラウド業界にて激しいシェア争いをしているため、他社を追随する仕様を実現しているものと予想されます。

いずれにしても各ベンダともにこれらのサーバレスサービスを提供しているため、利用する門戸は常に開かれているといえるのではないでしょうか。

サーバレスのメリット

サーバレスのメリット

サーバレスは、多くのメリットをもっています。ここではサーバレスのメリットとして下記の5つを説明します。

  • サーバ運用が不要
  • 従量課金のためコスト削減ができる
  • スケーラビリティ(拡張性)が高い
  • 可用性が向上する
  • 新サービスやマイクロサービスに対応しやすい

サーバ運用が不要

サーバレスは、サーバ運用が不要です。

そのため、サーバの構築やバグ対応や脆弱性などのパッチ適用など、サーバの構築および運用にかかるコストや運用の手間を省けます。

サーバを含めたインフラ部分は、手間やコストをかけても競合他社とのサービス競争領域にはなりにくいという特性があります。サーバレスを導入すれば、競争領域となるアプリケーションの開発に注力しやすいでしょう。

従量課金のためコスト削減ができる

サーバレスは、従量課金のためコスト削減が可能です。

クラウドでは、仮想コンピューティングサービス上にサーバを構築するケースもあります。このようなサービスの場合、仮想マシンを起動している時間単位で課金されるケースが一般的です。やや極端な例となりますが、1日1回10分だけ処理を実行するアプリケーションだとしても、仮想マシン(サーバ)を24時間稼働させた場合は24時間分の利用料が発生してしまいます。

一方でサーバレスは、処理を実行した回数や時間に対して課金が発生します。先ほどの例でいうと「1日1回10分」に対する利用料のみです。サーバレスであれば、大幅にコスト削減できる可能性があります。

従来型サーバとサーバレスのコスト比較

スケーラビリティ(拡張性)が高い

サーバレスは、高い拡張性を有しています。

一般的にシステムを構築する場合、処理に必要となるCPUやデータ量などをもとにあらかじめリソースを用意しなければなりません。性能が不足した場合は処理が滞るリスクもあり、高い利用料を払って高性能なリソースを用意しても結局使用しなかったというケースもあるでしょう。

サーバレスであれば、実際のデータ量などに応じて自動的にリソースの性能をアップ・ダウンしてくれる「オートスケール機能」をもっています。この機能により、コストを抑えながら常に最適なリソースで処理を実行できます。

可用性が向上する

サーバレスを導入すると、可用性が向上します。

各クラウドベンダが提供するサーバレスのサービスは、利用者が冗長化などを意識する必要がなく、クラウドベンダ側が可用性などを考慮した構成を提供しています。そのため、サービスそのものを利用できなくなるリスクが低く、安定した稼働を継続可能です。

新サービスやマイクロサービスに対応しやすい

サーバレスは、新サービスやマイクロサービスに対応しやすいアーキテクチャです。

収益性が不透明な新サービスの場合、可能な限りミニマムにスタートしたいというケースも多いのではないでしょうか。クラウドサーバ、あるいはオンプレミスのサーバ上にアプリケーションを構築する場合、アプリケーションに加えインフラ構築・運用でもコストが発生します。

サーバレスであれば、実行すべき機能のみに開発リソースを注力できるため、新サービスをミニマムにスタートできます。また、サーバレスはマイクロサービスアーキテクチャとも親和性が高く、保守性に優れたアプリケーションを構築可能な点もメリットといえるでしょう。

サーバレスのデメリット

サーバレスのデメリット

多くのメリットをもつサーバレスですが、デメリットもあります。ここでは、サーバレスがもつ3つのデメリットを解説します。

  • ベンダロックインとなり、ほかのクラウドベンダへ移行しにくい
  • クラウドインフラの障害に大きく影響される
  • タイミングによって処理に時間がかかる

 ベンダロックインとなり、ほかのクラウドベンダへ移行しにくい

サーバレスはベンダロックインが起きやすく、ほかのクラウドベンダへの移行が難しくなる場合があります。

サーバレスは「Event/Trigger」「サーバレス処理」「Service/連携」といったサービスを組みあわせて実現します。これらはクラウドベンダが提供するサービスの仕様や特性に強く関連しています。そのため、「A社で開発したサーバレス処理を、B社のクラウドサービスに移行する」といった対応が難しく、特定のクラウドベンダへの依存度が高くなってしまうのです。

このように、ベンダロックインが発生しやすい状況となってしまう点はデメリットといえるでしょう。

クラウドインフラの障害に大きく影響される

サーバレスは、ひとたびクラウド側で障害が発生すると大きな影響を受けやすい点もデメリットです。

クラウドは信頼性が高いという特長を有しており、いずれのサービスも100%に近い稼働率を誇っています。ただし、規模の差はあれど各クラウドベンダが提供するクラウドサービスも障害自体は頻繁に発生しているのです。

サーバレスは、実行対象の機能以外は全てクラウドベンダ側のリソースを活用するため、万が一クラウドベンダ側で障害が発生した場合は大きな影響を被ります。

タイミングによって処理に時間がかかる

サーバレスは、タイミングによって処理に時間がかかることがあります。

サーバレスは、初回起動時にコードのダウンロードなどの実行準備を行います。この処理に時間を要することがあるのです。万が一スピードが重視されるアプリケーションの場合は、この遅延が致命的なものとなる場合もあります。

サーバレスに向き・不向きなケース

サーバレスに向き・不向きなケース

ここまでサーバレスの特徴やメリット・デメリットなどを紹介しました。サーバレスは全てを解決する魔法のアーキテクチャではありません。サーバレスにも「向き不向き」があります。

サーバレスが向いているケースとしては以下の通りです。

  • 新規サービス
  • 単純な処理を行うシステム
  • コストの抑制が求められるシステム

一方で、サーバレスが向いていないケースは以下の通りです。 

  • 処理に長時間を要するシステム
  • 常に高速な応答が求められるシステム

サーバレスの導入は、あくまでも目的ではなく手段の1つです。アーキテクチャ検討時にシステムに求められる特性を踏まえた上で、導入可否を判断するとよいでしょう。

まとめ:サーバレス導入時の注意点

サーバレス導入時の注意点

今回の記事ではサーバレスについて解説しました。

サーバレスはさまざまなメリットをもっています。特に開発者が担当すべき領域を限定し、開発コストや運用コストを削減可能な点に加えて、高い可用性をもつ点は大きな魅力といえるでしょう。そのため、システムのアーキテクチャ設計時に「サーバレスの導入が可能か」を検討する価値は十分にあります。

導入時の注意点としては以下の通りです。

  • 実行時間などの制約をチェックする
  • セキュリティリスクの対策を怠らない
  • クラウドサービス障害発生時の影響や対策を整備する

なお、「これまでモノリシック(一枚岩)なシステムしか開発した経験がない」あるいは「サーバレスアーキテクチャ導入時の勘所を知りたい」といった方も多いのではないでしょうか。ソフトバンクでは、サーバレスのご支援もしております。クラウドへの移行方法を相談したい方、開発コストを削減したい方、柔軟で安定したシステムを求めている方は、ぜひご相談ください。

関連資料

ストレージサーバ・ファイルサーバからはじめるクラウド利活用のススメ

失敗しないクラウド利用のはじめ方、移行方法、セキュアなクラウド利用環境を構築するための閉域ネットワーク活用をご紹介。

関連ページ

クラウドサーバ・設計・構築

多種多様なスキルをもつソフトバンクのエンジニアがお客様に最適なクラウドサーバをご提案。ビジネス変革をサポートします。

関連セミナー・イベント

条件に該当するページがございません

おすすめの記事

条件に該当するページがございません