様々なクラウドサービスが提供される中で、サーバーレスという新しい仕組みが登場しました。
しかし、サーバーレスと言われても従来のレンタルサーバーや他のクラウドサービスとの違いがよくわからないという方も多いのではないでしょうか。
サーバーレスの基本的な仕組みや、サーバーレスのメリット・デメリットを解説します。
サーバーレス登場以前のサーバーの用意方法とは
インターネット上でサービスやアプリケーションを動かすには、サーバーが絶対必要です。
サーバーレスが登場するまでは以下のような方法でサーバーを用意していました。
- 自社でサーバーを用意する
- レンタルサーバーに申し込む
自社でサーバーを用意する方法とは、自社で物理的なサーバーを購入し、運用する方法です。
自由にサーバー構築ができるというメリットはありますが、購入、設定、管理、保守はすべて自社で行う必要があります。
また、サーバーは基本的に365日稼働させなければなりませんから、資金面でも労力面でもかなりの負担が自社にかかることになります。
レンタルサーバーに申し込む方法とは、データセンターなどにあるサーバーをインターネットを介して借りる方法です。
管理、保守を事業者に任せることができるので、自社サーバーを用意するよりも簡単です。
ユーザーは借りている期間、契約している容量に応じてレンタルサーバー会社に定額料金を支払います。
サーバーレスとは
サーバーレスとは、事業者が提供するサーバー環境を利用しインターネット上のサービスやアプリケーションを動かせる仕組みで、レンタルサーバーと同じようにサーバーを借りて使う方法です。
サーバーレスとレンタルサーバーとの大きな違いは、料金体系です。
多くのサーバーレスサービスは、プログラムの実行回数や利用時間に合わせた従量課金制を取っています。
これは月単位、年単位で契約するレンタルサーバーとの大きな違いです。
また、レンタルサーバーの場合、レンタルできる容量は一定なので急激なデータ量の増加(アクセスが集中したときなど)に弱くなります。
つまり、レンタルサーバーの場合はできるだけ余裕を持った容量のプランを契約する必要があり、費用が割高になってしまいます。
一方で実行した分だけ料金がかかるサーバーレスなら、このような問題は生じにくくなります。
月々一定の料金を払って住む賃貸マンションがレンタルサーバーなら、サーバーレスは時間制のレンタルルーム的な存在と言えるでしょう。
サーバーレスはクラウドサービスの一種である
サーバーレスと混同されがちな言葉に、クラウドがあります。
サーバーレスは、クラウドサービスの一種と言えます。
クラウドサービスには、サーバーレスを含めたさまざまな利用形態があるので、それぞれ詳しく見ていきましょう。
SaaS(サーズ/サース)
「Software as a Service」の略称です。
特定のアプリケーションを実行環境を含めまるごと提供してくれるサービスです。
ビジネスチャットの「Chatwork」やオンラインストレージの「セキュアSAMBA」もSaaSに分類されます。
FaaS
「Function as a Service」の略称です。
サーバーやネットワークはもちろん、OS、アプリケーションプログラムの実行環境まですべてをクラウドサービスの提供者が用意してくれます。
PaaS(パース)
「Platform as a Service」の略称です。
OSやミドルウェア、フレームワークなどのプラットフォーム(基盤)部分を提供します。
FaaSよりも提供されるサービスの幅が少し狭くなります。
IaaS(イアース/アイアース)
「Infrastructure as a Service」の略称です。
クラウドサービス事業者は、ネットワークやストレージ、サーバーなどのインフラ部分のみを提供します。
サーバーレスの定義はまだ明確ではない部分もありますが、現在はFaaSのような形態を指してサーバーレスと呼ぶことが多いです。
また、サーバーレスという言葉にはFaaSの他、APIを利用するBaaSという利用形態を含める場合もあります。
サーバーレスとクラウドサーバーの違い
クラウド上に仮想サーバーを構築するサービスは、クラウドサーバーと呼ばれています。
一般的にサーバーレスはFaaS形式で、クラウドサーバーはPaaSやIaaS形式でサービスを提供します。
サーバーレスがアプリケーションプログラムの実行環境をすべて用意して提供するのに対し、クラウドサーバーの場合はある程度自分で個別設定をする必要があります。
サーバーレスとクラウドの違いとして分かりやすい例として、クラウドサービスの代表格「Amazon Web Service(AWS)」には、サーバーレスで動く「LAMBDA」とクラウドサーバー「EC2」があります。
サーバーレスで動くLAMBDAは、プログラムを送るだけですぐ実行してくれます。
一方で、クラウドサーバーのEC2は空のOSを提供するような形になり、そこにミドルウェアなどを自分でインストールしていきます。
自分好みの環境設定ができるという柔軟性はありますが、その分必要な環境を自分で構築しなければならないなどの手間がかかります。
また、2つのサービスは料金体系も違います。
サーバーレスのLAMBDAの料金はプログラムの実行回数によって決まりますが、クラウドサーバーのEC2は仮想サーバーの起動時間に応じて課金されます。
サーバーレスのメリット
サーバーレスには、低コストや運用面での労力削減というメリットがあります。
それぞれ詳しいサーバーレスのメリットを確認していきましょう。
構築や管理などの手間が不要
クラウド事業者が環境構築からサーバーの保守管理まで行ってくれるので、ユーザーはプログラムをすぐに実行できます。
サーバーというものを意識しなくても、サーバーを使えるのがサーバーレスのメリットです。
実行したときだけ料金がかかるので低コスト
サーバーレスの場合、利用時間や実行回数によって課金されます。
使った分だけ料金を支払えばいいので、無駄がありません。
使用回数が少ないのであればサーバーレスの方が得になるケースが多いでしょう。
オートスケールでアクセス集中にも自動調整
アクセスが集中するとサーバーにかかる負荷が増大するので、サーバーの台数を増やさなくてはなりません。
一方で、アクセスが少ない時には少ないサーバー数で十分です。
このようなサーバーの増減を自動調整してくれるのが、オートスケールという機能です。
サーバーレスはオートスケールに対応しています。
障害に強い
自社で災害時のインフラ整備に備えるのは、かなりのコストや労力がかかります。
サーバーレス環境を利用することで、サービス事業者に万が一の際のサーバー管理対策を任せることができます。
サーバーレスのデメリット
便利なサーバーレスにも、デメリットが存在します。
デメリットを知ることでサーバーレスの利用の可否やサービス選定にも参考にできるでしょう。
他ベンダーへの移行が難しい
サーバーレス環境で開発した物を、他のベンダーの元に移行することは難しいとされています。
基本的に同じサーバーレス事業者の元で開発を続けることが推奨されますので、最初の事業者選びは慎重に行う必要があるでしょう。
実行環境に制限がある場合がある
サービスによって、データサイズや処理時間に制限がある場合があります。
契約する前に、自社が利用したい形でサービスを実行できるか確認することが大事です。
プログラミング言語が限定される場合がある
サーバーレスサービスの種類によっては、追加作業をしないと特定のプログラミング言語が使えないことがあります。
自社で開発していたプログラミング言語がサーバーレスサービスですぐ使えないとなると、準備に手間取る可能性があります。
サーバーレスサービスではどのようなプログラミング言語がデフォルトで使えるのか、追加作業にはどの程度手間がかかるのかを確認しておきましょう。
サーバーレスとクラウドの違いを理解して導入しよう
サーバーレスは、クラウドサービスの一形態と言えます。
今やクラウドサービスは多様な形態に分かれており、それぞれにメリットデメリットがあります。
例えばセキュアSAMBAのようなオンラインストレージもクラウドサービスの一種です。
オンラインストレージのセキュアSAMBAであれば物理的なストレージに比べ、アクセスが容易で、社内でのデータ共有が簡単に行えます。
各サービスの違いを理解して、自社のインフラ整備に適切な物を選んでいきましょう。