見出し画像

【技術】サーバーレスって何?

広義には、クラウドの柔軟なコンピューティング・リソースをサービスとして必要な時に必要な分だけ利用できるようにする考え方。
そのメリットとしては開発者がサーバーの管理から解放され、サービスに専念できる。サーバレスの大切な考え方としては、イベントドリブンにユーザが指定したアプリケーションコードを実行可能にするプラットフォームであることが挙げられる。

サーバレスってなぜ生まれたの?

他の記事でも書かれていることの繰り返しとなるが、まずサーバレスとは、サーバがないことではない。
そうではなく、サーバの管理をする必要がないことを意味する。サーバレスはあくまで概念であり、クラウド技術が出てきたことにより生まれた考え方である。
クラウド技術は様々あるが、大きな特徴は、ハードウェアの調達をクラウド業者に任せることができる。ことが挙げられる。かつては自社にサーバルームを抱え、サーバー管理専用の人員を確保する必要があったが、AWSなどの登場により、わざわざそうしたサーバー機器のハードウェアを買う必要はなくなり、AWS(クラウドベンダー)の提供するサービスとしてサーバー機器を買うことが可能になった。

しかし、クラウドになったとはいえ、購入できるものはサーバー機器(ベアメタル)であり、ソフトウェアのアップデートやリソース量といった事項は考える必要があった。

そうした中で、さらに提供するサービスに集中できるようにそうしたアップデートやリソースの管理についても考える必要をなくそうとして生まれた考え方がサーバレスである。

つまり、IT技術を使って、サービスを作る。それに集中。それ以外のことはベンダーにお任せ。それを可能にする考え方と技術である。

サーバレスに必要な要素。サーバレスとは

サーバレスの特徴としては主に以下の2つがあるらしい。

①イベントドリブン:
・未起動の状態から何らかのイベントをトリガーに処理を起動
・トリガーとなる要素はAPI(HTTP, gRPC)呼び出し、外部プログラムからの実行などがある。

②オートスケール:
・発生したイベントのトラフィック量に合わせてスケールイン、スケールアウトが可能
・スケールに関する運用面はインフラが面倒を見る(=開発者が面倒を見る必要がない)

まとめると、サーバは常時起動している必要がなくトリガーきっかけで起動し、処理を動かす。また処理量によってインフラ(クラウドベンダーなど)がサーバのスペックや容量をあげたり(スケールアウト)下げたり(スケールイン)する。サーバは動かしているだけで課金されるし、サーバのメンテナンスに人員を確保すると人件費もかかるので、お財布にもサーバーメンテナンス者にも優しいサービスということである。

で、何がうれしいの?

ここまで書いてみて、何がうれしいか、サーバレスの恩恵を受けるであろう人、経営者/開発者にとってでほかの記事を参考に整理したい。

・経営者:
これはコストが削減できること・納期が短くできることの二つである。
これまで話したように、必要なときのみサーバを起動するので、従量課金であるクラウドの世界において、コストを低く抑えられる。また、開発者がサーバレスをたしなんでいれば、開発にかかる期間を短くできるのでサービスの展開を早められライバルより早く市場に出せる可能性が高まる。

・開発者:
一度関数を用意すれば、同じ作業は自動化できるようになる。
またサーバーの管理をクラウドベンダーにゆだねることができ、セキュリティの管理などから解放される。
また関数ドリブンで動くので、エッジコンピューティングのように利用者により近いサーバでサービスを実行できるようにもなった。

コールドスタート問題

ただ、デメリットとしてはコールドスタート問題がある模様である。
コールドスタート問題とは、イベントをもとに起動のリクエストをサーバに投げてから実際にサーバが起動し、サービスが開始されるまでの時間にラグがあることである。

サーバレスの特徴であり、メリットであるイベントドリブンがそのままサーバレスの問題となるのは面白い。

ここまで書いて思ったことは

結局、インフラ的な改善なのかしら?お金が節約でき、管理の煩雑さから解放されるだけなのか?
もちろんお金が安くなり管理コストも下がることはメリットとして大きいがそれだけではない気がしている。

あらゆる可能性への入り口であると考えた。

例えば、サーバーレスの特徴であるイベント起動であることによって、
自動で即座に処理が実行できるメリットなどは大きいと思う。

例えばIoTデバイスでの監視システムをサーバーレスで作ったとする。
工場で異常が発生した際に即座に機会を止めることや、監視カメラで異常を検知した瞬間即座に別のシステムと連携し対応が取れるなどの使い方は想像できる。

こうした技術は単体ではそこまでメリットがないのであろうが、昨日書いた双方向通信と組み合わせて新サービスが産まれたり、等組み合わせでいくらでも可能性はあると考える。

技術オタクになりすぎるのはよくないが、幅広く技術について理解し、どうすれば人の役に立てるかその組み合わせをどうできるかこれからも考え続けてみたい。


【参考】サーバーレスに関して気合の入った記事



いいなと思ったら応援しよう!