deha magazine / インフラ構築 / サーバーレスアーキテクチャーとは?特徴やメリット・デメリットをご紹介
サーバーレスアーキテクチャーとは?特徴やメリット・デメリットをご紹介
2022/04/26
近年、話題になっている言葉で「サーバーレスアーキテクチャー」というものがあります。
サーバーレスアーキテクチャーとはサーバーの管理を必要としない仕組みのことで、サーバー管理に使っていた時間やコストを削減することができるということで注目を浴びています。
この記事ではそんなサーバーレスアーキテクチャーについてどんな特徴があるのか、どんな仕組みなのか、メリットやデメリットは何なのかまで徹底解説していきたいと思います。
- サーバーレスアーキテクチャーについて興味がある方
- サーバーレスアーキテクチャーの仕組みを知りたい方
- ITインフラに対する時間を削減したい方
これらに当てはまる方におすすめの記事となっています。これを読めばサーバーレスアーキテクチャーがどんな特徴なのかが丸わかりですよ。
サーバーレスアーキテクチャーとは
サーバーレスアーキテクチャーとはサーバーの管理を必要としない仕組み(アーティテクチャー)のことをさします。
あくまでサーバーの管理が不要なだけで、サーバーを使わないわけではありません。リケーションの際は物理的なサーバーが必要です。
つまり、サーバーは裏で動いているものの、利用者にはわからないようになっているというものがサーバーレスアーキテクチャーなのです。
サーバーを利用するには、通常OSやネットワークのセットアップなど自分達で構築が必要でした。稼働後も利用状況を監視し、必要に応じてリソースを拡張しなければなりませんでした。
しかしサーバーレスの場合は、登録した処理の実行に必要なサーバーをクラウドサービで割り当てるため、OSやDBなどのインストールは不要で、サービスを利用することができます。
そんなサーバーレスアーキテクチャーの1つにFaaSというものがあります。
FaaSとはFunction as a Serviceの略で関数のコードを実装することで、関数を実行する環境を提供するサーバーレスアーキテクチャーです。
FaaSと似たような言葉でBaSSというものがあります。どちらのサービスもサーバーの運用を考慮する必要のないサービスですが、FaaSは独自のビジネスロジックを動作させるサービスである一方、BaSSは必要な機能を選択して利用することができるサービスという違いがあります。
サーバーレスアーキテクチャー誕生の秘密
サーバーの管理はエンジニアにとって大変なものでした。アプリケーションの開発や改善に時間を割きたいのに、サーバーの管理に多くの時間がかかってしまっては意味がありません。
そんなサーバーレスアーキテクチャーですが、実は新しいものではなく昔から提唱をされてきました。では何故近年注目を浴びるようになったのでしょうか。
それはFaaSのプラットフォームが使いやすい形で誕生したことがきっかけにあります。Amazon Web Servicesは 2014年にLambdaというサービスを開始しました。
AWSの他のサービスとの連携も容易に行えるなどのメリットがあることから世界中で浸透していったのです。
サーバーレスアーキテクチャーの特徴
ITインフラは仮想化に向けて進化を続けていきました。仮想化とは、サーバー、OS、ネットワークなど物理的な構成を利用者から見えないようにして、効率化を図ったものを指します。
IaaS型のサービスでは、クラウド上に仮想サーバーを作りそれに対して料金を計算し、精算する仕組みになっています。ユーザーが大量にアクセスした場合でも、クラウド上のサーバーを次々に起動することで処理が分散、大量のアクセスを捌くことが可能になります。
反対に、ユーザーのアクセスが安定している場合には、サーバーの数を抑えることで流動性のあるユーザーに安価にサービスを提供することが可能なのです。
しかし、IaaS型ではホスティングサーバー同様に、OSやミドルウェアなどの管理やセキュリティアップデートが必要でフロントエンジニアにとっては敷居が高いサービスだったのです。
そこからFaaS型ではサーバー自体に対するパフォーマンスチューニングやセキュリティアップデートなどをFaaSのプロパイダーが行ってくれるようになりました。
サーバーレスアーキテクチャーの展開方法
サーバーレスアーキテクチャーを提供するプロバイダーをいくつか紹介していきます。
AWS Lambda
AWS Lambdaはクラウドインフラストラクチャ市場でトップシェアを占めているAmzonが提供しているサービスです。API Gateway、S3など他のサービスと組み合わせることが可能なのが大きな特徴です。
Google Cloud Functions
Googleが提供しているサービスです。Google Cloud Functionsへの呼び出しは、IAM (Identity and Access Management) または OAuth 2.0 による認証・認可をサポートしています。これにより高いセキュリティが実現できます。
Azure Functions
Microsoftが提供しているサービスです。Azure FunctionsにはサーバレスモードとPaSS上で動作するApp Serviceがあり、App Serviceをすでに利用しているユーザーは追加料金を払わずにAzure Functionsを利用することができます。
メリット
サーバーの運用が不要
やはり、サーバーレスアーキテクチャーの大きな特徴はサーバーの運用が不要な点ではないでしょうか。
今までサーバーの運用にかけていた手間や時間を大幅に削減し、人件費の削減やその分をアプリケーションの開発に割いていくことができるのです。
伸縮性がある
サーバーに対して管理者が数量を考慮したり、トラフィックが多数になった際に心配する必要はありません。サーバーの数の設定は、要求が全て応答されるように自動的に実行されます。
またシステムの負荷増大に応じて自動的に性能を拡張することも可能です。
イベント駆動
従来であれば常時稼働するサーバーですが、サーバーレスアーキテクチャー上ではアプリが起動されたり、ファイルがアップロードされたりなどといったイベントが起きた際に昨日の実行がなされます。
反対にイベントが発生していない時は機能は実行されないので、その分のコストを大幅に削減することができるのです。
利用した分だけの課金
先ほども紹介したようにサーバーレスアーキテクチャーは、従量課金制なので、リクエストがない時は費用が発生しない、もしくは最小限の費用だけになるのです。リクエスト数が全くない場合は、料金がゼロになることもあるのです。
このように、ランニングコストを大幅に削減することができるのも大きなメリットになります。
デメリット
サーバーレスのプロバイダーに依存
サーバーの管理をプロバイダーに一任するため、調整を自由に行うことはできません。
管理への負担がないのは大きなメリットですが、自由に調整したい方にとっては不向きかもしれません。
ストレージなし
サーバーレスの関数はステートレスであるため、ローカルメモリの代わりに、S3、RDS などのストレージサービスを使って、データを格納していく必要があります。
遅延
要求が到着した際に、関数を起動するのに数ミリ秒から数秒ほどかかるため、即時の応答が必要なシステムには適していません。
まとめ
いかがでしたか。本日は近年注目されているサーバーレスアーキテクチャーについて紹介していきました。
サーバーレスアーキテクチャーはサーバーの管理を必要としない仕組みのことでしたね。
サーバーレス化が普及することで、ITインフラは固定費から変動費へ代わり、コストを大幅に抑えることが期待できます。
例え、新しいシステムやサービスがうまくいかなかった場合でも、新しいものに変更すればいいので、チャレンジの機会も増えていくでしょう。
つまりサーバーレスアーキテクチャーは良いシステムやサービスをどんどん誕生させていくことが期待できます。
一方、サーバーレスは優れた仕組みではあるのものの、改善の余地がある部分もあるため万能策とは言い切れません。適材適所で活用していくようにしましょう。