サーバレスとは 未経験者にもわかりやすく説明します

システム開発 インフラ

INDEX

近年、AWS(Amazon Web Services)や、GCP(Google Cloud Platform)といった、パブリッククラウドにおけるアーキテクチャの一種として、
『サーバレス』が非常に注目されています。
サーバレスとはいったいどのようなものなのでしょうか。
本記事でわかりやすく説明していきます。

サーバレスとは

サーバレスとは、クラウドの利用の1形態です。

クラウドの利用形態は、大きく分けて以下の3つが挙げられます。

IaaS


「Infrastructure as a Service」の略で「イアース/アイアース」と読みます。

サーバを丸ごと借りる利用形態です。

AWSが提供する「Amazon Elastic Compute Cloud(Amazon EC2)」が代表例です。

PaaS


PaaSは、「パース」と読み「Platform as a Service」の略で

テム開発に必要なミドルウェア、データベース管理システムです。

GCPのGoogle App Engineや、AWSのRDS、ElasticBeanstalkといったサービスが代表例です。

SaaS


「Software as a Service」の略で「サース/サーズ」と読みます。

従来はパッケージとして提供されていたアプリケーションをインターネット上で利用できるサービスで、Microsoft Office 365などが代表例です。

このうち、クラウドサービス提供側(AWS等)が実際のサーバーを用意し、管理を行うPaaSやSaaSが、『サーバレス』に該当します。

つまり、実際にはアプリケーションが稼働するサーバーが存在するものの、管理者はクラウドにあるサーバの存在を意識せずに、

アプリケーションやデータベースの利用ができるクラウド利用形態のことを『サーバレス』といいます。

サーバレスのメリット

サーバレスは現在、様々なアプリケーション開発現場で採用されています。

なぜサーバレスが採用されるのかというと、サーバレスは様々なメリットが存在しているからです。

サーバレスによるメリットは大きく分けて以下の3つです。

- 高速でアプリケーションを構築できる

- 一部の設計が不要

- サーバの運用管理コストを大きく減らせる

具体的にどのようなものか、それぞれみていきます。

高速でアプリケーションを構築できる


一般的にアプリケーションをリリースする場合、以下の作業が必要となります。

①サーバを配置するデータセンター等を契約する。

②サーバを用意、ラッキング、初期設定を行う。

③サーバに必要なミドルウェア、ソフトウェアをインストールする。

④サーバにアプリケーションをデプロイする。

⑤テストを行い、リリースする。

大抵、1~5までは、早くても数か月~1年かかってしまいます。

しかしながら、サーバレスの場合は、上記の場合1~3の工程が不要になります。

アプリケーションのリリースも最速で数十分に短縮できます。

このように、高速でアプリケーションを実装できることが、サーバレスの大きな強みです。

 一部の設計が不要


一般的なプリケーションの設定は、アプリケーション自体の設計のほかに、サーバの設計も行います。

しかしながら、先述のように、サーバレスの場合はクラウドにあるサーバの存在を意識する必要がありませんので、サーバの設計が不要です。

そのため、本来であれば利用者のアクセス数を予想してサーバの設計を行う、といった作業が不要になるので、サーバの設計に関する知識がなくてもアプリケーションの設計を進めることができます。

サーバの運用管理コストを大きく減らせる


一般的にアプリケーションの運用管理を行う際には、以下3つについて監視を行い、

アプリケーションが正常に行えているかを確認し続ける必要があります。

①サーバ(機器自体)が故障していないか

②サーバ上の各プログラムが正常に稼働しているか

③アプリケーションが正常に稼働しているか

これらの1~3について、監視を行う人員や、監視システム等を別途整備する必要があります。

また、故障してもアプリケーションの正常化を行えるように、バックアップや冗長化、リカバリー手順の整備といった、運用に関する設計も行う必要があります。

しかしながら、サーバレスの場合は、上記の1~2についてはAWSなどのクラウド提供業者が行います。

したがって、監視システムの整備や監視を行う人員を、最小限にして、コストを下げることが可能です。

また、サーバレスのアプリケーションは、使われた秒数のみ、課金が行われます。

通常のレンタルサーバサービスや、IaaSといったクラウドサービスは、

1日~1か月単位で利用契約が行われるため、アプリケーションが使われていなくても、料金が発生してしまいます。

しかしながら、代表的なサーバレスのサービスである、AWS Lambdaでは、

起動の回数や、処理を実行している時間ベースの課金となります。しかも100ミリ秒単位の課金なので、レンタルサーバやIaaSと比べて課金額を圧倒的に抑えることができます。

サーバレスのデメリット

一方で、サーバレスのデメリットとはどのようなものがあるのでしょうか。

サーバレスのデメリットは、一般的に以下のようなものがあります。

- 学習コストが必要

- 利用できる機能に制限がある

具体的にデメリットについても見ていきましょう。

学習コストが必要


サーバレスのサービスには様々な部品(サービス)、設定項目が存在するため、

それに関する学習コストがかかってしまいます。

たとえば、AWSでサーバレスのサービスを構築する場合、

S3、API Gateway、AWS Lambda、DynamodDBといったサービスについて理解をしておかないと、十分にサーバレスのメリットを得ることはできません。

ただし、AWSやGCPにおいては、サーバレスのアプリケーションを構築するためのオンラインハンズオンイベントや、学習ロードマップ、資格体系が整備されています。これらのロードマップに沿って学習を行えば、十分にサーバレスアーキテクチャを構築することができるものの、学習コスト自体ははやり存在するため、留意しておくといいでしょう。

利用制限がある


AWS Lambda、DynamodDBといったサービスは、何らかの機能制限がある場合があります。

たとえば、AWS Lambdaは、15分以上の時間がかかる処理は行えないことになっていますし、

DynamoDBは格納する1つのデータサイズが上限400 KBとなっています。

このように、サーバレスで使うサービスにおいては、制約がある場合があるので、処理時間や扱うデータのサイズについては事前に確認を行うといいでしょう。

まとめ

AWSやGCPといったパブリッククラウドの利用が進むにつれて、サーバレスはアプリケーション構築の上で主要技術になりつつあります。

サーバレスは高速かつ低価格で、アプリケーションをリリースするためのQCDを大幅に改善することができます。

しかしながら、様々な制約があるため、最大限の効果を得るにはシステムにあったサービスを選定しなくてはなりません。

また、深くサーバレスのサービスを理解することで、サーバレスを採用した際の効果を最大限にすることができます。

サーバレスを導入する際には深い実績を持ったエンジニアやベンダーに相談してみるのもいいでしょう。
  • Twitter
  • Facebook
  • LINE

ビジネスの成功に導くWebシステム開発

ユーザー体験をデザインし お客様のビジネスを成功へ導く

官公庁・大企業・中小企業・スタートアップ。
豊富な開発経験で幅広いニーズに対応、国内完結だからこその安全とスピード。
提案、設計、開発、テスト、保守、リニューアル、機能追加。あらゆるフェーズから参画いたします。

サックルのWebシステム開発

RECOMMEND

PICKUP

CATEGORY