■サーバーレスとは
一般的にネットワークを介して提供するシステムを動かすには、サーバーを調達してOSやミドルウェアなどをセットアップしたり、常時安定稼働させるために機器のメンテナンスやOS等のセキュリティアップデートなど、多くの労力とコストがかかります。
サーバーレスとは、こういったサーバーの構築や保守などの作業を行う必要がなく、サーバー上でプログラムを実行できる仕組みを指します。
サーバーレスと言ってもサーバーが無い訳ではなく、サーバーレスを提供する企業がサーバーの構築や保守をしており、利用者はサーバーの管理から解放される「サーバー管理レス」というような意味になります。
サーバーレスの種類にはSaaSやFaaSなどいくつか種類がありますが、特にインターネットを通じてプログラミングした関数を実行できるFaaS(Function as a Service、ファース)をサーバーレスと呼ぶことが多いようです。例えば、AWS LambdaやAzure Functionsといったサービスが該当します。
■サーバーレスのメリット
サーバーレスには、以下のようなメリットがあります。
●サーバーの運用作業が要らない
冒頭でも述べたとおり、サーバーレスの一番のメリットがこれだと思います。サーバーの運用に関する業務を削減でき、システム開発に注力することができます。
●高い可用性や柔軟なスケーラビリティ
今までは、物理サーバーが故障した時に備えて複数のサーバーやデータセンターと契約したり、アクセス数の増加に応じてサーバーを増強したりといった作業が必要でした。
しかしサーバーレスでは、提供事業者が非常に高いレベルで可用性やスケーラビリティを担保しており、利用者はこれらを考慮する必要がありません。
●利用した分だけ課金
サーバーレスは、利用した時間やリクエスト数に応じた課金体型となっており、多くの場合、コストを削減することができます。
■サーバーレスのデメリット
サーバーレスには多くのメリットがありますが、良いところだけでなくデメリットもあります。
●サーバーレス提供事業者に依存
サーバーの運用を提供事業者に任せているため、自由な調整や変更が出来ずある程度の制限がかかります。例えば、サービスが提供していない開発言語は選択出来ませんし、新しいバージョンを使いたくても提供されていないこともあります。
また、開発したシステムを他のサーバーレス事業者に移行することが難しく、いわゆるベンダーロックインに陥りやすいです。
●容量や処理時間の制約
サービスによって、扱える容量や処理時間に制約があります。例えば、AWS Lamdaは処理時間を15分以内に収める必要があります。
●レスポンスが遅い
要求を受けてから処理を開始するまでに数ミリ秒から数秒かかるため、即応性が求められるシステムには向いていません。
■まとめ
サーバーレスは多くのケースで開発期間の短縮やコスト削減を実現することができます。しかしサーバーレスも万能ではなく、メリットやデメリットを把握した上で、システムの特性や開発チームの技量を考慮した上で適用するかどうかを決めるべきでしょう。
Comments