メニュー
SaaSpresto株式会社はLogicMonitorの国内販売代理店です

サーバーレスとは?メリットや用途、注意点、運用管理などを解説

システム開発におけるクラウドサービス利用の選択肢の一つとして有効であるサーバーレス。使いどころを押さえて利用することで、サーバーレスは開発者にとって大きな武器となります。一方で、うまく利用しなければむしろコスト増となるなど、注意しなければならない点も。この記事では、サーバーレスの概要やメリットに加え、適した用途や利用における注意点などについてご紹介します。

目次

サーバーレスとは?

まず初めに、サーバーレスの概要について簡単に整理します。

サーバーレスはコードを配置するだけで動かせるサービス

サーバーレスとは、その言葉通りサーバーの構築や運用管理を意識せずともプログラムを実行することができるクラウドサービスです。

もちろん、実際にプログラムを実行するためにはサーバーが必要なため、サーバーレスの裏側ではサーバーやOSなどが稼動しています。しかしながら、サーバーやOS、ミドルウェアなどの提供や管理はクラウド提供事業者が実施するため、利用者はこれらの存在を意識する必要がありません。

サーバーレスを利用することで開発者はコードを書くことに集中することができます。

他のクラウドサービスとの比較

クラウド上でプログラムを動かすことができる仕組みとして「IaaS」「PaaS」といった選択肢も存在します。これらとサーバーレスはどのような違いがあるのでしょうか。

端的に言えば、サーバーレスは利用者側で管理しなければならない範囲が最も少ないサービスといえます。IaaSでは物理マシンやネットワーク環境が、PaaSはそれに加えてOSやミドルウェアがクラウド側から提供されます。これらに加えて、サーバーレスはプログラムの実行環境までがクラウド側で提供され、利用者が管理するのはコードのみです。

サーバーレスとして提供されているサービスの種類

サーバーレスとして提供されているサービスは様々存在しますが、一般的にサーバーレスという場合、FaaS(Function as a Service)を指すことが多いといえます。FaaSとは、クラウド上でアプリケーションの開発や実行、管理ができる仕組みのことです。FaaS以外にも、さらに使い勝手を良くした以下のようなサービスも提供されています。

サーバーレスアプリケーション

FaaSで構築したアプリケーションをワンクリックで利用できる仕組みを指します。非エンジニアには利用しにくいFaaSですが、サーバーレスアプリケーションによりアプリケーションの配布や利用がしやすなります。

サーバーレスコンテナ

コンテナ単位でFaaSを利用できるようにすることで、プログラミング言語のバージョンやライブラリ等の環境をより管理しやすくできるサービスです。

サーバーレスKubernetes

加えて、コンテナの効率的な配置を実施するKubernetesの機能まで利用できるのがサーバーレスKubernetesと呼ばれるサービスです。

サーバーレスのメリット

サーバーレスを採用する主なメリットを以下でご紹介します。

コードを作成・配置するだけでよい

ここまでご紹介したとおり、サーバーレスの最大のメリットは、利用者側で管理すべき範囲が非常に少なく、コードを作成しクラウド環境に配置するだけでアプリケーションを実行することができるという点です。

サーバーレスを利用すれば、サーバーの調達やOSのインストール、ミドルウェアの設定など、アプリケーション実行環境の準備を行う必要がありません。また、これらのバージョンアップやセキュリティパッチの適用、監視などの運用管理についてもクラウド提供事業者が実施してくれます。プログラムの実行環境を利用する上で、これらを気にしなくてよいのは大きなメリットです。

利用単位で課金される

IaaSやPaaSなどの他のクラウドサービスと同様に、利用単位で課金される点もサーバーレスのメリットといえるでしょう。特にサーバーレスにおいては、サービスにもよりますが処理のリクエスト数と実行時間に応じて課金され、処理を実施していない受付待ち時間は課金されない形式が一般的です。稼動中は料金が発生し続けるIaaSなどと比較すると、サービスの利用頻度によっては大幅なコスト削減につながります。。

自動的にスケーリングされる

サーバーレスも他のクラウドサービスと同様に、オートスケールが一つのメリットとなります。たとえば、提供サービスの大規模プロモーションなどで一時的に大量の処理が必要な場合でも、クラウド側で自動的にリソースが増強されます。

ただし、後述しますがサーバーレスのアーキテクチャで継続的に大量の処理を実施する場合は、コストメリットが失われるケースもありますので、注意が必要です。

サーバーレスの主な用途

サーバーレスはどのように活用することができるのでしょうか。サーバーレスの主な用途を以下で紹介します。

動的なWebサイトやモバイルアプリのバックエンド

何らかのトリガーに沿って実行されるサーバーレスのアーキテクチャは、イベントが発生した際に処理を行いたい場合に便利です。典型的な利用例としては、動的なWebサイトの構築や、モバイルアプリのバックエンド処理などがあります。

簡単なデータ処理

軽量な処理を実行した場合にもサーバーレスは有効です。たとえば簡単なデータの集計や加工、画像の変換などをサーバーレスのアーキテクチャで実行できます。この場合、他のストレージサービスと連携させ、ファイルの追加などをトリガーにしてサーバーレスのアーキテクチャに処理をさせるような設計が有効となります。たとえば、特定のフォルダに画像ファイルを追加すると、自動的にサイズや画質の調整を行うような利用方法も考えられるでしょう。

新規サービスのスモールスタート

どの程度利用されるか予測できない新しいサービスを始める際に、スモールスタートとしてサーバーレスを採用するという選択肢もあります。上述の通り、受付待ち時間にコストがかからず、またスケーラブルであるため、サーバーレスは利用量が読みにくいサービスに特に適しています。もしあまり利用されない場合には、料金がほとんど発生しないため、コストの効率化を図ることができます。

マイクロサービスアーキテクチャの実現

マイクロサービスアーキテクチャとして、機能ごとに部品を作って連携させていくモデルに沿って開発を行う場合に、サーバーレスの活用が有効となります。この場合、上述したサーバーレスコンテナやサーバーレスKubernetesを利用することで、コンテナを活用したアーキテクチャを簡単に実現することも検討できるでしょう。

サーバーレス利用における注意点

このように様々なメリットや活用シーンがあるサーバーレスですが、もちろんサーバーレスは万能薬ではありません。サーバーレスの利用においては注意しなければならない点もあります。

サーバーレス単体でできることは限られる

サーバーレスはあくまでプログラムの実行しかできないため、データベースやストレージなどを利用したい場合、他のサービスを利用する必要があります。多くのクラウドサービスでは、クラウド上で利用できるデータベースやストレージが用意されているため、これらを利用するのが良いでしょう。

サーバーレスを提供しているクラウドサービス事業者は、自社のデータベースサービスやストレージサービスとの連携性を強化しているため、基本的には同じ事業者のサービスを利用することになります。これは便利である反面、ベンダーロックインリスクともなる点に注意が必要です。

また、サーバーレスは、通常、何らかのトリガーに応じて処理を実行する仕組みのため、他のサービスやプログラムから配置した処理を呼び出して利用することになります。アプリのフロントエンドからバックエンドまで作りこむにはサーバーレス単体では不向きです。前述のとおり、Webサイトやアプリのバックエンドとしての利用が適しているでしょう。

長時間利用するとコストメリットが失われる場合も

サーバーレスは小規模に利用する場合にはコストメリットがありますが、大量の処理を継続的に実行する場合にはむしろコストが高くなるケースも。この場合は、IaaSなど他のクラウドサービスを利用した方がコストを抑えられる可能性があります。一時的な利用増へのスケーラブルな対応という観点ではサーバーレスのメリットが生かせますが、定常的に大量の処理を実行する場合には、それに見合った仮想マシンなどを用意した方が効率的です。

また、サービスによっては、実行できる処理の回数や時間などに制限をかけている場合もあるので注意が必要です。

サーバーレス利用においても運用管理は必要

サーバーレスを利用することで、サーバーやOS、ミドルウェアなど多くの領域の運用管理を利用者側で行わずに済みます。一方で、サーバーレス全く運用管理を行わなくて良いというわけではなく、本番環境として利用するのであれば一定の運用管理が必要となる点は注意しなければなりません。

具体的には、サーバーレス上で実行される処理に対する監視として、処理の遅延やエラーの発生有無、処理可能回数・時間の到達有無、コスト監視などをチェックしていかなければなりません。サーバーレスに対する運用監視についても考慮すべきという観点を抑えておきましょう。

サーバーレスの監視にも対応!SaaS型運用監視サービス「LogicMonitor」とは?

このように、サーバーレスを利用する場合でも監視体制は十分に整える必要があります。サーバーレスの運用監視を実現するためには、サーバーレスの監視に対応した監視ツールの導入が必要です。

当社では、サーバーレス監視に対応したSaaS型のIT統合運用監視サービス「LogicMonitor」を提供しています。LogicMonitorでは、AWS Lambda、Azure Functions、GCP Cloud Functionsなど主要なサーバーレスサービスに対応。処理の実施時間やエラー有無などに加えて、クラウド監視において重要となるコストの計測も実現します。ダッシュボードにより可視化された形でこれらの情報を確認することができるため、たとえばサーバーレスの利用によりコストが多く発生している場合にも視覚的にそれを確認でき、素早いアクションにつなげることができます。

もちろん、LogicMonitorはサーバーレスだけでなく他のIaaS、PaaSなどクラウドサービスの監視やオンプレミス環境にも対応しています。自社のあらゆるシステムを一元的に監視できる仕組みとして活用できるツールです。

まとめ

この記事では、サーバーレスの概要やメリット、適した用途などについて詳しくご紹介しました。サーバーレスはシステム開発者にとって大きな武器となりますが、一方でサーバーレスを本番環境で利用する場合には運用監視についても考慮しなければなりません。特にコストのコントロールが難しいサーバーレスにおいては、利用状況を可視化できる運用監視ツールの活用により、想定コストの早期把握と最適化を進めていくことがポイントとなります。

日本を含む2,000社以上での導入実績がある、
IT統合監視サービス「LogicMonitor」
のサービス概要資料はこちらから

以下のような課題をもつ企業におすすめです。

  • 現状、監視ツールの複数導入でコスト・運用面で負荷が大きく、1つのツールで統合監視したい
  • AIOpsやオブザーバビリティの考え方を取り入れた最先端のSaaSツールで、運用のDXを推進したい
  • マルチテナント機能やシンプルな価格体系で、MSP事業者としてスムーズにサービスを提供したい
目次