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

システム開発 インフラ

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

堂々の実績 Sackleのシステム開発

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

単なる機能ではなく、「人が使う」機能であることにSackleはこだわります。
孤高の設計力、提案力で予想以上のプロダクトを創出します。

WRITER INFORMATION

サックルマガジン編集部

デジタルクリエイティブの最新情報を発信する情報マガジン「サックルMAGAZINE」の編集部です。運営会社サックルは「ニーズがあるクリエイター集団でい続ける」を掲げ、創業13年目を迎えました。デジタル領域のプロとして、メディアを通じて多くのビジネスマンに有益な情報を発信しています。

RECOMMEND

PICKUP

CATEGORY